diff options
Diffstat (limited to 'src/mem/cache/mshr_queue.cc')
-rw-r--r-- | src/mem/cache/mshr_queue.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/mem/cache/mshr_queue.cc b/src/mem/cache/mshr_queue.cc index e44a21954..f4b80540c 100644 --- a/src/mem/cache/mshr_queue.cc +++ b/src/mem/cache/mshr_queue.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2013, 2015-2016 ARM Limited + * Copyright (c) 2012-2013, 2015-2016, 2018 ARM Limited * All rights reserved. * * The license below extends only to copyright in the software and shall @@ -85,6 +85,17 @@ MSHRQueue::moveToFront(MSHR *mshr) } void +MSHRQueue::delay(MSHR *mshr, Tick delay_ticks) +{ + mshr->delay(delay_ticks); + auto it = std::find_if(mshr->readyIter, readyList.end(), + [mshr] (const MSHR* _mshr) { + return mshr->readyTime >= _mshr->readyTime; + }); + readyList.splice(it, readyList, mshr->readyIter); +} + +void MSHRQueue::markInService(MSHR *mshr, bool pending_modified_resp) { mshr->markInService(pending_modified_resp); |