From f6182f948bdc05f3d0949627378ac5d15eea8e58 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Mon, 23 Aug 2010 09:44:19 -0700 Subject: X86: Make the TLB fault instead of panic when something is unmapped in SE mode. The fault object, if invoked, would then panic. This is a bit less direct, but it means speculative execution won't panic the simulator. --- src/arch/x86/faults.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/arch/x86/faults.cc') diff --git a/src/arch/x86/faults.cc b/src/arch/x86/faults.cc index 20b5a931e..836a78567 100644 --- a/src/arch/x86/faults.cc +++ b/src/arch/x86/faults.cc @@ -267,6 +267,22 @@ namespace X86ISA tc->setNextPC(tc->readPC() + sizeof(MachInst)); } +#else + + void + PageFault::invoke(ThreadContext * tc) + { + PageFaultErrorCode code = errorCode; + const char *modeStr = ""; + if (code.fetch) + modeStr = "execute"; + else if (code.write) + modeStr = "write"; + else + modeStr = "read"; + panic("Tried to %s unmapped address %#x.\n", modeStr, addr); + } + #endif } // namespace X86ISA -- cgit v1.2.3