diff options
author | Korey Sewell <ksewell@umich.edu> | 2011-06-19 21:43:42 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2011-06-19 21:43:42 -0400 |
commit | 477e7039b36dc816bf1116631ace714d0c83dd21 (patch) | |
tree | b2891e5ea1f7b27fe3f7d8384e3df0f29b5b252b /src/cpu | |
parent | b963b339b9d0f5a4583e62f32766f085ad95529e (diff) | |
download | gem5-477e7039b36dc816bf1116631ace714d0c83dd21.tar.xz |
inorder: clear reg. dep entry after removing from list
this will safeguard future code from trying to remove
from the list twice. That code wouldnt break but would
waste time.
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/inorder/inorder_dyn_inst.hh | 3 | ||||
-rw-r--r-- | src/cpu/inorder/reg_dep_map.cc | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/cpu/inorder/inorder_dyn_inst.hh b/src/cpu/inorder/inorder_dyn_inst.hh index c2d37d716..205bb0f82 100644 --- a/src/cpu/inorder/inorder_dyn_inst.hh +++ b/src/cpu/inorder/inorder_dyn_inst.hh @@ -943,6 +943,9 @@ class InOrderDynInst : public FastAlloc, public RefCounted /** Sets this instruction as entered on the CPU Reg Dep Map */ void setRegDepEntry() { status.set(RegDepMapEntry); } + /** Unsets this instruction as entered on the CPU Reg Dep Map */ + void clearRegDepEntry() { status.reset(RegDepMapEntry); } + /** Returns whether or not the entry is on the CPU Reg Dep Map */ bool isRegDepEntry() const { return status[RegDepMapEntry]; } diff --git a/src/cpu/inorder/reg_dep_map.cc b/src/cpu/inorder/reg_dep_map.cc index 2f8a2924c..fa2cc8daf 100644 --- a/src/cpu/inorder/reg_dep_map.cc +++ b/src/cpu/inorder/reg_dep_map.cc @@ -157,6 +157,8 @@ RegDepMap::remove(DynInstPtr inst) remove(reg_type, flat_idx, inst); } + + inst->clearRegDepEntry(); } } |