pagetable_walker.cc (5904:5c61233cbd53) | pagetable_walker.cc (6022:410194bb3049) |
---|---|
1/* 2 * Copyright (c) 2007 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 * --- 84 unchanged lines hidden (view full) --- 93 if (size == 8) 94 pte = read->get<uint64_t>(); 95 else 96 pte = read->get<uint32_t>(); 97 VAddr vaddr = entry.vaddr; 98 bool uncacheable = pte.pcd; 99 Addr nextRead = 0; 100 bool doWrite = false; | 1/* 2 * Copyright (c) 2007 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 * --- 84 unchanged lines hidden (view full) --- 93 if (size == 8) 94 pte = read->get<uint64_t>(); 95 else 96 pte = read->get<uint32_t>(); 97 VAddr vaddr = entry.vaddr; 98 bool uncacheable = pte.pcd; 99 Addr nextRead = 0; 100 bool doWrite = false; |
101 bool badNX = pte.nx && (!tlb->allowNX() || !enableNX); | 101 bool badNX = pte.nx && execute && enableNX; |
102 switch(state) { 103 case LongPML4: 104 DPRINTF(PageTableWalker, 105 "Got long mode PML4 entry %#016x.\n", (uint64_t)pte); 106 nextRead = ((uint64_t)pte & (mask(40) << 12)) + vaddr.longl3 * size; 107 doWrite = !pte.a; 108 pte.a = 1; 109 entry.writable = pte.w; --- 467 unchanged lines hidden --- | 102 switch(state) { 103 case LongPML4: 104 DPRINTF(PageTableWalker, 105 "Got long mode PML4 entry %#016x.\n", (uint64_t)pte); 106 nextRead = ((uint64_t)pte & (mask(40) << 12)) + vaddr.longl3 * size; 107 doWrite = !pte.a; 108 pte.a = 1; 109 entry.writable = pte.w; --- 467 unchanged lines hidden --- |