summaryrefslogtreecommitdiff
path: root/src/arch/sparc/tlb.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-11-30 16:49:27 -0800
committerGabe Black <gblack@eecs.umich.edu>2007-11-30 16:49:27 -0800
commit7433032b39828ccff9ad5ed0e3ed95f752fc269a (patch)
treecfdfcada321f23a8a72472625cb755cea9dd57d2 /src/arch/sparc/tlb.cc
parent38e804f7cd9a3f6a1caf6e75a2184f9fb7eed3c8 (diff)
downloadgem5-7433032b39828ccff9ad5ed0e3ed95f752fc269a.tar.xz
SPARC: Fixes for invalidateAll and demapAll in the SPARC TLBs.
--HG-- extra : convert_revision : 8de6c60b0e3e725eac11047a9d9888097dd359ff
Diffstat (limited to 'src/arch/sparc/tlb.cc')
-rw-r--r--src/arch/sparc/tlb.cc8
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)