cache.cc (11276:3561d002d8c7) | cache.cc (11277:4f8703832608) |
---|---|
1/* 2 * Copyright (c) 2010-2015 ARM Limited 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 2338 unchanged lines hidden (view full) --- 2347 tgt_pkt->getAddr(), tgt_pkt->isSecure()? "s": "ns"); 2348 return NULL; 2349 } 2350 2351 if (snoop_pkt.isBlockCached() || blk != NULL) { 2352 DPRINTF(Cache, "Block present, prefetch squashed by cache. " 2353 "Deallocating mshr target %#x.\n", 2354 mshr->blkAddr); | 1/* 2 * Copyright (c) 2010-2015 ARM Limited 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 2338 unchanged lines hidden (view full) --- 2347 tgt_pkt->getAddr(), tgt_pkt->isSecure()? "s": "ns"); 2348 return NULL; 2349 } 2350 2351 if (snoop_pkt.isBlockCached() || blk != NULL) { 2352 DPRINTF(Cache, "Block present, prefetch squashed by cache. " 2353 "Deallocating mshr target %#x.\n", 2354 mshr->blkAddr); |
2355 | |
2356 // Deallocate the mshr target | 2355 // Deallocate the mshr target |
2357 if (!tgt_pkt->isWriteback()) { 2358 if (mshr->queue->forceDeallocateTarget(mshr)) { 2359 // Clear block if this deallocation resulted freed an 2360 // mshr when all had previously been utilized 2361 clearBlocked((BlockedCause)(mshr->queue->index)); 2362 } 2363 return NULL; 2364 } else { 2365 // If this is a Writeback, and the snoops indicate that the blk 2366 // is cached above, set the BLOCK_CACHED flag in the Writeback 2367 // packet, so that it does not reset the bits corresponding to 2368 // this block in the snoop filter below. 2369 tgt_pkt->setBlockCached(); | 2356 if (mshr->queue->forceDeallocateTarget(mshr)) { 2357 // Clear block if this deallocation resulted freed an 2358 // mshr when all had previously been utilized 2359 clearBlocked((BlockedCause)(mshr->queue->index)); |
2370 } | 2360 } |
2361 return NULL; |
|
2371 } 2372 } 2373 2374 if (mshr->isForwardNoResponse()) { 2375 // no response expected, just forward packet as it is 2376 assert(tags->findBlock(mshr->blkAddr, mshr->isSecure) == NULL); 2377 pkt = tgt_pkt; 2378 } else { --- 265 unchanged lines hidden --- | 2362 } 2363 } 2364 2365 if (mshr->isForwardNoResponse()) { 2366 // no response expected, just forward packet as it is 2367 assert(tags->findBlock(mshr->blkAddr, mshr->isSecure) == NULL); 2368 pkt = tgt_pkt; 2369 } else { --- 265 unchanged lines hidden --- |