summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/inorder_dyn_inst.cc
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2011-02-23 16:30:45 -0500
committerKorey Sewell <ksewell@umich.edu>2011-02-23 16:30:45 -0500
commite0a021005d4765e22b8c026b6a66fda4a0b17c00 (patch)
tree018bc111bf5886ba7e4f98982541d2ea704e2d7f /src/cpu/inorder/inorder_dyn_inst.cc
parent73603c2b177b8e5dad264312b354b6787ae555d1 (diff)
downloadgem5-e0a021005d4765e22b8c026b6a66fda4a0b17c00.tar.xz
inorder: cache packet handling
-use a pointer to CacheReqPacket instead of PacketPtr so correct destructors get called on packet deletion - make sure to delete the packet if the cache blocks the sendTiming request or for some reason we dont use the packet - dont overwrite memory requests since in the worst case an instruction will be replaying a request so no need to keep allocating a new request - we dont use retryPkt so delete it - fetch code was split out already, so just assert that this is a memory reference inst. and that the staticInst is available
Diffstat (limited to 'src/cpu/inorder/inorder_dyn_inst.cc')
-rw-r--r--src/cpu/inorder/inorder_dyn_inst.cc13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/cpu/inorder/inorder_dyn_inst.cc b/src/cpu/inorder/inorder_dyn_inst.cc
index e9deb7625..b1751c0ae 100644
--- a/src/cpu/inorder/inorder_dyn_inst.cc
+++ b/src/cpu/inorder/inorder_dyn_inst.cc
@@ -195,14 +195,17 @@ InOrderDynInst::~InOrderDynInst()
dataMemReq = NULL;
}
- if (traceData) {
- delete traceData;
+ if (splitMemReq != 0x0) {
+ delete dataMemReq;
+ dataMemReq = NULL;
}
- if (splitMemData) {
+ if (traceData)
+ delete traceData;
+
+ if (splitMemData)
delete [] splitMemData;
- }
-
+
fault = NoFault;
--instcount;