tlb.cc (7087:fb8d5786ff30) | tlb.cc (7625:b1e69203bae9) |
---|---|
1/* 2 * Copyright (c) 2007-2008 The Hewlett-Packard Development Company 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 --- 605 unchanged lines hidden (view full) --- 614 Process *p = tc->getProcessPtr(); 615 TlbEntry newEntry; 616 bool success = p->pTable->lookup(vaddr, newEntry); 617 if (!success && mode != Execute) { 618 p->checkAndAllocNextPage(vaddr); 619 success = p->pTable->lookup(vaddr, newEntry); 620 } 621 if (!success) { | 1/* 2 * Copyright (c) 2007-2008 The Hewlett-Packard Development Company 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 --- 605 unchanged lines hidden (view full) --- 614 Process *p = tc->getProcessPtr(); 615 TlbEntry newEntry; 616 bool success = p->pTable->lookup(vaddr, newEntry); 617 if (!success && mode != Execute) { 618 p->checkAndAllocNextPage(vaddr); 619 success = p->pTable->lookup(vaddr, newEntry); 620 } 621 if (!success) { |
622 if (req->isPrefetch()) { 623 return new PageFault(vaddr, true, mode, true, false); 624 } else { 625 const char *modeStr = ""; 626 if (mode == Execute) 627 modeStr = "execute"; 628 else if (mode == Read) 629 modeStr = "read"; 630 else if (mode == Write) 631 modeStr = "write"; 632 else 633 modeStr = "?"; 634 panic("Tried to %s unmapped address %#x.\n", 635 modeStr, vaddr); 636 } | 622 return new PageFault(vaddr, true, mode, true, false); |
637 } else { 638 Addr alignedVaddr = p->pTable->pageAlign(vaddr); 639 DPRINTF(TLB, "Mapping %#x to %#x\n", alignedVaddr, 640 newEntry.pageStart()); 641 entry = insert(alignedVaddr, newEntry); 642 } 643 DPRINTF(TLB, "Miss was serviced.\n"); 644#endif --- 112 unchanged lines hidden --- | 623 } else { 624 Addr alignedVaddr = p->pTable->pageAlign(vaddr); 625 DPRINTF(TLB, "Mapping %#x to %#x\n", alignedVaddr, 626 newEntry.pageStart()); 627 entry = insert(alignedVaddr, newEntry); 628 } 629 DPRINTF(TLB, "Miss was serviced.\n"); 630#endif --- 112 unchanged lines hidden --- |