diff options
| author | Mahmoud <[email protected]> | 2018-11-05 20:11:21 -0500 |
|---|---|---|
| committer | Mahmoud <[email protected]> | 2018-11-05 20:11:21 -0500 |
| commit | 2823b21ea0b84555c0f0c9b8a6e02614bf80f941 (patch) | |
| tree | 659c0822c90b2dcbe4b39c623aae1d819d8ae4c1 /src/abstract_hardware_model.h | |
| parent | f799cd5485a36de48abce286b2f69cee75d2be38 (diff) | |
fixing subcore model bug
Diffstat (limited to 'src/abstract_hardware_model.h')
| -rw-r--r-- | src/abstract_hardware_model.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/abstract_hardware_model.h b/src/abstract_hardware_model.h index d0f7066..d123131 100644 --- a/src/abstract_hardware_model.h +++ b/src/abstract_hardware_model.h @@ -1166,7 +1166,11 @@ public: } return false; } - bool has_free(unsigned reg_id){ + bool has_free(bool sub_core_model, unsigned reg_id){ + //in subcore model, each sched has a one specific reg to use (based on sched id) + if(!sub_core_model) + return has_free(); + assert(reg_id < regs.size()); return regs[reg_id]->empty(); } @@ -1225,7 +1229,11 @@ public: return NULL; } - warp_inst_t ** get_free(unsigned reg_id){ + warp_inst_t ** get_free(bool sub_core_model, unsigned reg_id){ + //in subcore model, each sched has a one specific reg to use (based on sched id) + if(!sub_core_model) + return get_free(); + assert(reg_id < regs.size()); if( regs[reg_id]->empty() ) { return ®s[reg_id]; |
