summaryrefslogtreecommitdiff
path: root/src/arch/x86/tlb.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2008-03-01 00:05:12 -0500
committerGabe Black <gblack@eecs.umich.edu>2008-03-01 00:05:12 -0500
commit66aaabf4ae05508ea8fa223c84b7a78aa754c7f9 (patch)
tree9b56ef3e9852df43e407a808f08613c9edc9a11a /src/arch/x86/tlb.cc
parent65332ef3a9df48f7ff11b417b0ffc4a171824931 (diff)
downloadgem5-66aaabf4ae05508ea8fa223c84b7a78aa754c7f9.tar.xz
X86: Don't map the local APIC into the physical address space in SE mode.
--HG-- extra : convert_revision : b7103974b12130bbf43583c4cb5294b808add208
Diffstat (limited to 'src/arch/x86/tlb.cc')
-rw-r--r--src/arch/x86/tlb.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/arch/x86/tlb.cc b/src/arch/x86/tlb.cc
index a87abf212..3e720c9ae 100644
--- a/src/arch/x86/tlb.cc
+++ b/src/arch/x86/tlb.cc
@@ -592,6 +592,7 @@ TLB::translate(RequestPtr &req, ThreadContext *tc, bool write, bool execute)
req->setPaddr(vaddr);
}
// Check for an access to the local APIC
+#if FULL_SYSTEM
LocalApicBase localApicBase = tc->readMiscRegNoEffect(MISCREG_APIC_BASE);
Addr baseAddr = localApicBase.base << 12;
Addr paddr = req->getPaddr();
@@ -733,6 +734,7 @@ TLB::translate(RequestPtr &req, ThreadContext *tc, bool write, bool execute)
}
req->setPaddr(regNum * sizeof(MiscReg));
}
+#endif
return NoFault;
};