diff options
| -rw-r--r-- | src/abstract_hardware_model.cc | 11 | ||||
| -rw-r--r-- | src/abstract_hardware_model.h | 1 | ||||
| -rw-r--r-- | src/cuda-sim/cuda-sim.cc | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/abstract_hardware_model.cc b/src/abstract_hardware_model.cc index b86e750..c6862ef 100644 --- a/src/abstract_hardware_model.cc +++ b/src/abstract_hardware_model.cc @@ -545,6 +545,16 @@ simt_stack::simt_stack( unsigned wid, unsigned warpSize) reset(); } +simt_stack::~simt_stack() +{ + free(m_pc); + free(m_calldepth); + delete m_active_mask; + free(m_recvg_pc); + free(m_branch_div_cycle); + free(m_type); +} + void simt_stack::reset() { m_stack_top = 0; @@ -653,6 +663,7 @@ void simt_stack::update( simt_mask_t &thread_done, addr_vector_t &next_pc, addre stack_top += 1; m_active_mask[stack_top] = tmp_active_mask; + m_pc[stack_top]=tmp_next_pc; m_type[stack_top]= CALL; m_recvg_pc[stack_top] = -1; diff --git a/src/abstract_hardware_model.h b/src/abstract_hardware_model.h index 4cde89a..428b5fc 100644 --- a/src/abstract_hardware_model.h +++ b/src/abstract_hardware_model.h @@ -244,6 +244,7 @@ typedef std::vector<address_type> addr_vector_t; class simt_stack { public: simt_stack( unsigned wid, unsigned warpSize); + ~simt_stack(); void reset(); void launch( address_type start_pc, const simt_mask_t &active_mask ); diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc index e17877b..16bc653 100644 --- a/src/cuda-sim/cuda-sim.cc +++ b/src/cuda-sim/cuda-sim.cc @@ -515,7 +515,7 @@ void ptx_instruction::set_opcode_and_latency() op = CALL_OPS; break; } - case RET_OP: op = RET_OPS;break; + case RET_OP: case RETP_OP: op = RET_OPS;break; case ADD_OP: case ADDP_OP: case ADDC_OP: case SUB_OP: case SUBC_OP: //ADD,SUB latency switch(get_type()){ |
