summaryrefslogtreecommitdiff
path: root/src/cpu/o3/commit_impl.hh
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2006-07-06 23:20:44 -0400
committerKevin Lim <ktlim@umich.edu>2006-07-06 23:20:44 -0400
commit55e59e26c1a7acd8715262999451c451fc50b480 (patch)
treea2d314bb791c0be13dc32901a42261a35d55b987 /src/cpu/o3/commit_impl.hh
parent1ccfdb442ff34f9f2b38ee7716b7baee99a397c2 (diff)
parent6872b99c29cd4263062bb8b3ef15aa5a9f2532d4 (diff)
downloadgem5-55e59e26c1a7acd8715262999451c451fc50b480.tar.xz
Merge ktlim@zizzer:/bk/newmem
into zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge --HG-- extra : convert_revision : 942c43e2fdd68cde7aaaba5e88a667f80feab162
Diffstat (limited to 'src/cpu/o3/commit_impl.hh')
-rw-r--r--src/cpu/o3/commit_impl.hh11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/cpu/o3/commit_impl.hh b/src/cpu/o3/commit_impl.hh
index 2eb05afac..39e1cf3fe 100644
--- a/src/cpu/o3/commit_impl.hh
+++ b/src/cpu/o3/commit_impl.hh
@@ -350,10 +350,18 @@ DefaultCommit<Impl>::initStage()
}
template <class Impl>
-void
+bool
DefaultCommit<Impl>::drain()
{
drainPending = true;
+
+ // If it's already drained, return true.
+ if (rob->isEmpty() && !iewStage->hasStoresToWB()) {
+ cpu->signalDrained();
+ return true;
+ }
+
+ return false;
}
template <class Impl>
@@ -369,6 +377,7 @@ template <class Impl>
void
DefaultCommit<Impl>::resume()
{
+ drainPending = false;
}
template <class Impl>