X86: Don't panic on faults on prefetches in SE mode.

This commit is contained in:
Gabe Black 2009-11-08 22:49:58 -08:00
parent 44e912c6bd
commit bbbfdee2ed

View file

@ -637,17 +637,21 @@ TLB::translate(RequestPtr req, ThreadContext *tc, Translation *translation,
success = p->pTable->lookup(vaddr, newEntry);
}
if (!success) {
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);
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);
}
} else {
Addr alignedVaddr = p->pTable->pageAlign(vaddr);
DPRINTF(TLB, "Mapping %#x to %#x\n", alignedVaddr,