tlb.cc (7944:1daf51f62013) | tlb.cc (8067:21f14583aa6a) |
---|---|
1/* 2 * Copyright (c) 2010 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 515 unchanged lines hidden (view full) --- 524 readMisses++; 525 526 // start translation table walk, pass variables rather than 527 // re-retreaving in table walker for speed 528 DPRINTF(TLB, "TLB Miss: Starting hardware table walker for %#x(%d)\n", 529 vaddr, contextId); 530 fault = tableWalker->walk(req, tc, contextId, mode, translation, 531 timing); | 1/* 2 * Copyright (c) 2010 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 515 unchanged lines hidden (view full) --- 524 readMisses++; 525 526 // start translation table walk, pass variables rather than 527 // re-retreaving in table walker for speed 528 DPRINTF(TLB, "TLB Miss: Starting hardware table walker for %#x(%d)\n", 529 vaddr, contextId); 530 fault = tableWalker->walk(req, tc, contextId, mode, translation, 531 timing); |
532 if (timing) { | 532 if (timing && fault == NoFault) { |
533 delay = true; 534 // for timing mode, return and wait for table walk 535 return fault; 536 } 537 if (fault) 538 return fault; 539 540 te = lookup(vaddr, contextId); --- 148 unchanged lines hidden (view full) --- 689 assert(translation); 690 bool delay = false; 691 Fault fault; 692#if FULL_SYSTEM 693 fault = translateFs(req, tc, mode, translation, delay, true); 694#else 695 fault = translateSe(req, tc, mode, translation, delay, true); 696#endif | 533 delay = true; 534 // for timing mode, return and wait for table walk 535 return fault; 536 } 537 if (fault) 538 return fault; 539 540 te = lookup(vaddr, contextId); --- 148 unchanged lines hidden (view full) --- 689 assert(translation); 690 bool delay = false; 691 Fault fault; 692#if FULL_SYSTEM 693 fault = translateFs(req, tc, mode, translation, delay, true); 694#else 695 fault = translateSe(req, tc, mode, translation, delay, true); 696#endif |
697 DPRINTF(TLB, "Translation returning delay=%d fault=%d\n", delay, fault != 698 NoFault); |
|
697 if (!delay) 698 translation->finish(fault, req, tc, mode); 699 else 700 translation->markDelayed(); 701 return fault; 702} 703 704Port* --- 16 unchanged lines hidden --- | 699 if (!delay) 700 translation->finish(fault, req, tc, mode); 701 else 702 translation->markDelayed(); 703 return fault; 704} 705 706Port* --- 16 unchanged lines hidden --- |