mem: Avoid unecessary checks when creating HardPFReq in cache

The checks made before sending out a HardPFReq were unecessarily
complex, and checked for cases that never occur. This patch
tidies it up.
This commit is contained in:
Andreas Hansson 2015-12-28 11:14:15 -05:00
parent b93a9d0d51
commit fbf3987c7b

View file

@ -2352,22 +2352,13 @@ Cache::getTimingPacket()
DPRINTF(Cache, "Block present, prefetch squashed by cache. "
"Deallocating mshr target %#x.\n",
mshr->blkAddr);
// Deallocate the mshr target
if (!tgt_pkt->isWriteback()) {
if (mshr->queue->forceDeallocateTarget(mshr)) {
// Clear block if this deallocation resulted freed an
// mshr when all had previously been utilized
clearBlocked((BlockedCause)(mshr->queue->index));
}
return NULL;
} else {
// If this is a Writeback, and the snoops indicate that the blk
// is cached above, set the BLOCK_CACHED flag in the Writeback
// packet, so that it does not reset the bits corresponding to
// this block in the snoop filter below.
tgt_pkt->setBlockCached();
if (mshr->queue->forceDeallocateTarget(mshr)) {
// Clear block if this deallocation resulted freed an
// mshr when all had previously been utilized
clearBlocked((BlockedCause)(mshr->queue->index));
}
return NULL;
}
}