summaryrefslogtreecommitdiff
path: root/src/mem
diff options
context:
space:
mode:
authorAli Saidi <Ali.Saidi@ARM.com>2012-05-10 18:04:27 -0500
committerAli Saidi <Ali.Saidi@ARM.com>2012-05-10 18:04:27 -0500
commitc02dc074248717ad6dd6f397f5124f97094f7a20 (patch)
treeec827655a58d8b1af5f050f82789f75456d68f9b /src/mem
parente029941bda3d47585461d424b0c519adbfd02e6f (diff)
downloadgem5-c02dc074248717ad6dd6f397f5124f97094f7a20.tar.xz
Cache: restructure code that actually isn't a loop
Diffstat (limited to 'src/mem')
-rw-r--r--src/mem/cache/cache_impl.hh20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh
index 3312fc941..d9e06c022 100644
--- a/src/mem/cache/cache_impl.hh
+++ b/src/mem/cache/cache_impl.hh
@@ -1294,8 +1294,10 @@ Cache<TagStore>::snoopTiming(PacketPtr pkt)
pkt->getAddr());
//Look through writebacks for any non-uncachable writes, use that
- for (int i = 0; i < writebacks.size(); i++) {
- mshr = writebacks[i];
+ if (writebacks.size()) {
+ // We should only ever find a single match
+ assert(writebacks.size() == 1);
+ mshr = writebacks[0];
assert(!mshr->isUncacheable());
assert(mshr->getNumTargets() == 1);
PacketPtr wb_pkt = mshr->getTarget()->pkt;
@@ -1321,16 +1323,14 @@ Cache<TagStore>::snoopTiming(PacketPtr pkt)
markInService(mshr);
delete wb_pkt;
}
-
- // If this was a shared writeback, there may still be
- // other shared copies above that require invalidation.
- // We could be more selective and return here if the
- // request is non-exclusive or if the writeback is
- // exclusive.
- break;
- }
+ } // writebacks.size()
}
+ // If this was a shared writeback, there may still be
+ // other shared copies above that require invalidation.
+ // We could be more selective and return here if the
+ // request is non-exclusive or if the writeback is
+ // exclusive.
handleSnoop(pkt, blk, true, false, false);
}