mshr.cc (11375:f98df9231cdd) mshr.cc (11484:08b33c52a16d)
1/*
2 * Copyright (c) 2012-2013, 2015-2016 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

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

90 }
91 }
92
93 if (markPending) {
94 // Iterate over the SenderState stack and see if we find
95 // an MSHR entry. If we do, set the downstreamPending
96 // flag. Otherwise, do nothing.
97 MSHR *mshr = pkt->findNextSenderState<MSHR>();
1/*
2 * Copyright (c) 2012-2013, 2015-2016 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

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

90 }
91 }
92
93 if (markPending) {
94 // Iterate over the SenderState stack and see if we find
95 // an MSHR entry. If we do, set the downstreamPending
96 // flag. Otherwise, do nothing.
97 MSHR *mshr = pkt->findNextSenderState<MSHR>();
98 if (mshr != NULL) {
98 if (mshr != nullptr) {
99 assert(!mshr->downstreamPending);
100 mshr->downstreamPending = true;
101 } else {
102 // No need to clear downstreamPending later
103 markPending = false;
104 }
105 }
106

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

161 if (t.markedPending) {
162 // Iterate over the SenderState stack and see if we find
163 // an MSHR entry. If we find one, clear the
164 // downstreamPending flag by calling
165 // clearDownstreamPending(). This recursively clears the
166 // downstreamPending flag in all caches this packet has
167 // passed through.
168 MSHR *mshr = t.pkt->findNextSenderState<MSHR>();
99 assert(!mshr->downstreamPending);
100 mshr->downstreamPending = true;
101 } else {
102 // No need to clear downstreamPending later
103 markPending = false;
104 }
105 }
106

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

161 if (t.markedPending) {
162 // Iterate over the SenderState stack and see if we find
163 // an MSHR entry. If we find one, clear the
164 // downstreamPending flag by calling
165 // clearDownstreamPending(). This recursively clears the
166 // downstreamPending flag in all caches this packet has
167 // passed through.
168 MSHR *mshr = t.pkt->findNextSenderState<MSHR>();
169 if (mshr != NULL) {
169 if (mshr != nullptr) {
170 mshr->clearDownstreamPending();
171 }
172 }
173 }
174}
175
176
177bool

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

486
487bool
488MSHR::checkFunctional(PacketPtr pkt)
489{
490 // For printing, we treat the MSHR as a whole as single entity.
491 // For other requests, we iterate over the individual targets
492 // since that's where the actual data lies.
493 if (pkt->isPrint()) {
170 mshr->clearDownstreamPending();
171 }
172 }
173 }
174}
175
176
177bool

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

486
487bool
488MSHR::checkFunctional(PacketPtr pkt)
489{
490 // For printing, we treat the MSHR as a whole as single entity.
491 // For other requests, we iterate over the individual targets
492 // since that's where the actual data lies.
493 if (pkt->isPrint()) {
494 pkt->checkFunctional(this, blkAddr, isSecure, blkSize, NULL);
494 pkt->checkFunctional(this, blkAddr, isSecure, blkSize, nullptr);
495 return false;
496 } else {
497 return (targets.checkFunctional(pkt) ||
498 deferredTargets.checkFunctional(pkt));
499 }
500}
501
502bool

--- 35 unchanged lines hidden ---
495 return false;
496 } else {
497 return (targets.checkFunctional(pkt) ||
498 deferredTargets.checkFunctional(pkt));
499 }
500}
501
502bool

--- 35 unchanged lines hidden ---