From 1a87b8b9b72e49b672b01312280a273f38430c31 Mon Sep 17 00:00:00 2001 From: Inderpreet Singh Date: Wed, 2 May 2012 15:01:27 -0800 Subject: 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] --- src/gpgpu-sim/shader.cc | 4 ++-- 1 file 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()); -- cgit v1.3