tlb.cc (6737:b3ab661715ac) | tlb.cc (6738:44010fc924d4) |
---|---|
1/* 2 * Copyright (c) 2007-2008 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 623 unchanged lines hidden (view full) --- 632 Process *p = tc->getProcessPtr(); 633 TlbEntry newEntry; 634 bool success = p->pTable->lookup(vaddr, newEntry); 635 if (!success && mode != Execute) { 636 p->checkAndAllocNextPage(vaddr); 637 success = p->pTable->lookup(vaddr, newEntry); 638 } 639 if (!success) { | 1/* 2 * Copyright (c) 2007-2008 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 623 unchanged lines hidden (view full) --- 632 Process *p = tc->getProcessPtr(); 633 TlbEntry newEntry; 634 bool success = p->pTable->lookup(vaddr, newEntry); 635 if (!success && mode != Execute) { 636 p->checkAndAllocNextPage(vaddr); 637 success = p->pTable->lookup(vaddr, newEntry); 638 } 639 if (!success) { |
640 const char *modeStr = ""; 641 if (mode == Execute) 642 modeStr = "execute"; 643 else if (mode == Read) 644 modeStr = "read"; 645 else if (mode == Write) 646 modeStr = "write"; 647 else 648 modeStr = "?"; 649 panic("Tried to %s unmapped address %#x.\n", 650 modeStr, vaddr); | 640 if (req->isPrefetch()) { 641 return new PageFault(vaddr, true, mode, true, false); 642 } else { 643 const char *modeStr = ""; 644 if (mode == Execute) 645 modeStr = "execute"; 646 else if (mode == Read) 647 modeStr = "read"; 648 else if (mode == Write) 649 modeStr = "write"; 650 else 651 modeStr = "?"; 652 panic("Tried to %s unmapped address %#x.\n", 653 modeStr, vaddr); 654 } |
651 } else { 652 Addr alignedVaddr = p->pTable->pageAlign(vaddr); 653 DPRINTF(TLB, "Mapping %#x to %#x\n", alignedVaddr, 654 newEntry.pageStart()); 655 entry = insert(alignedVaddr, newEntry); 656 } 657 DPRINTF(TLB, "Miss was serviced.\n"); 658#endif --- 112 unchanged lines hidden --- | 655 } else { 656 Addr alignedVaddr = p->pTable->pageAlign(vaddr); 657 DPRINTF(TLB, "Mapping %#x to %#x\n", alignedVaddr, 658 newEntry.pageStart()); 659 entry = insert(alignedVaddr, newEntry); 660 } 661 DPRINTF(TLB, "Miss was serviced.\n"); 662#endif --- 112 unchanged lines hidden --- |