mshr.cc (12749:223c83ed9979) | mshr.cc (12791:8f27b3c23a91) |
---|---|
1/* 2 * Copyright (c) 2012-2013, 2015-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 --- 165 unchanged lines hidden (view full) --- 174 replaceUpgrade(t.pkt); 175 } 176 177 hasUpgrade = false; 178} 179 180 181void | 1/* 2 * Copyright (c) 2012-2013, 2015-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 --- 165 unchanged lines hidden (view full) --- 174 replaceUpgrade(t.pkt); 175 } 176 177 hasUpgrade = false; 178} 179 180 181void |
182MSHR::TargetList::clearDownstreamPending() | 182MSHR::TargetList::clearDownstreamPending(MSHR::TargetList::iterator begin, 183 MSHR::TargetList::iterator end) |
183{ | 184{ |
184 for (auto& t : *this) { 185 if (t.markedPending) { | 185 for (auto t = begin; t != end; t++) { 186 if (t->markedPending) { |
186 // Iterate over the SenderState stack and see if we find 187 // an MSHR entry. If we find one, clear the 188 // downstreamPending flag by calling 189 // clearDownstreamPending(). This recursively clears the 190 // downstreamPending flag in all caches this packet has 191 // passed through. | 187 // Iterate over the SenderState stack and see if we find 188 // an MSHR entry. If we find one, clear the 189 // downstreamPending flag by calling 190 // clearDownstreamPending(). This recursively clears the 191 // downstreamPending flag in all caches this packet has 192 // passed through. |
192 MSHR *mshr = t.pkt->findNextSenderState<MSHR>(); | 193 MSHR *mshr = t->pkt->findNextSenderState<MSHR>(); |
193 if (mshr != nullptr) { 194 mshr->clearDownstreamPending(); 195 } | 194 if (mshr != nullptr) { 195 mshr->clearDownstreamPending(); 196 } |
196 t.markedPending = false; | 197 t->markedPending = false; |
197 } 198 } 199} 200 | 198 } 199 } 200} 201 |
202void 203MSHR::TargetList::clearDownstreamPending() 204{ 205 clearDownstreamPending(begin(), end()); 206} |
|
201 | 207 |
208 |
|
202bool 203MSHR::TargetList::checkFunctional(PacketPtr pkt) 204{ 205 for (auto& t : *this) { 206 if (pkt->checkFunctional(t.pkt)) { 207 return true; 208 } 209 } --- 414 unchanged lines hidden --- | 209bool 210MSHR::TargetList::checkFunctional(PacketPtr pkt) 211{ 212 for (auto& t : *this) { 213 if (pkt->checkFunctional(t.pkt)) { 214 return true; 215 } 216 } --- 414 unchanged lines hidden --- |