mshr.cc (11083:61b329833f74) mshr.cc (11177:524c44cf8278)
1/*
2 * Copyright (c) 2012-2013, 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

--- 416 unchanged lines hidden (view full) ---

425 order = targets.front().order;
426 readyTime = std::max(curTick(), targets.front().readyTime);
427
428 return true;
429}
430
431
432void
1/*
2 * Copyright (c) 2012-2013, 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

--- 416 unchanged lines hidden (view full) ---

425 order = targets.front().order;
426 readyTime = std::max(curTick(), targets.front().readyTime);
427
428 return true;
429}
430
431
432void
433MSHR::handleFill(PacketPtr pkt, CacheBlk *blk)
433MSHR::promoteExclusive()
434{
434{
435 if (!pkt->sharedAsserted()
436 && !(hasPostInvalidate() || hasPostDowngrade())
437 && deferredTargets.needsExclusive) {
435 if (deferredTargets.needsExclusive &&
436 !(hasPostInvalidate() || hasPostDowngrade())) {
438 // We got an exclusive response, but we have deferred targets
439 // which are waiting to request an exclusive copy (not because
440 // of a pending invalidate). This can happen if the original
441 // request was for a read-only (non-exclusive) block, but we
442 // got an exclusive copy anyway because of the E part of the
443 // MOESI/MESI protocol. Since we got the exclusive copy
444 // there's no need to defer the targets, so move them up to
445 // the regular target list.

--- 59 unchanged lines hidden ---
437 // We got an exclusive response, but we have deferred targets
438 // which are waiting to request an exclusive copy (not because
439 // of a pending invalidate). This can happen if the original
440 // request was for a read-only (non-exclusive) block, but we
441 // got an exclusive copy anyway because of the E part of the
442 // MOESI/MESI protocol. Since we got the exclusive copy
443 // there's no need to defer the targets, so move them up to
444 // the regular target list.

--- 59 unchanged lines hidden ---