summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorInderpreet Singh <[email protected]>2012-05-02 15:01:27 -0800
committerAndrew Boktor <[email protected]>2014-08-14 13:19:06 -0700
commit1a87b8b9b72e49b672b01312280a273f38430c31 (patch)
tree800260169072f13f6031e0798c6b6913d7ca676b /src
parent6bd512ea5b8cc098903fcb2dd802e652bbed2cb4 (diff)
Integrated in CL12250 from coherence branch - fix for atomic payload bug (see Bug #133)
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 12257]
Diffstat (limited to 'src')
-rw-r--r--src/gpgpu-sim/shader.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index f02e204..91ea72e 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -868,7 +868,7 @@ bool ldst_unit::memory_cycle( warp_inst_t &inst, mem_stage_stall_type &stall_rea
if( CACHE_GLOBAL == inst.cache_op || (m_L1D == NULL) ) {
// bypass L1 cache
- if( m_icnt->full(size, inst.is_store()) ) {
+ if( m_icnt->full(size, inst.is_store() || inst.isatomic()) ) {
stall_cond = ICNT_RC_FAIL;
} else {
mem_fetch *mf = m_mf_allocator->alloc(inst,access);
@@ -2251,7 +2251,7 @@ void simt_core_cluster::icnt_inject_request_packet(class mem_fetch *mf)
}
unsigned destination = mf->get_tlx_addr().chip;
mf->set_status(IN_ICNT_TO_MEM,gpu_sim_cycle+gpu_tot_sim_cycle);
- if (!mf->get_is_write())
+ if (!mf->get_is_write() && !mf->isatomic())
::icnt_push(m_cluster_id, m_config->mem2device(destination), (void*)mf, mf->get_ctrl_size() );
else
::icnt_push(m_cluster_id, m_config->mem2device(destination), (void*)mf, mf->size());