summaryrefslogtreecommitdiff
path: root/src/cpu/o3/iew_impl.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/o3/iew_impl.hh')
-rw-r--r--src/cpu/o3/iew_impl.hh11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/cpu/o3/iew_impl.hh b/src/cpu/o3/iew_impl.hh
index 5bd5f6ae9..5d18789c3 100644
--- a/src/cpu/o3/iew_impl.hh
+++ b/src/cpu/o3/iew_impl.hh
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2012 ARM Limited
+ * Copyright (c) 2010-2013 ARM Limited
* All rights reserved.
*
* The license below extends only to copyright in the software and shall
@@ -376,6 +376,14 @@ DefaultIEW<Impl>::isDrained() const
}
}
+ // Also check the FU pool as instructions are "stored" in FU
+ // completion events until they are done and not accounted for
+ // above
+ if (drained && !fuPool->isDrained()) {
+ DPRINTF(Drain, "FU pool still busy.\n");
+ drained = false;
+ }
+
return drained;
}
@@ -387,7 +395,6 @@ DefaultIEW<Impl>::drainSanityCheck() const
instQueue.drainSanityCheck();
ldstQueue.drainSanityCheck();
- fuPool->drainSanityCheck();
}
template <class Impl>