summaryrefslogtreecommitdiff
path: root/src/mem/cache/cache.cc
diff options
context:
space:
mode:
authorNikos Nikoleris <nikos.nikoleris@arm.com>2016-12-05 16:48:18 -0500
committerNikos Nikoleris <nikos.nikoleris@arm.com>2016-12-05 16:48:18 -0500
commitd28c2906f4125ce8704ce9cefa471f1a5050eeae (patch)
treed08ceec1036d613e97b858ae077afdc3225bf83a /src/mem/cache/cache.cc
parentf7a5de3becd60b93d89684f8e387046c497c183a (diff)
downloadgem5-d28c2906f4125ce8704ce9cefa471f1a5050eeae.tar.xz
mem: Keep track of allocOnFill in the TargetList
Previously the information of whether a response was allocating or not was a property of the MSHR. This change makes this flag a property of the TargetList. Differernt TargetLists, e.g. the targets and the deferred targets lists might have different values. Additionally, the information about whether each of the target expects an allocating response is stored inside the TargetList container. This allows for repopulating the flag in case some of the targets are removed. Change-Id: If3ec2516992f42a6d9da907009ffe3ab8d0d2021 Reviewed-by: Andreas Hansson <andreas.hansson@arm.com> Reviewed-by: Stephan Diestelhorst <stephan.diestelhorst@arm.com>
Diffstat (limited to 'src/mem/cache/cache.cc')
-rw-r--r--src/mem/cache/cache.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mem/cache/cache.cc b/src/mem/cache/cache.cc
index e3f2777ef..db982c1f0 100644
--- a/src/mem/cache/cache.cc
+++ b/src/mem/cache/cache.cc
@@ -1318,7 +1318,7 @@ Cache::recvTimingResp(PacketPtr pkt)
DPRINTF(Cache, "Block for addr %#llx being updated in Cache\n",
pkt->getAddr());
- blk = handleFill(pkt, blk, writebacks, mshr->allocOnFill);
+ blk = handleFill(pkt, blk, writebacks, mshr->allocOnFill());
assert(blk != nullptr);
}
@@ -1369,7 +1369,8 @@ Cache::recvTimingResp(PacketPtr pkt)
// any deferred targets if possible
mshr->promoteWritable();
// NB: we use the original packet here and not the response!
- blk = handleFill(tgt_pkt, blk, writebacks, mshr->allocOnFill);
+ blk = handleFill(tgt_pkt, blk, writebacks,
+ mshr->allocOnFill());
assert(blk != nullptr);
// treat as a fill, and discard the invalidation