summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/shader.h
diff options
context:
space:
mode:
authorInderpreet Singh <[email protected]>2011-05-25 16:01:16 -0800
committerInderpreet Singh <[email protected]>2011-05-25 16:01:16 -0800
commite1cffaf08733754ab55052b6a2729dae57665d29 (patch)
tree6bd1fda8aedad981d8295fdf765c85df1e1c8f3d /src/gpgpu-sim/shader.h
parent07376c3d981fbfea6bfad99657c2055b9bdb0e4f (diff)
Fix bug #100: local memory address translation returns multiple addresses
Fix bug #101: Coalescing allows multiple accesses per thread for local memory access This will break atomics which assume at most one thread per mem_fetch. It did not break scoreboard as that logic tracks mem_fetches at warp level, not thread level. [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 9303]
Diffstat (limited to 'src/gpgpu-sim/shader.h')
-rw-r--r--src/gpgpu-sim/shader.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gpgpu-sim/shader.h b/src/gpgpu-sim/shader.h
index 8d6c290..7cb3af7 100644
--- a/src/gpgpu-sim/shader.h
+++ b/src/gpgpu-sim/shader.h
@@ -1242,7 +1242,9 @@ private:
friend class scheduler_unit; //this is needed to use private issue warp.
void issue_warp( warp_inst_t *&warp, const warp_inst_t *pI, const active_mask_t &active_mask, unsigned warp_id );
void func_exec_inst( warp_inst_t &inst );
- address_type translate_local_memaddr(address_type localaddr, unsigned tid, unsigned num_shader );
+
+ // Returns numbers of addresses in translated_addrs
+ unsigned translate_local_memaddr( address_type localaddr, unsigned tid, unsigned num_shader, unsigned datasize, new_addr_type* translated_addrs );
void read_operands();