summaryrefslogtreecommitdiff
path: root/src/cuda-sim/cuda-sim.cc
diff options
context:
space:
mode:
authorJin Wang <[email protected]>2014-11-02 19:24:37 -0500
committerJin Wang <[email protected]>2016-07-05 09:16:53 -0400
commitcf507ddb207337bc7a67ded7c4438f0cb0bed26f (patch)
treed543a1ee86d9717a516abff3e30f0b72ec83bf62 /src/cuda-sim/cuda-sim.cc
parentf372a4c641b9e6d38470ead6ae25743d26c5fed1 (diff)
BUG: PTX section id. ADD: cudaDeviceSetLimit. BUG: parameter addresses for child kernels in CDP. BUG: .weak .entry and .weak .global directives in ptx file. BUG: empty_protected() for stream manager causes deadlock, change to empty()
Diffstat (limited to 'src/cuda-sim/cuda-sim.cc')
-rw-r--r--src/cuda-sim/cuda-sim.cc9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index 8dd1078..980afc8 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -1074,15 +1074,14 @@ unsigned function_info::get_args_aligned_size() {
std::string name = p.get_name();
symbol *param = m_symtab->lookup(name.c_str());
- size_t arg_size = p.get_size(); // size of param in bytes
+ size_t arg_size = p.get_size() / 8; // size of param in bytes
total_size = (total_size + arg_size - 1) / arg_size * arg_size; //aligned
p.add_offset(total_size);
- param_address += total_size;
- param->set_address(param_address);
+ param->set_address(param_address + total_size);
total_size += arg_size;
}
- return (total_size + 3) / 4; //final size aligned to word
+ return (total_size + 3) / 4 * 4; //final size aligned to word
}
@@ -1219,8 +1218,6 @@ void ptx_thread_info::ptx_exec_inst( warp_inst_t &inst, unsigned lane_id)
bool skip = false;
int op_classification = 0;
addr_t pc = next_instr();
- if(pc == 440)
- pc = 440;
assert( pc == inst.pc ); // make sure timing model and functional model are in sync
const ptx_instruction *pI = m_func_info->get_instruction(pc);
set_npc( pc + pI->inst_size() );