faults.cc (5188:974af6059943) | faults.cc (5237:6c819dbe8045) |
---|---|
1/* 2 * Copyright (c) 2003-2007 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; --- 79 unchanged lines hidden (view full) --- 88#include "arch/x86/faults.hh" 89#include "base/trace.hh" 90#include "config/full_system.hh" 91#include "cpu/thread_context.hh" 92#if !FULL_SYSTEM 93#include "arch/x86/isa_traits.hh" 94#include "mem/page_table.hh" 95#include "sim/process.hh" | 1/* 2 * Copyright (c) 2003-2007 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; --- 79 unchanged lines hidden (view full) --- 88#include "arch/x86/faults.hh" 89#include "base/trace.hh" 90#include "config/full_system.hh" 91#include "cpu/thread_context.hh" 92#if !FULL_SYSTEM 93#include "arch/x86/isa_traits.hh" 94#include "mem/page_table.hh" 95#include "sim/process.hh" |
96#else 97#include "arch/x86/tlb.hh" |
|
96#endif 97 98namespace X86ISA 99{ 100#if FULL_SYSTEM 101 void X86Trap::invoke(ThreadContext * tc) 102 { 103 panic("X86 faults are not implemented!"); 104 } 105 106 void X86Abort::invoke(ThreadContext * tc) 107 { 108 panic("X86 faults are not implemented!"); 109 } 110 111 void X86Interrupt::invoke(ThreadContext * tc) 112 { 113 panic("X86 faults are not implemented!"); 114 } | 98#endif 99 100namespace X86ISA 101{ 102#if FULL_SYSTEM 103 void X86Trap::invoke(ThreadContext * tc) 104 { 105 panic("X86 faults are not implemented!"); 106 } 107 108 void X86Abort::invoke(ThreadContext * tc) 109 { 110 panic("X86 faults are not implemented!"); 111 } 112 113 void X86Interrupt::invoke(ThreadContext * tc) 114 { 115 panic("X86 faults are not implemented!"); 116 } |
117 118 void FakeITLBFault::invoke(ThreadContext * tc) 119 { 120 // Start the page table walker. 121 tc->getITBPtr()->walker.start(tc, vaddr); 122 } 123 124 void FakeDTLBFault::invoke(ThreadContext * tc) 125 { 126 // Start the page table walker. 127 tc->getDTBPtr()->walker.start(tc, vaddr); 128 } 129 |
|
115#else // !FULL_SYSTEM 116 void FakeITLBFault::invoke(ThreadContext * tc) 117 { 118 DPRINTF(TLB, "Invoking an ITLB fault for address %#x at pc %#x.\n", 119 vaddr, tc->readPC()); 120 Process *p = tc->getProcessPtr(); 121 TlbEntry entry; 122 bool success = p->pTable->lookup(vaddr, entry); --- 33 unchanged lines hidden --- | 130#else // !FULL_SYSTEM 131 void FakeITLBFault::invoke(ThreadContext * tc) 132 { 133 DPRINTF(TLB, "Invoking an ITLB fault for address %#x at pc %#x.\n", 134 vaddr, tc->readPC()); 135 Process *p = tc->getProcessPtr(); 136 TlbEntry entry; 137 bool success = p->pTable->lookup(vaddr, entry); --- 33 unchanged lines hidden --- |