diff options
Diffstat (limited to 'src/cpu/inorder/resources/cache_unit.hh')
-rw-r--r-- | src/cpu/inorder/resources/cache_unit.hh | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/cpu/inorder/resources/cache_unit.hh b/src/cpu/inorder/resources/cache_unit.hh index 219329683..4cde686b8 100644 --- a/src/cpu/inorder/resources/cache_unit.hh +++ b/src/cpu/inorder/resources/cache_unit.hh @@ -246,7 +246,13 @@ class CacheRequest : public ResourceRequest : ResourceRequest(cres, inst, stage_num, res_idx, slot_num, cmd), pktCmd(pkt_cmd), memAccComplete(false), memAccPending(false) { - memReq = inst->memReq; + if (cmd == CacheUnit::InitiateFetch || + cmd == CacheUnit::CompleteFetch || + cmd == CacheUnit::Fetch) { + memReq = inst->fetchMemReq; + } else { + memReq = inst->dataMemReq; + } reqData = new uint8_t[req_size]; retryPkt = NULL; @@ -273,9 +279,6 @@ class CacheRequest : public ResourceRequest delete retryPkt; } #endif - - if (memReq) - delete memReq; } virtual PacketDataPtr getData() |