summaryrefslogtreecommitdiff
path: root/src/cpu/o3/fetch_impl.hh
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2009-09-26 10:50:50 -0700
committerSteve Reinhardt <steve.reinhardt@amd.com>2009-09-26 10:50:50 -0700
commitf28ea7a6c9ea9506524adff0f468d6dd789c510c (patch)
treef28fd82d1034ef74108de989c1a56b43e0716290 /src/cpu/o3/fetch_impl.hh
parent25d1f2728ad848272d572bb5829f8df35594f783 (diff)
downloadgem5-f28ea7a6c9ea9506524adff0f468d6dd789c510c.tar.xz
O3: Mark fetch stage as active if it faults.
Otherwise if the rest of the pipeline is idle then fault will never propagate to commit to be handled, causing CPU to deadlock.
Diffstat (limited to 'src/cpu/o3/fetch_impl.hh')
-rw-r--r--src/cpu/o3/fetch_impl.hh2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cpu/o3/fetch_impl.hh b/src/cpu/o3/fetch_impl.hh
index 5c6e287dc..e6815ef8a 100644
--- a/src/cpu/o3/fetch_impl.hh
+++ b/src/cpu/o3/fetch_impl.hh
@@ -1264,6 +1264,8 @@ DefaultFetch<Impl>::fetch(bool &status_change)
toDecode->insts[numInst] = instruction;
toDecode->size++;
+ wroteToTimeBuffer = true;
+
DPRINTF(Fetch, "[tid:%i]: Blocked, need to handle the trap.\n",tid);
fetchStatus[tid] = TrapPending;