summaryrefslogtreecommitdiff
path: root/src/cpu/o3/commit.hh
diff options
context:
space:
mode:
authorMin Kyu Jeong <minkyu.jeong@arm.com>2011-01-18 16:30:01 -0600
committerMin Kyu Jeong <minkyu.jeong@arm.com>2011-01-18 16:30:01 -0600
commit96375409ea7a5593ddd7f4f723db349921f35142 (patch)
tree38668fb81cc4d07cb037221dcb2d576d327c1309 /src/cpu/o3/commit.hh
parent965a01d913f71570150c839ffc7376084d0fed88 (diff)
downloadgem5-96375409ea7a5593ddd7f4f723db349921f35142.tar.xz
O3: Fixes fetch deadlock when the interrupt clears before CPU handles it.
When this condition occurs the cpu should restart the fetch stage to fetch from the original execution path. Fault handling in the commit stage is cleaned up a little bit so the control flow is simplier. Finally, if an instruction is being used to carry a fault it isn't executed, so the fault propagates appropriately.
Diffstat (limited to 'src/cpu/o3/commit.hh')
-rw-r--r--src/cpu/o3/commit.hh3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cpu/o3/commit.hh b/src/cpu/o3/commit.hh
index a38d6a96f..7183889c6 100644
--- a/src/cpu/o3/commit.hh
+++ b/src/cpu/o3/commit.hh
@@ -255,6 +255,9 @@ class DefaultCommit
#if FULL_SYSTEM
/** Handles processing an interrupt. */
void handleInterrupt();
+
+ /** Get fetch redirecting so we can handle an interrupt */
+ void propagateInterrupt();
#endif // FULL_SYSTEM
/** Commits as many instructions as possible. */