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