}
void
-TLB::invalidateAll()
+TLB::flushAll()
{
cacheValid = false;
lookupTable.clear();
uint64_t TagRead(int entry);
/** Remove all entries from the TLB */
- void invalidateAll();
+ void flushAll();
/** Remove all non-locked entries from the tlb that match partition id. */
void demapAll(int partition_id);
}
}
if (toggled.pg) {
- tc->getITBPtr()->invalidateAll();
- tc->getDTBPtr()->invalidateAll();
+ tc->getITBPtr()->flushAll();
+ tc->getDTBPtr()->flushAll();
}
//This must always be 1.
newCR0.et = 1;
case MISCREG_CR2:
break;
case MISCREG_CR3:
- tc->getITBPtr()->invalidateNonGlobal();
- tc->getDTBPtr()->invalidateNonGlobal();
+ tc->getITBPtr()->flushNonGlobal();
+ tc->getDTBPtr()->flushNonGlobal();
break;
case MISCREG_CR4:
{
CR4 toggled = regVal[miscReg] ^ val;
if (toggled.pae || toggled.pse || toggled.pge) {
- tc->getITBPtr()->invalidateAll();
- tc->getDTBPtr()->invalidateAll();
+ tc->getITBPtr()->flushAll();
+ tc->getDTBPtr()->flushAll();
}
}
break;
}
void
-TLB::invalidateAll()
+TLB::flushAll()
{
DPRINTF(TLB, "Invalidating all entries.\n");
for (unsigned i = 0; i < size; i++) {
}
void
-TLB::invalidateNonGlobal()
+TLB::flushNonGlobal()
{
DPRINTF(TLB, "Invalidating all non global entries.\n");
for (unsigned i = 0; i < size; i++) {
typedef X86TLBParams Params;
TLB(const Params *p);
- void dumpAll();
-
TlbEntry *lookup(Addr va, bool update_lru = true);
void setConfigAddress(uint32_t addr);
public:
Walker *getWalker();
- void invalidateAll();
+ void flushAll();
- void invalidateNonGlobal();
+ void flushNonGlobal();
void demapPage(Addr va, uint64_t asn);
dest->setMiscRegNoEffect(i, src->readMiscRegNoEffect(i));
}
- dest->getITBPtr()->invalidateAll();
- dest->getDTBPtr()->invalidateAll();
+ dest->getITBPtr()->flushAll();
+ dest->getDTBPtr()->flushAll();
}
void
public:
virtual void demapPage(Addr vaddr, uint64_t asn) = 0;
+ /**
+ * Remove all entries from the TLB
+ */
+ virtual void flushAll() = 0;
+
/**
* Get the table walker master port if present. This is used for
* migrating port connections during a CPU takeOverFrom()
*/
virtual BaseMasterPort* getMasterPort() { return NULL; }
+ void memInvalidate() { flushAll(); }
+
class Translation
{
public: