mshr.hh (12792:9af3470e24e7) mshr.hh (12793:dda6af979353)
1/*
2 * Copyright (c) 2012-2013, 2015-2016, 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

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

281 *
282 * @return true if any of the targets is from another cache
283 */
284 bool hasFromCache() const {
285 return targets.hasFromCache;
286 }
287
288 private:
1/*
2 * Copyright (c) 2012-2013, 2015-2016, 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

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

281 *
282 * @return true if any of the targets is from another cache
283 */
284 bool hasFromCache() const {
285 return targets.hasFromCache;
286 }
287
288 private:
289 /**
290 * Promotes deferred targets that satisfy a predicate
291 *
292 * Deferred targets are promoted to the target list if they
293 * satisfy a given condition. The operation stops at the first
294 * deferred target that doesn't satisfy the condition.
295 *
296 * @param pred A condition on a Target
297 */
298 void promoteIf(const std::function<bool (Target &)>& pred);
289
290 /**
291 * Pointer to this MSHR on the ready list.
292 * @sa MissQueue, MSHRQueue::readyList
293 */
294 Iterator readyIter;
295
296 /**

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

383 targets.pop_front();
384 }
385
386 bool promoteDeferredTargets();
387
388 /**
389 * Promotes deferred targets that do not require writable
390 *
299
300 /**
301 * Pointer to this MSHR on the ready list.
302 * @sa MissQueue, MSHRQueue::readyList
303 */
304 Iterator readyIter;
305
306 /**

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

393 targets.pop_front();
394 }
395
396 bool promoteDeferredTargets();
397
398 /**
399 * Promotes deferred targets that do not require writable
400 *
401 * Move targets from the deferred targets list to the target list
402 * starting from the first deferred target until the first target
403 * that is a cache maintenance operation or needs a writable copy
404 * of the block
405 */
406 void promoteReadable();
407
408 /**
409 * Promotes deferred targets that do not require writable
410 *
391 * Requests in the deferred target list are moved to the target
392 * list up until the first target that is a cache maintenance
393 * operation or needs a writable copy of the block
394 */
395 void promoteWritable();
396
397 bool checkFunctional(PacketPtr pkt);
398

--- 16 unchanged lines hidden ---
411 * Requests in the deferred target list are moved to the target
412 * list up until the first target that is a cache maintenance
413 * operation or needs a writable copy of the block
414 */
415 void promoteWritable();
416
417 bool checkFunctional(PacketPtr pkt);
418

--- 16 unchanged lines hidden ---