Lines Matching refs:tlb

31 #include "arch/sparc/tlb.hh"
63 tlb = new TlbEntry[size];
64 std::memset((void *)tlb, 0, sizeof(TlbEntry) * size);
67 freeList.push_back(&tlb[x]);
120 if (tlb[x].range.real == real &&
121 tlb[x].range.partitionId == partition_id &&
122 tlb[x].range.va < va + PTE.size() - 1 &&
123 tlb[x].range.va + tlb[x].range.size >= va &&
124 (real || tlb[x].range.contextId == context_id ))
126 if (tlb[x].valid) {
127 freeList.push_front(&tlb[x]);
130 tlb[x].valid = false;
131 if (tlb[x].used) {
132 tlb[x].used = false;
135 lookupTable.erase(tlb[x].range);
142 new_entry = &tlb[entry];
154 } while (tlb[x].pte.locked());
156 new_entry = &tlb[x];
163 new_entry = &tlb[size-1];
246 if (tlb[x].valid) {
248 x, tlb[x].range.partitionId, tlb[x].range.contextId,
249 tlb[x].range.real ? 'R' : ' ', tlb[x].range.size,
250 tlb[x].range.va, tlb[x].pte.paddr(), tlb[x].pte());
294 if (tlb[x].range.contextId == context_id &&
295 tlb[x].range.partitionId == partition_id) {
296 if (tlb[x].valid) {
297 freeList.push_front(&tlb[x]);
299 tlb[x].valid = false;
300 if (tlb[x].used) {
301 tlb[x].used = false;
304 lookupTable.erase(tlb[x].range);
315 if (tlb[x].valid && !tlb[x].pte.locked() &&
316 tlb[x].range.partitionId == partition_id) {
317 freeList.push_front(&tlb[x]);
318 tlb[x].valid = false;
319 if (tlb[x].used) {
320 tlb[x].used = false;
323 lookupTable.erase(tlb[x].range);
335 if (tlb[x].valid)
336 freeList.push_back(&tlb[x]);
337 tlb[x].valid = false;
338 tlb[x].used = false;
350 if (tlb[entry].valid)
351 return tlb[entry].pte();
361 if (!tlb[entry].valid)
364 tag = tlb[entry].range.contextId;
365 tag |= tlb[entry].range.va;
366 tag |= (uint64_t)tlb[entry].range.partitionId << 61;
367 tag |= tlb[entry].range.real ? ULL(1) << 60 : 0;
368 tag |= (uint64_t)~tlb[entry].pte._size() << 56;
552 panic("Lookup table size: %d tlb size: %d\n", lookupTable.size(),
1363 free_list.push_back(entry - tlb);
1379 tlb[x].serialize(cp);
1398 freeList.push_back(&tlb[idx]);
1412 tlb[x].unserialize(cp);
1413 if (tlb[x].valid)
1414 lookupTable.insert(tlb[x].range, &tlb[x]);