summaryrefslogtreecommitdiff
path: root/src/abstract_hardware_model.h
diff options
context:
space:
mode:
authorAaron Barnes <[email protected]>2021-05-10 15:05:06 -0400
committerAaron Barnes <[email protected]>2021-05-10 15:05:06 -0400
commitfa76ab438b0b8c2d2e8abf5f395c7a98a3d5fd9b (patch)
treec39f5b560b0d001c391ed4f63fd168b50e195d66 /src/abstract_hardware_model.h
parentb67288046af824a88f8bb94541ded14cc711ef35 (diff)
sub core model dispatches only to assigned exec pipelines
Diffstat (limited to 'src/abstract_hardware_model.h')
-rw-r--r--src/abstract_hardware_model.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/abstract_hardware_model.h b/src/abstract_hardware_model.h
index ba32358..d70c3eb 100644
--- a/src/abstract_hardware_model.h
+++ b/src/abstract_hardware_model.h
@@ -1346,6 +1346,17 @@ class register_set {
// void copy_in( warp_inst_t* src ){
// src->copy_contents_to(*get_free());
//}
+ void move_in(bool sub_core_model, unsigned reg_id, warp_inst_t *&src) {
+ warp_inst_t **free;
+ if (!sub_core_model) {
+ free = get_free();
+ } else {
+ assert(reg_id < regs.size());
+ free = get_free(sub_core_model, reg_id);
+ }
+ move_warp(*free, src);
+ }
+
void move_out_to(warp_inst_t *&dest) {
warp_inst_t **ready = get_ready();
move_warp(dest, *ready);