summaryrefslogtreecommitdiff
path: root/src/arch/x86/tlb.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2008-02-26 23:39:22 -0500
committerGabe Black <gblack@eecs.umich.edu>2008-02-26 23:39:22 -0500
commit98d2ca403e859f289e6d637a2179e62728370d5f (patch)
tree58568c14f16d6cdfff6dbdd728c637314f895e9b /src/arch/x86/tlb.cc
parent8b4796a367ec21d294f7318343e5bb9d7e07a53e (diff)
downloadgem5-98d2ca403e859f289e6d637a2179e62728370d5f.tar.xz
X86: Implement the INVLPG instruction and the TIA microop.
--HG-- extra : convert_revision : 31db1ee082f6c3ca5443cba1eb335e408661ead2
Diffstat (limited to 'src/arch/x86/tlb.cc')
-rw-r--r--src/arch/x86/tlb.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/arch/x86/tlb.cc b/src/arch/x86/tlb.cc
index 208dec177..ae8fcf9be 100644
--- a/src/arch/x86/tlb.cc
+++ b/src/arch/x86/tlb.cc
@@ -171,6 +171,11 @@ TLB::invalidateNonGlobal()
void
TLB::demapPage(Addr va, uint64_t asn)
{
+ EntryList::iterator entry = lookupIt(va, false);
+ if (entry != entryList.end()) {
+ freeList.push_back(*entry);
+ entryList.erase(entry);
+ }
}
template<class TlbFault>