summaryrefslogtreecommitdiff
path: root/src/cpu/simple/timing.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-02-25 10:18:36 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-02-25 10:18:36 -0800
commitda61c4b3ee4571d43f7133640eeda2cf51e21cd9 (patch)
tree65b568e31d2c4f88f6b1c08b34bfaadd1bad15ac /src/cpu/simple/timing.cc
parentba6918463049c5a60d4375348c99e46d9901d1e8 (diff)
downloadgem5-da61c4b3ee4571d43f7133640eeda2cf51e21cd9.tar.xz
CPU: Don't fetch when executing a macroop.
If the CPL changes mid macroop, the end of the instruction might not be priveleged enough to execute the beginning.
Diffstat (limited to 'src/cpu/simple/timing.cc')
-rw-r--r--src/cpu/simple/timing.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cpu/simple/timing.cc b/src/cpu/simple/timing.cc
index 3f5778138..f398365d3 100644
--- a/src/cpu/simple/timing.cc
+++ b/src/cpu/simple/timing.cc
@@ -667,7 +667,7 @@ TimingSimpleCPU::fetch()
bool fromRom = isRomMicroPC(thread->readMicroPC());
- if (!fromRom) {
+ if (!fromRom && !curMacroStaticInst) {
Request *ifetch_req = new Request();
ifetch_req->setThreadContext(_cpuId, /* thread ID */ 0);
setupFetchRequest(ifetch_req);