diff options
Diffstat (limited to 'src/mem/cache/tags/base.hh')
-rw-r--r-- | src/mem/cache/tags/base.hh | 11 |
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(); } /** |