diff options
| author | Hadi Jooybar <[email protected]> | 2012-11-05 19:35:21 -0800 |
|---|---|---|
| committer | Andrew Boktor <[email protected]> | 2014-08-14 13:49:21 -0700 |
| commit | 0b5efbc556621998ac42e96024163fae05beaf85 (patch) | |
| tree | ae17e55c4103b246597e6dd2ad1981cee90e0b7a /src/cuda-sim/ptx_sim.cc | |
| parent | 9af6f86d0f06c2ca1b117d358009b91a646b0e83 (diff) | |
OpenCL newer diver fix
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 14554]
Diffstat (limited to 'src/cuda-sim/ptx_sim.cc')
| -rw-r--r-- | src/cuda-sim/ptx_sim.cc | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/cuda-sim/ptx_sim.cc b/src/cuda-sim/ptx_sim.cc index b0393fa..29351a0 100644 --- a/src/cuda-sim/ptx_sim.cc +++ b/src/cuda-sim/ptx_sim.cc @@ -207,7 +207,36 @@ unsigned ptx_thread_info::get_builtin( int builtin_id, unsigned dim_mod ) if( dim_mod == 2 ) return m_ctaid.z; abort(); break; - case ENVREG_REG: feature_not_implemented( "%envreg" ); return 0; + case ENVREG_REG:{ + int index = builtin_id >> 16; + dim3 gdim = this->get_core()->get_kernel_info()->get_grid_dim(); + switch(index){ + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + return 0; + break; + case 6: + return gdim.x; + case 7: + return gdim.y; + case 8: + return gdim.z; + case 9: + if(gdim.z == 1 && gdim.y == 1) + return 1; + else if(gdim.z == 1) + return 2; + else + return 3; + break; + default: + break; + } + } case GRIDID_REG: return m_gridid; case LANEID_REG: feature_not_implemented( "%laneid" ); return 0; |
