summaryrefslogtreecommitdiff
path: root/src/mem/cache/mshr_queue.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/cache/mshr_queue.cc')
-rw-r--r--src/mem/cache/mshr_queue.cc13
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);