summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/inorder_dyn_inst.hh
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2010-01-31 18:30:59 -0500
committerKorey Sewell <ksewell@umich.edu>2010-01-31 18:30:59 -0500
commitc7f6e2661c958d996479ae9fe8c8cf2c8a9482f6 (patch)
treed78a7ba5dc62904179d13f612a0138bdccd7de79 /src/cpu/inorder/inorder_dyn_inst.hh
parent9357e353fc976a409fb0cb3a875b402f452577f7 (diff)
downloadgem5-c7f6e2661c958d996479ae9fe8c8cf2c8a9482f6.tar.xz
inorder: double delete inst bug
Make sure that instructions are dereferenced/deleted twice by marking they are on the remove list
Diffstat (limited to 'src/cpu/inorder/inorder_dyn_inst.hh')
-rw-r--r--src/cpu/inorder/inorder_dyn_inst.hh10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cpu/inorder/inorder_dyn_inst.hh b/src/cpu/inorder/inorder_dyn_inst.hh
index 8a5f9cf25..8c9cd69e0 100644
--- a/src/cpu/inorder/inorder_dyn_inst.hh
+++ b/src/cpu/inorder/inorder_dyn_inst.hh
@@ -164,6 +164,7 @@ class InOrderDynInst : public FastAlloc, public RefCounted
/// instructions ahead of it
SerializeAfter, /// Needs to serialize instructions behind it
SerializeHandled, /// Serialization has been handled
+ RemoveList, /// Is Instruction on Remove List?
NumStatus
};
@@ -342,7 +343,8 @@ class InOrderDynInst : public FastAlloc, public RefCounted
bool splitInst;
int splitFinishCnt;
uint64_t *split2ndStoreDataPtr;
-
+ bool splitInstSked;
+
////////////////////////////////////////////////////////////
//
// BASE INSTRUCTION INFORMATION.
@@ -915,6 +917,12 @@ class InOrderDynInst : public FastAlloc, public RefCounted
/** Returns whether or not the entry is on the CPU Reg Dep Map */
bool isRegDepEntry() const { return status[RegDepMapEntry]; }
+ /** Sets this instruction as entered on the CPU Reg Dep Map */
+ void setRemoveList() { status.set(RemoveList); }
+
+ /** Returns whether or not the entry is on the CPU Reg Dep Map */
+ bool isRemoveList() const { return status[RemoveList]; }
+
/** Sets this instruction as completed. */
void setCompleted() { status.set(Completed); }