summaryrefslogtreecommitdiff
path: root/src/cpu/o3/decode.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/o3/decode.hh')
-rw-r--r--src/cpu/o3/decode.hh31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/cpu/o3/decode.hh b/src/cpu/o3/decode.hh
index 817c5263f..3424b1d07 100644
--- a/src/cpu/o3/decode.hh
+++ b/src/cpu/o3/decode.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.
*
@@ -89,6 +101,9 @@ class DefaultDecode
/** DefaultDecode constructor. */
DefaultDecode(O3CPU *_cpu, DerivO3CPUParams *params);
+ void startupStage();
+ void resetStage();
+
/** Returns the name of decode. */
std::string name() const;
@@ -107,17 +122,14 @@ class DefaultDecode
/** Sets pointer to list of active threads. */
void setActiveThreads(std::list<ThreadID> *at_ptr);
- /** Drains the decode stage. */
- bool drain();
+ /** Perform sanity checks after a drain. */
+ void drainSanityCheck() const;
- /** Resumes execution after a drain. */
- void resume() { }
-
- /** Switches out the decode stage. */
- void switchOut() { }
+ /** Has the stage drained? */
+ bool isDrained() const { return true; }
/** Takes over from another CPU's thread. */
- void takeOverFrom();
+ void takeOverFrom() { resetStage(); }
/** Ticks decode, processing all input signals and decoding as many
* instructions as possible.
@@ -268,9 +280,6 @@ class DefaultDecode
/** List of active thread ids */
std::list<ThreadID> *activeThreads;
- /** Number of branches in flight. */
- unsigned branchCount[Impl::MaxThreads];
-
/** Maximum size of the skid buffer. */
unsigned skidBufferMax;