summaryrefslogtreecommitdiff
path: root/src/arch/x86
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2013-01-12 22:09:48 -0600
committerNilay Vaish <nilay@cs.wisc.edu>2013-01-12 22:09:48 -0600
commit25ec278a0be5e3e09d396ef5be993e45b766790b (patch)
tree1e053058f01fd0414c87b989f12c497fe6024f0a /src/arch/x86
parentfe3fbe624e9524ba5fdc55586e40eaa700c81c78 (diff)
downloadgem5-25ec278a0be5e3e09d396ef5be993e45b766790b.tar.xz
x86: Changes to decoder, corrects 9376
The changes made by the changeset 9376 were not quite correct. The patch made changes to the code which resulted in decoder not getting initialized correctly when the state was restored from a checkpoint. This patch adds a startup function to each ISA object. For x86, this function sets the required state in the decoder. For other ISAs, the function is empty right now.
Diffstat (limited to 'src/arch/x86')
-rw-r--r--src/arch/x86/isa.cc6
-rw-r--r--src/arch/x86/isa.hh1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/arch/x86/isa.cc b/src/arch/x86/isa.cc
index 381dc5999..f65bc2392 100644
--- a/src/arch/x86/isa.cc
+++ b/src/arch/x86/isa.cc
@@ -387,6 +387,12 @@ ISA::unserialize(Checkpoint * cp, const std::string & section)
NULL);
}
+void
+ISA::startup(ThreadContext *tc)
+{
+ tc->getDecoderPtr()->setM5Reg(regVal[MISCREG_M5_REG]);
+}
+
}
X86ISA::ISA *
diff --git a/src/arch/x86/isa.hh b/src/arch/x86/isa.hh
index 7c5330ca3..e87d747bc 100644
--- a/src/arch/x86/isa.hh
+++ b/src/arch/x86/isa.hh
@@ -87,6 +87,7 @@ namespace X86ISA
void serialize(std::ostream &os);
void unserialize(Checkpoint *cp, const std::string &section);
+ void startup(ThreadContext *tc);
};
}