diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2012-06-29 11:18:29 -0400 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2012-06-29 11:18:29 -0400 |
commit | 8d1e56bdcd673fd3b1ddfd9ac82f7c1ded3110c4 (patch) | |
tree | e9f28aeb56273a2b4b909395f2a4e00bfefaaab3 /src/mem | |
parent | 7e3496c78c0a4f2e639d1361cf1c73ef4af0c10f (diff) | |
download | gem5-8d1e56bdcd673fd3b1ddfd9ac82f7c1ded3110c4.tar.xz |
Cache: Only invalidate a line in the cache when an uncacheable write is seen.
Diffstat (limited to 'src/mem')
-rw-r--r-- | src/mem/cache/cache_impl.hh | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh index fec0a6222..2329b2ea6 100644 --- a/src/mem/cache/cache_impl.hh +++ b/src/mem/cache/cache_impl.hh @@ -275,7 +275,7 @@ Cache<TagStore>::access(PacketPtr pkt, BlkType *&blk, if (pkt->req->isUncacheable()) { if (pkt->req->isClearLL()) { tags->clearLocks(); - } else { + } else if (pkt->isWrite()) { blk = tags->findBlock(pkt->getAddr()); if (blk != NULL) { tags->invalidateBlk(blk); @@ -439,7 +439,7 @@ Cache<TagStore>::timingAccess(PacketPtr pkt) if (pkt->req->isUncacheable()) { if (pkt->req->isClearLL()) { tags->clearLocks(); - } else { + } else if (pkt->isWrite()) { BlkType *blk = tags->findBlock(pkt->getAddr()); if (blk != NULL) { tags->invalidateBlk(blk); |