summaryrefslogtreecommitdiff
path: root/src/abstract_hardware_model.h
diff options
context:
space:
mode:
authorMahmoud <[email protected]>2018-11-05 20:11:21 -0500
committerMahmoud <[email protected]>2018-11-05 20:11:21 -0500
commit2823b21ea0b84555c0f0c9b8a6e02614bf80f941 (patch)
tree659c0822c90b2dcbe4b39c623aae1d819d8ae4c1 /src/abstract_hardware_model.h
parentf799cd5485a36de48abce286b2f69cee75d2be38 (diff)
fixing subcore model bug
Diffstat (limited to 'src/abstract_hardware_model.h')
-rw-r--r--src/abstract_hardware_model.h12
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 &regs[reg_id];