summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/shader.cc
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2010-07-18 02:20:50 -0800
committerTor Aamodt <[email protected]>2010-07-18 02:20:50 -0800
commitcc404275f9226185e436e1da483ee58ee85c38ca (patch)
treee133be6f3a1bb897593328e438196a04dc88b47d /src/gpgpu-sim/shader.cc
parent7e755bb656b68cfb628fcc0424b1325c32cb5d61 (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.cc9
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;