diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-11-30 16:49:27 -0800 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-11-30 16:49:27 -0800 |
commit | 7433032b39828ccff9ad5ed0e3ed95f752fc269a (patch) | |
tree | cfdfcada321f23a8a72472625cb755cea9dd57d2 /src/arch | |
parent | 38e804f7cd9a3f6a1caf6e75a2184f9fb7eed3c8 (diff) | |
download | gem5-7433032b39828ccff9ad5ed0e3ed95f752fc269a.tar.xz |
SPARC: Fixes for invalidateAll and demapAll in the SPARC TLBs.
--HG--
extra : convert_revision : 8de6c60b0e3e725eac11047a9d9888097dd359ff
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/sparc/tlb.cc | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/arch/sparc/tlb.cc b/src/arch/sparc/tlb.cc index 52791e12a..c0ad75c6e 100644 --- a/src/arch/sparc/tlb.cc +++ b/src/arch/sparc/tlb.cc @@ -331,10 +331,9 @@ TLB::demapAll(int partition_id) DPRINTF(TLB, "TLB: Demapping All pid=%#d\n", partition_id); cacheValid = false; for (x = 0; x < size; x++) { - if (!tlb[x].pte.locked() && tlb[x].range.partitionId == partition_id) { - if (tlb[x].valid == true){ - freeList.push_front(&tlb[x]); - } + if (tlb[x].valid && !tlb[x].pte.locked() && + tlb[x].range.partitionId == partition_id) { + freeList.push_front(&tlb[x]); tlb[x].valid = false; if (tlb[x].used) { tlb[x].used = false; @@ -351,7 +350,6 @@ TLB::invalidateAll() int x; cacheValid = false; - freeList.clear(); lookupTable.clear(); for (x = 0; x < size; x++) { if (tlb[x].valid == true) |