*/
#include "arch/x86/pseudo_inst.hh"
+
#include "arch/x86/system.hh"
+#include "cpu/thread_context.hh"
#include "debug/PseudoInst.hh"
+#include "mem/se_translating_port_proxy.hh"
#include "sim/process.hh"
-#include "sim/system.hh"
using namespace X86ISA;
namespace X86ISA {
-/*
- * This function is executed when the simulation is executing the syscall
- * handler in System Emulation mode.
- */
-void
-m5Syscall(ThreadContext *tc)
-{
- DPRINTF(PseudoInst, "PseudoInst::m5Syscall()\n");
-
- tc->syscall(tc->readIntReg(INTREG_RAX));
- MiscReg rflags = tc->readMiscReg(MISCREG_RFLAGS);
- rflags &= ~(1 << 16);
- tc->setMiscReg(MISCREG_RFLAGS, rflags);
-}
-
/*
* This function is executed when the simulation is executing the pagefault
* handler in System Emulation mode.
Process *p = tc->getProcessPtr();
if (!p->fixupStackFault(tc->readMiscReg(MISCREG_CR2))) {
- SETranslatingPortProxy proxy = tc->getMemProxy();
+ PortProxy &proxy = tc->getVirtProxy();
// at this point we should have 6 values on the interrupt stack
int size = 6;
uint64_t is[size];
// reading the interrupt handler stack
- proxy.readBlob(ISTVirtAddr + PageBytes - size*sizeof(uint64_t),
- (uint8_t *)&is, sizeof(is));
+ proxy.readBlob(ISTVirtAddr + PageBytes - size * sizeof(uint64_t),
+ &is, sizeof(is));
panic("Page fault at addr %#x\n\tInterrupt handler stack:\n"
"\tss: %#x\n"
"\trsp: %#x\n"