summaryrefslogtreecommitdiff
path: root/src/cpu/o3
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/o3')
-rw-r--r--src/cpu/o3/iew.hh7
-rw-r--r--src/cpu/o3/iew_impl.hh8
2 files changed, 1 insertions, 14 deletions
diff --git a/src/cpu/o3/iew.hh b/src/cpu/o3/iew.hh
index eef5a15d2..457e2a024 100644
--- a/src/cpu/o3/iew.hh
+++ b/src/cpu/o3/iew.hh
@@ -402,13 +402,6 @@ class DefaultIEW
/** Records if there is a fetch redirect on this cycle for each thread. */
bool fetchRedirect[Impl::MaxThreads];
- /** Used to track if all instructions have been dispatched this cycle.
- * If they have not, then blocking must have occurred, and the instructions
- * would already be added to the skid buffer.
- * @todo: Fix this hack.
- */
- bool dispatchedAllInsts;
-
/** Records if the queues have been changed (inserted or issued insts),
* so that IEW knows to broadcast the updated amount of free entries.
*/
diff --git a/src/cpu/o3/iew_impl.hh b/src/cpu/o3/iew_impl.hh
index 399c44909..84d10e966 100644
--- a/src/cpu/o3/iew_impl.hh
+++ b/src/cpu/o3/iew_impl.hh
@@ -929,7 +929,7 @@ DefaultIEW<Impl>::dispatch(unsigned tid)
++iewUnblockCycles;
- if (validInstsFromRename() && dispatchedAllInsts) {
+ if (validInstsFromRename()) {
// Add the current inputs to the skid buffer so they can be
// reprocessed when this stage unblocks.
skidInsert(tid);
@@ -943,8 +943,6 @@ template <class Impl>
void
DefaultIEW<Impl>::dispatchInsts(unsigned tid)
{
- dispatchedAllInsts = true;
-
// Obtain instructions from skid buffer if unblocking, or queue from rename
// otherwise.
std::queue<DynInstPtr> &insts_to_dispatch =
@@ -1011,8 +1009,6 @@ DefaultIEW<Impl>::dispatchInsts(unsigned tid)
// get full in the IQ.
toRename->iewUnblock[tid] = false;
- dispatchedAllInsts = false;
-
++iewIQFullEvents;
break;
} else if (ldstQueue.isFull(tid)) {
@@ -1026,8 +1022,6 @@ DefaultIEW<Impl>::dispatchInsts(unsigned tid)
// get full in the IQ.
toRename->iewUnblock[tid] = false;
- dispatchedAllInsts = false;
-
++iewLSQFullEvents;
break;
}