diff -r 3b50e73628fd -r 53b37a83481d src/arch/x86/faults.hh --- a/src/arch/x86/faults.hh Sun Aug 22 18:32:48 2010 -0700 +++ b/src/arch/x86/faults.hh Sun Aug 22 18:33:25 2010 -0700 @@ -327,9 +327,9 @@ errorCode = code; } -#if FULL_SYSTEM void invoke(ThreadContext * tc); +#if FULL_SYSTEM virtual std::string describe() const; #endif }; diff -r 3b50e73628fd -r 53b37a83481d src/arch/x86/faults.cc --- a/src/arch/x86/faults.cc Sun Aug 22 18:32:48 2010 -0700 +++ b/src/arch/x86/faults.cc Sun Aug 22 18:33:25 2010 -0700 @@ -267,6 +267,22 @@ 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 diff -r 3b50e73628fd -r 53b37a83481d src/arch/x86/tlb.cc --- a/src/arch/x86/tlb.cc Sun Aug 22 18:32:48 2010 -0700 +++ b/src/arch/x86/tlb.cc Sun Aug 22 18:33:25 2010 -0700 @@ -619,21 +619,7 @@ success = p->pTable->lookup(vaddr, newEntry); } if (!success) { - if (req->isPrefetch()) { - return new PageFault(vaddr, true, mode, true, false); - } else { - const char *modeStr = ""; - if (mode == Execute) - modeStr = "execute"; - else if (mode == Read) - modeStr = "read"; - else if (mode == Write) - modeStr = "write"; - else - modeStr = "?"; - panic("Tried to %s unmapped address %#x.\n", - modeStr, vaddr); - } + return new PageFault(vaddr, true, mode, true, false); } else { Addr alignedVaddr = p->pTable->pageAlign(vaddr); DPRINTF(TLB, "Mapping %#x to %#x\n", alignedVaddr,