summaryrefslogtreecommitdiff
path: root/src/mem/cache/tags/base.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/cache/tags/base.hh')
-rw-r--r--src/mem/cache/tags/base.hh11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/mem/cache/tags/base.hh b/src/mem/cache/tags/base.hh
index c04329fe9..47bab4323 100644
--- a/src/mem/cache/tags/base.hh
+++ b/src/mem/cache/tags/base.hh
@@ -239,16 +239,21 @@ class BaseTags : public ClockedObject
}
/**
- * This function updates the tags when a block is invalidated but
- * does not invalidate the block itself.
- * @param blk The block to invalidate.
+ * This function updates the tags when a block is invalidated
+ *
+ * @param blk A valid block to invalidate.
*/
virtual void invalidate(CacheBlk *blk)
{
assert(blk);
assert(blk->isValid());
+
tagsInUse--;
occupancies[blk->srcMasterId]--;
+ totalRefs += blk->refCount;
+ sampledRefs++;
+
+ blk->invalidate();
}
/**