diff options
| author | Tim Rogers <[email protected]> | 2011-10-27 08:41:48 -0800 |
|---|---|---|
| committer | Andrew Boktor <[email protected]> | 2014-08-14 13:18:23 -0700 |
| commit | 52047f8c7ac9fa2ce47b5b59d1539a3b494a370f (patch) | |
| tree | 9be3829f3c2990fb5ce3b2f3174262fe07bd6213 /src | |
| parent | de8e00b3fa36edcf7b8f5452501eff8bc0cdc70f (diff) | |
Removing some function inlining to make debugging easier
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 10736]
Diffstat (limited to 'src')
| -rw-r--r-- | src/abstract_hardware_model.cc | 24 | ||||
| -rw-r--r-- | src/abstract_hardware_model.h | 28 |
2 files changed, 28 insertions, 24 deletions
diff --git a/src/abstract_hardware_model.cc b/src/abstract_hardware_model.cc index 2f169c4..802547e 100644 --- a/src/abstract_hardware_model.cc +++ b/src/abstract_hardware_model.cc @@ -101,6 +101,30 @@ struct transaction_info { active_mask_t active; // threads in this transaction }; +void warp_inst_t::clear_active( const active_mask_t &inactive ) { + active_mask_t test = m_warp_active_mask; + test &= inactive; + assert( test == inactive ); // verify threads being disabled were active + m_warp_active_mask &= ~inactive; +} + +void warp_inst_t::set_not_active( unsigned lane_id ) { + m_warp_active_mask.reset(lane_id); +} + +void warp_inst_t::set_active( const active_mask_t &active ) { + m_warp_active_mask = active; + if( m_isatomic ) { + for( unsigned i=0; i < m_config->warp_size; i++ ) { + if( !m_warp_active_mask.test(i) ) { + m_per_scalar_thread[i].callback.function = NULL; + m_per_scalar_thread[i].callback.instruction = NULL; + m_per_scalar_thread[i].callback.thread = NULL; + } + } + } +} + void warp_inst_t::generate_mem_accesses() { if( empty() || op == MEMORY_BARRIER_OP || m_mem_accesses_created ) diff --git a/src/abstract_hardware_model.h b/src/abstract_hardware_model.h index 69436a3..d0822d0 100644 --- a/src/abstract_hardware_model.h +++ b/src/abstract_hardware_model.h @@ -714,30 +714,10 @@ public: m_per_scalar_thread[lane_id].callback.instruction = inst; m_per_scalar_thread[lane_id].callback.thread = thread; } - void set_active( const active_mask_t &active ) - { - m_warp_active_mask = active; - if( m_isatomic ) { - for( unsigned i=0; i < m_config->warp_size; i++ ) { - if( !m_warp_active_mask.test(i) ) { - m_per_scalar_thread[i].callback.function = NULL; - m_per_scalar_thread[i].callback.instruction = NULL; - m_per_scalar_thread[i].callback.thread = NULL; - } - } - } - } - void clear_active( const active_mask_t &inactive ) - { - active_mask_t test = m_warp_active_mask; - test &= inactive; - assert( test == inactive ); // verify threads being disabled were active - m_warp_active_mask &= ~inactive; - } - void set_not_active( unsigned lane_id ) - { - m_warp_active_mask.reset(lane_id); - } + void set_active( const active_mask_t &active ); + + void clear_active( const active_mask_t &inactive ); + void set_not_active( unsigned lane_id ); // accessors virtual void print_insn(FILE *fp) const |
