diff options
Diffstat (limited to 'src/abstract_hardware_model.h')
| -rw-r--r-- | src/abstract_hardware_model.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/abstract_hardware_model.h b/src/abstract_hardware_model.h index 1fc10b9..4cde89a 100644 --- a/src/abstract_hardware_model.h +++ b/src/abstract_hardware_model.h @@ -64,7 +64,9 @@ enum uarch_op_t { STORE_OP, BRANCH_OP, BARRIER_OP, - MEMORY_BARRIER_OP + MEMORY_BARRIER_OP, + CALL_OPS, + RET_OPS }; typedef enum uarch_op_t op_type; @@ -245,7 +247,7 @@ public: void reset(); void launch( address_type start_pc, const simt_mask_t &active_mask ); - void update( simt_mask_t &thread_done, addr_vector_t &next_pc, address_type recvg_pc ); + void update( simt_mask_t &thread_done, addr_vector_t &next_pc, address_type recvg_pc, op_type next_inst_op ); const simt_mask_t &get_active_mask() const; void get_pdom_stack_top_info( unsigned *pc, unsigned *rpc ) const; @@ -256,12 +258,19 @@ protected: unsigned m_warp_id; unsigned m_stack_top; unsigned m_warp_size; + unsigned m_max_stack_size; address_type *m_pc; simt_mask_t *m_active_mask; address_type *m_recvg_pc; unsigned int *m_calldepth; + enum stack_entry_type { + NORMAL = 0, + CALL + }; + stack_entry_type *m_type; + unsigned long long *m_branch_div_cycle; }; @@ -683,6 +692,7 @@ public: m_per_scalar_thread_valid=false; m_mem_accesses_created=false; m_cache_hit=false; + m_is_printf=false; } virtual ~warp_inst_t(){ } @@ -814,6 +824,7 @@ protected: unsigned long long issue_cycle; unsigned cycles; // used for implementing initiation interval delay bool m_isatomic; + bool m_is_printf; unsigned m_warp_id; const core_config *m_config; active_mask_t m_warp_active_mask; |
