cache.cc (12633:675cd1260b40) | cache.cc (12691:8e1371fde4be) |
---|---|
1/* 2 * Copyright (c) 2010-2018 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 --- 383 unchanged lines hidden (view full) --- 392 blk = allocateBlock(pkt->getAddr(), pkt->isSecure(), writebacks); 393 if (blk == nullptr) { 394 // no replaceable block available: give up, fwd to next level. 395 incMissCount(pkt); 396 return false; 397 } 398 tags->insertBlock(pkt, blk); 399 | 1/* 2 * Copyright (c) 2010-2018 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 --- 383 unchanged lines hidden (view full) --- 392 blk = allocateBlock(pkt->getAddr(), pkt->isSecure(), writebacks); 393 if (blk == nullptr) { 394 // no replaceable block available: give up, fwd to next level. 395 incMissCount(pkt); 396 return false; 397 } 398 tags->insertBlock(pkt, blk); 399 |
400 blk->status = (BlkValid | BlkReadable); 401 if (pkt->isSecure()) { 402 blk->status |= BlkSecure; 403 } | 400 blk->status |= (BlkValid | BlkReadable); |
404 } 405 // only mark the block dirty if we got a writeback command, 406 // and leave it as is for a clean writeback 407 if (pkt->cmd == MemCmd::WritebackDirty) { 408 assert(!blk->isDirty()); 409 blk->status |= BlkDirty; 410 } 411 // if the packet does not have sharers, it is passing --- 43 unchanged lines hidden (view full) --- 455 if (!blk) { 456 // no replaceable block available: give up, fwd to 457 // next level. 458 incMissCount(pkt); 459 return false; 460 } 461 tags->insertBlock(pkt, blk); 462 | 401 } 402 // only mark the block dirty if we got a writeback command, 403 // and leave it as is for a clean writeback 404 if (pkt->cmd == MemCmd::WritebackDirty) { 405 assert(!blk->isDirty()); 406 blk->status |= BlkDirty; 407 } 408 // if the packet does not have sharers, it is passing --- 43 unchanged lines hidden (view full) --- 452 if (!blk) { 453 // no replaceable block available: give up, fwd to 454 // next level. 455 incMissCount(pkt); 456 return false; 457 } 458 tags->insertBlock(pkt, blk); 459 |
463 blk->status = (BlkValid | BlkReadable); 464 if (pkt->isSecure()) { 465 blk->status |= BlkSecure; 466 } | 460 blk->status |= (BlkValid | BlkReadable); |
467 } 468 } 469 470 // at this point either this is a writeback or a write-through 471 // write clean operation and the block is already in this 472 // cache, we need to update the data and the block flags 473 assert(blk); 474 assert(!blk->isDirty()); --- 2411 unchanged lines hidden --- | 461 } 462 } 463 464 // at this point either this is a writeback or a write-through 465 // write clean operation and the block is already in this 466 // cache, we need to update the data and the block flags 467 assert(blk); 468 assert(!blk->isDirty()); --- 2411 unchanged lines hidden --- |