1/* 2 * Copyright (c) 2003-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 182 unchanged lines hidden (view full) --- 191ItbPageFault::invoke(ThreadContext *tc, const StaticInstPtr &inst) 192{ 193 if (FullSystem) { 194 ItbFault::invoke(tc); 195 return; 196 } 197 198 Process *p = tc->getProcessPtr(); |
199 TlbEntry *entry = p->pTable->lookup(pc); 200 panic_if(!entry, "Tried to execute unmapped address %#x.\n", pc); 201 202 VAddr vaddr(pc); 203 dynamic_cast<TLB *>(tc->getITBPtr())->insert(vaddr.page(), *entry); |
204} 205 206void 207NDtbMissFault::invoke(ThreadContext *tc, const StaticInstPtr &inst) 208{ 209 if (FullSystem) { 210 DtbFault::invoke(tc, inst); 211 return; 212 } 213 214 Process *p = tc->getProcessPtr(); |
215 TlbEntry *entry = p->pTable->lookup(vaddr); 216 if (!entry && p->fixupStackFault(vaddr)) 217 entry = p->pTable->lookup(vaddr); 218 panic_if(!entry, "Tried to access unmapped address %#x.\n", (Addr)vaddr); 219 dynamic_cast<TLB *>(tc->getDTBPtr())->insert(vaddr.page(), *entry); |
220} 221 222} // namespace AlphaISA 223 |