summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2007-10-25 20:13:35 -0400
committerAli Saidi <saidi@eecs.umich.edu>2007-10-25 20:13:35 -0400
commit0711f4f17a4b4ac61b07cbe742f0d193f919ea8f (patch)
tree6fdd5b340696c7506dc85f4eb8cb39421da3ccaa /src/arch
parentb0e3aab5df9328ddfd13e396456cebdcaf0c8912 (diff)
downloadgem5-0711f4f17a4b4ac61b07cbe742f0d193f919ea8f.tar.xz
SE: Fix page table and system serialization, don't reinit process if this is a checkpoint restore.
--HG-- extra : convert_revision : 03dcf3c088e57b7abab60efe700d947117888306
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/alpha/process.cc3
-rw-r--r--src/arch/mips/process.cc3
-rw-r--r--src/arch/sparc/process.cc3
-rw-r--r--src/arch/x86/process.cc3
4 files changed, 12 insertions, 0 deletions
diff --git a/src/arch/alpha/process.cc b/src/arch/alpha/process.cc
index ef53021c5..c2d23ecdd 100644
--- a/src/arch/alpha/process.cc
+++ b/src/arch/alpha/process.cc
@@ -63,6 +63,9 @@ AlphaLiveProcess::AlphaLiveProcess(LiveProcessParams * params,
void
AlphaLiveProcess::startup()
{
+ if (checkpointRestored)
+ return;
+
argsInit(MachineBytes, VMPageSize);
threadContexts[0]->setIntReg(GlobalPointerReg, objFile->globalPointer());
diff --git a/src/arch/mips/process.cc b/src/arch/mips/process.cc
index 3ce6b19fa..d330b1913 100644
--- a/src/arch/mips/process.cc
+++ b/src/arch/mips/process.cc
@@ -63,5 +63,8 @@ MipsLiveProcess::MipsLiveProcess(LiveProcessParams * params,
void
MipsLiveProcess::startup()
{
+ if (checkpointRestored)
+ return;
+
argsInit(MachineBytes, VMPageSize);
}
diff --git a/src/arch/sparc/process.cc b/src/arch/sparc/process.cc
index e0d204a2d..ffe430ac7 100644
--- a/src/arch/sparc/process.cc
+++ b/src/arch/sparc/process.cc
@@ -110,6 +110,9 @@ void SparcLiveProcess::handleTrap(int trapNum, ThreadContext *tc)
void
Sparc32LiveProcess::startup()
{
+ if (checkpointRestored)
+ return;
+
argsInit(32 / 8, VMPageSize);
//From the SPARC ABI
diff --git a/src/arch/x86/process.cc b/src/arch/x86/process.cc
index db32437d5..c91bcc12f 100644
--- a/src/arch/x86/process.cc
+++ b/src/arch/x86/process.cc
@@ -141,6 +141,9 @@ void X86LiveProcess::handleTrap(int trapNum, ThreadContext *tc)
void
X86LiveProcess::startup()
{
+ if (checkpointRestored)
+ return;
+
argsInit(sizeof(IntReg), VMPageSize);
for (int i = 0; i < threadContexts.size(); i++) {