diff -r 559ef3da5dac -r 0cf3a0b4e361 src/arch/x86/utility.cc --- a/src/arch/x86/utility.cc Fri Jul 01 16:29:33 2011 -0500 +++ b/src/arch/x86/utility.cc Fri Jul 01 16:59:39 2011 -0500 @@ -42,9 +42,8 @@ #if FULL_SYSTEM #include "arch/x86/interrupts.hh" #endif -#include "arch/x86/regs/int.hh" -#include "arch/x86/regs/misc.hh" #include "arch/x86/regs/segment.hh" +#include "arch/x86/registers.hh" #include "arch/x86/utility.hh" #include "arch/x86/x86_traits.hh" #include "cpu/base.hh" @@ -228,11 +227,13 @@ void copyRegs(ThreadContext *src, ThreadContext *dest) { - panic("copyRegs not implemented for x86!\n"); //copy int regs + for (int i = 0; i < NumIntRegs; ++i) + dest->setIntReg(i, src->readIntReg(i)); //copy float regs + for (int i = 0; i < NumFloatRegs; ++i) + dest->setFloatRegBits(i, src->readFloatRegBits(i)); copyMiscRegs(src, dest); - dest->pcState(src->pcState()); }