summaryrefslogtreecommitdiff
path: root/src/cpu/simple
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2006-10-29 04:04:50 -0500
committerGabe Black <gblack@eecs.umich.edu>2006-10-29 04:04:50 -0500
commit628a3b1d01702d1e3888c40c4a02c38c636ae6d4 (patch)
tree2f62051e7c2bd634931b88e77c27334823daa6b7 /src/cpu/simple
parent349c7aff9b1a4643f8501d4b5cd7eff8753dfac9 (diff)
downloadgem5-628a3b1d01702d1e3888c40c4a02c38c636ae6d4.tar.xz
An attempt to serialize the state of the micro code mechanism in the simple cpu.
src/cpu/simple/base.cc: Make a microcoded op start at the current micropc, rather than starting at 0. src/cpu/thread_state.cc: Serialize the microPC and nextMicroPC --HG-- extra : convert_revision : 5302215f17312ecef3ff4c6548acb05297ee4ff6
Diffstat (limited to 'src/cpu/simple')
-rw-r--r--src/cpu/simple/base.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cpu/simple/base.cc b/src/cpu/simple/base.cc
index cbb3980cb..253d33243 100644
--- a/src/cpu/simple/base.cc
+++ b/src/cpu/simple/base.cc
@@ -401,13 +401,15 @@ BaseSimpleCPU::preExecute()
StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->getTC()));
if (instPtr->isMacroOp()) {
curMacroStaticInst = instPtr;
- curStaticInst = curMacroStaticInst->fetchMicroOp(0);
+ curStaticInst = curMacroStaticInst->
+ fetchMicroOp(thread->readMicroPC());
} else {
curStaticInst = instPtr;
}
} else {
//Read the next micro op from the macro op
- curStaticInst = curMacroStaticInst->fetchMicroOp(thread->readMicroPC());
+ curStaticInst = curMacroStaticInst->
+ fetchMicroOp(thread->readMicroPC());
}