diff options
Diffstat (limited to 'src/mem/cache/base.hh')
-rw-r--r-- | src/mem/cache/base.hh | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mem/cache/base.hh b/src/mem/cache/base.hh index 3baec36d9..a992583fe 100644 --- a/src/mem/cache/base.hh +++ b/src/mem/cache/base.hh @@ -508,9 +508,12 @@ class BaseCache : public MemObject MSHR *allocateWriteBuffer(PacketPtr pkt, Tick time) { - // should only see clean evictions in a read-only cache - assert(!isReadOnly || pkt->cmd == MemCmd::CleanEvict); - assert(pkt->isWrite() && !pkt->isRead()); + // should only see writes or clean evicts here + assert(pkt->isWrite() || pkt->cmd == MemCmd::CleanEvict); + + // if this is a read-only cache we should never see any writes + assert(!(isReadOnly && pkt->isWrite())); + return allocateBufferInternal(&writeBuffer, blockAlign(pkt->getAddr()), blkSize, pkt, time, true); |