summaryrefslogtreecommitdiff
path: root/src/cuda-sim
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuda-sim')
-rw-r--r--src/cuda-sim/cuda-sim.cc6
-rw-r--r--src/cuda-sim/ptx_ir.cc3
2 files changed, 7 insertions, 2 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index 4281913..58bd4e0 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -638,7 +638,7 @@ void ptx_instruction::set_opcode_and_latency()
case MEMBAR_OP: op = MEMORY_BARRIER_OP; break;
case CALL_OP:
{
- if(m_is_printf)
+ if(m_is_printf || m_is_cdp)
op = ALU_OP;
else
op = CALL_OPS;
@@ -646,7 +646,7 @@ void ptx_instruction::set_opcode_and_latency()
}
case CALLP_OP:
{
- if(m_is_printf)
+ if(m_is_printf || m_is_cdp)
op = ALU_OP;
else
op = CALL_OPS;
@@ -1219,6 +1219,8 @@ 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() );
diff --git a/src/cuda-sim/ptx_ir.cc b/src/cuda-sim/ptx_ir.cc
index 915c623..861f0dc 100644
--- a/src/cuda-sim/ptx_ir.cc
+++ b/src/cuda-sim/ptx_ir.cc
@@ -1241,6 +1241,9 @@ ptx_instruction::ptx_instruction( int opcode,
if (fname =="vprintf"){
m_is_printf = true;
}
+ if (fname == "cudaGetParameterBufferV2"
+ || fname == "cudaLaunchDeviceV2")
+ m_is_cdp = true;
}
}