mshr.cc (10768:9a34e28cd2c2) mshr.cc (10821:581fb2484bd6)
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

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

366 // packet data storage may have been deleted by the time we
367 // get to send this packet.
368 PacketPtr cp_pkt = new Packet(pkt, true, true);
369 targets.add(cp_pkt, curTick(), _order, Target::FromSnoop,
370 downstreamPending && targets.needsExclusive);
371
372 if (isPendingDirty()) {
373 pkt->assertMemInhibit();
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

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

366 // packet data storage may have been deleted by the time we
367 // get to send this packet.
368 PacketPtr cp_pkt = new Packet(pkt, true, true);
369 targets.add(cp_pkt, curTick(), _order, Target::FromSnoop,
370 downstreamPending && targets.needsExclusive);
371
372 if (isPendingDirty()) {
373 pkt->assertMemInhibit();
374 // in the case of an uncacheable request there is no need
375 // to set the exclusive flag, but since the recipient does
376 // not care there is no harm in doing so
374 pkt->setSupplyExclusive();
375 }
376
377 if (pkt->needsExclusive()) {
378 // This transaction will take away our pending copy
379 postInvalidate = true;
380 }
381 }
382
377 pkt->setSupplyExclusive();
378 }
379
380 if (pkt->needsExclusive()) {
381 // This transaction will take away our pending copy
382 postInvalidate = true;
383 }
384 }
385
383 if (!pkt->needsExclusive()) {
386 if (!pkt->needsExclusive() && !pkt->req->isUncacheable()) {
384 // This transaction will get a read-shared copy, downgrading
385 // our copy if we had an exclusive one
386 postDowngrade = true;
387 pkt->assertShared();
388 }
389
390 return true;
391}

--- 96 unchanged lines hidden ---
387 // This transaction will get a read-shared copy, downgrading
388 // our copy if we had an exclusive one
389 postDowngrade = true;
390 pkt->assertShared();
391 }
392
393 return true;
394}

--- 96 unchanged lines hidden ---