diff options
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/alpha/process.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/arch/alpha/process.cc b/src/arch/alpha/process.cc index 9d75d5fa1..1c83f64b2 100644 --- a/src/arch/alpha/process.cc +++ b/src/arch/alpha/process.cc @@ -175,21 +175,22 @@ AlphaLiveProcess::argsInit(int intSize, int pageSize) void AlphaLiveProcess::startup() { - if (checkpointRestored) + ThreadContext *tc = system->getThreadContext(contextIds[0]); + tc->setMiscRegNoEffect(IPR_DTB_ASN, M5_pid << 57); + + if (checkpointRestored) { return; + } Process::startup(); argsInit(MachineBytes, VMPageSize); - ThreadContext *tc = system->getThreadContext(contextIds[0]); tc->setIntReg(GlobalPointerReg, objFile->globalPointer()); //Operate in user mode tc->setMiscRegNoEffect(IPR_ICM, 0x18); //No super page mapping tc->setMiscRegNoEffect(IPR_MCSR, 0); - //Set this to 0 for now, but it should be unique for each process - tc->setMiscRegNoEffect(IPR_DTB_ASN, M5_pid << 57); } AlphaISA::IntReg |