summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAli Saidi <Ali.Saidi@ARM.com>2011-08-19 15:08:08 -0500
committerAli Saidi <Ali.Saidi@ARM.com>2011-08-19 15:08:08 -0500
commitc9c2d979b8c505d0013beb4b4b3e1885963e8d39 (patch)
tree69b225aaeaab53bfcdfaccd8750241f7d68b19c6 /src
parent2fd2b44b86c3d40e76f1e1641001074230208b3f (diff)
downloadgem5-c9c2d979b8c505d0013beb4b4b3e1885963e8d39.tar.xz
Mem: Put prefetcher notify call before packet is deleted.
Diffstat (limited to 'src')
-rw-r--r--src/mem/cache/cache_impl.hh12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh
index e9a40a741..b29d52f78 100644
--- a/src/mem/cache/cache_impl.hh
+++ b/src/mem/cache/cache_impl.hh
@@ -514,18 +514,18 @@ Cache<TagStore>::timingAccess(PacketPtr pkt)
bool needsResponse = pkt->needsResponse();
if (satisfied) {
+ if (prefetcher && (prefetchOnAccess || (blk && blk->wasPrefetched()))) {
+ if (blk)
+ blk->status &= ~BlkHWPrefetched;
+ next_pf_time = prefetcher->notify(pkt, time);
+ }
+
if (needsResponse) {
pkt->makeTimingResponse();
cpuSidePort->respond(pkt, curTick()+lat);
} else {
delete pkt;
}
-
- if (prefetcher && (prefetchOnAccess || (blk && blk->wasPrefetched()))) {
- if (blk)
- blk->status &= ~BlkHWPrefetched;
- next_pf_time = prefetcher->notify(pkt, time);
- }
} else {
// miss