diff options
| author | Tor Aamodt <[email protected]> | 2010-07-18 02:20:50 -0800 |
|---|---|---|
| committer | Tor Aamodt <[email protected]> | 2010-07-18 02:20:50 -0800 |
| commit | cc404275f9226185e436e1da483ee58ee85c38ca (patch) | |
| tree | e133be6f3a1bb897593328e438196a04dc88b47d /src/gpgpu-sim/shader.cc | |
| parent | 7e755bb656b68cfb628fcc0424b1325c32cb5d61 (diff) | |
- 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]
Diffstat (limited to 'src/gpgpu-sim/shader.cc')
| -rw-r--r-- | src/gpgpu-sim/shader.cc | 9 |
1 files changed, 3 insertions, 6 deletions
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; |
