summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/shader.cc
diff options
context:
space:
mode:
authorJRPan <[email protected]>2022-04-11 13:53:17 -0400
committerGitHub <[email protected]>2022-04-11 13:53:17 -0400
commit1d39b6f56970b68d12a072065c5bc9c41264afd4 (patch)
treee286d8d84087a585f9ef6b929d4ce54c8f676872 /src/gpgpu-sim/shader.cc
parentcfba96c395779652093cc1ecb2ff2c78f1719323 (diff)
parent33ad7c89b43cedc11dd645f2ae0215e6e4531230 (diff)
Merge pull request #40 from notseefire/dev
Fixed constant_cycle
Diffstat (limited to 'src/gpgpu-sim/shader.cc')
-rw-r--r--src/gpgpu-sim/shader.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index ad9278c..6f68283 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -2092,10 +2092,11 @@ bool ldst_unit::constant_cycle(warp_inst_t &inst, mem_stage_stall_type &rc_fail,
mem_stage_stall_type fail;
if (m_config->perfect_inst_const_cache) {
fail = NO_RC_FAIL;
+ unsigned access_count = inst.accessq_count();
while (inst.accessq_count() > 0) inst.accessq_pop_back();
if (inst.is_load()) {
for (unsigned r = 0; r < MAX_OUTPUT_VALUES; r++)
- if (inst.out[r] > 0) m_pending_writes[inst.warp_id()][inst.out[r]]--;
+ if (inst.out[r] > 0) m_pending_writes[inst.warp_id()][inst.out[r]] -= access_count;
}
} else {
fail = process_memory_access_queue(m_L1C, inst);