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 --- |