summaryrefslogtreecommitdiff
path: root/src/cpu/o3/rob.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/o3/rob.hh')
-rw-r--r--src/cpu/o3/rob.hh23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/cpu/o3/rob.hh b/src/cpu/o3/rob.hh
index d0b156954..171781ce2 100644
--- a/src/cpu/o3/rob.hh
+++ b/src/cpu/o3/rob.hh
@@ -1,4 +1,16 @@
/*
+ * Copyright (c) 2012 ARM Limited
+ * All rights reserved
+ *
+ * The license below extends only to copyright in the software and shall
+ * not be construed as granting a license to any other intellectual
+ * property including but not limited to intellectual property relating
+ * to a hardware implementation of the functionality of the software
+ * licensed hereunder. You may use the software subject to the license
+ * terms below provided that you ensure that this notice is replicated
+ * unmodified and in its entirety in all distributions of the software,
+ * modified or unmodified, in source code or in binary form.
+ *
* Copyright (c) 2004-2006 The Regents of The University of Michigan
* All rights reserved.
*
@@ -97,8 +109,8 @@ class ROB
*/
void setActiveThreads(std::list<ThreadID> *at_ptr);
- /** Switches out the ROB. */
- void switchOut();
+ /** Perform sanity checks after a drain. */
+ void drainSanityCheck() const;
/** Takes over another CPU's thread. */
void takeOverFrom();
@@ -185,11 +197,11 @@ class ROB
{ return threadEntries[tid] == numEntries; }
/** Returns if the ROB is empty. */
- bool isEmpty()
+ bool isEmpty() const
{ return numInstsInROB == 0; }
/** Returns if a specific thread's partition is empty. */
- bool isEmpty(ThreadID tid)
+ bool isEmpty(ThreadID tid) const
{ return threadEntries[tid] == 0; }
/** Executes the squash, marking squashed instructions. */
@@ -264,6 +276,9 @@ class ROB
void regStats();
private:
+ /** Reset the ROB state */
+ void resetState();
+
/** Pointer to the CPU. */
O3CPU *cpu;