From cc404275f9226185e436e1da483ee58ee85c38ca Mon Sep 17 00:00:00 2001 From: Tor Aamodt Date: Sun, 18 Jul 2010 02:20:50 -0800 Subject: - simple device printf support added (supports %u, %d, %f) - add support to call_impl for passing values in through local param space (need to add support for return) - track local framesize during ptx parsing / update local stack-pointer during call/return - detect appropriate param space for ld.param (and st.param) depending upon address symbol's scope - putting back the crazy math for local mem allocation (seems to be required) - bug fix for global byte array initialization - force ld and st w/o space specifier to be generic_space - make type_decode method of type_info_key - adjust debug printing so listing of code and CFG information requires higher numbers (100 and 50) - local param ld/st accesses treated like local ld/st for timing model [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 6878] --- src/gpgpu-sim/shader.cc | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'src/gpgpu-sim') diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc index 3f084f8..05a8b0e 100644 --- a/src/gpgpu-sim/shader.cc +++ b/src/gpgpu-sim/shader.cc @@ -1659,8 +1659,7 @@ inline int is_const ( memory_space_t space ) { } inline int is_local ( memory_space_t space ) { - assert( space != param_space_local ); // todo: map local param memory to linear address space - return((space) == local_space); + return (space == local_space) || (space == param_space_local); } inline int is_param ( memory_space_t space ) { @@ -2481,12 +2480,10 @@ mem_stage_stall_type send_mem_request(shader_core_ctx_t *shader, mem_access_t &a access_type = (access.iswrite)? GLOBAL_ACC_W: GLOBAL_ACC_R; break; case local_space: + case param_space_local: code = DCACHE; access_type = (access.iswrite)? LOCAL_ACC_W: LOCAL_ACC_R; break; - case param_space_local: - abort(); // todo: define mapping of local param space to linear memory ? - break; default: assert(0); // NOT A MEM SPACE; break; @@ -2837,10 +2834,10 @@ void shader_memory_queue(shader_core_ctx_t *shader, shader_queues_t *accessqs) break; case global_space: case local_space: + case param_space_local: path[i] = GLOBAL_MEM_PATH; type_counts[GLOBAL_MEM_PATH]++; break; - case param_space_local: case param_space_unclassified: abort(); // todo: define access details break; -- cgit v1.3