tlb.cc (3928:9486450f013f) | tlb.cc (3929:3640569369a5) |
---|---|
1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 156 unchanged lines hidden (view full) --- 165 // Update the last ently if their all locked 166 if (!new_entry) { 167 new_entry = &tlb[size-1]; 168 } 169 170 freeList.remove(new_entry); 171 if (new_entry->valid && new_entry->used) 172 usedEntries--; | 1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 156 unchanged lines hidden (view full) --- 165 // Update the last ently if their all locked 166 if (!new_entry) { 167 new_entry = &tlb[size-1]; 168 } 169 170 freeList.remove(new_entry); 171 if (new_entry->valid && new_entry->used) 172 usedEntries--; |
173 if (new_entry->valid) 174 lookupTable.erase(new_entry->range); |
|
173 | 175 |
174 lookupTable.erase(new_entry->range); | |
175 | 176 |
176 | |
177 DPRINTF(TLB, "Using entry: %#X\n", new_entry); 178 179 assert(PTE.valid()); 180 new_entry->range.va = va; 181 new_entry->range.size = PTE.size() - 1; 182 new_entry->range.partitionId = partition_id; 183 new_entry->range.contextId = context_id; 184 new_entry->range.real = real; --- 392 unchanged lines hidden (view full) --- 577 ASI asi; 578 asi = (ASI)req->getAsi(); 579 bool implicit = false; 580 bool hpriv = bits(tlbdata,0,0); 581 582 DPRINTF(TLB, "TLB: DTB Request to translate va=%#x size=%d asi=%#x\n", 583 vaddr, size, asi); 584 | 177 DPRINTF(TLB, "Using entry: %#X\n", new_entry); 178 179 assert(PTE.valid()); 180 new_entry->range.va = va; 181 new_entry->range.size = PTE.size() - 1; 182 new_entry->range.partitionId = partition_id; 183 new_entry->range.contextId = context_id; 184 new_entry->range.real = real; --- 392 unchanged lines hidden (view full) --- 577 ASI asi; 578 asi = (ASI)req->getAsi(); 579 bool implicit = false; 580 bool hpriv = bits(tlbdata,0,0); 581 582 DPRINTF(TLB, "TLB: DTB Request to translate va=%#x size=%d asi=%#x\n", 583 vaddr, size, asi); 584 |
585 if (lookupTable.size() != 64 - freeList.size()) 586 panic("Lookup table size: %d tlb size: %d\n", lookupTable.size(), 587 freeList.size()); |
|
585 if (asi == ASI_IMPLICIT) 586 implicit = true; 587 588 if (hpriv && implicit) { 589 req->setPaddr(vaddr & PAddrImplMask); 590 return NoFault; 591 } 592 --- 712 unchanged lines hidden --- | 588 if (asi == ASI_IMPLICIT) 589 implicit = true; 590 591 if (hpriv && implicit) { 592 req->setPaddr(vaddr & PAddrImplMask); 593 return NoFault; 594 } 595 --- 712 unchanged lines hidden --- |