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 ---