faults.cc (5245:d94bb8af9f76) | faults.cc (5681:54c2d92f601e) |
---|---|
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; --- 71 unchanged lines hidden (view full) --- 80 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 81 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 82 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 83 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 84 * 85 * Authors: Gabe Black 86 */ 87 | 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; --- 71 unchanged lines hidden (view full) --- 80 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 81 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 82 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 83 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 84 * 85 * Authors: Gabe Black 86 */ 87 |
88#include "arch/x86/decoder.hh" |
|
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" --- 11 unchanged lines hidden (view full) --- 107 108 void X86Abort::invoke(ThreadContext * tc) 109 { 110 panic("X86 faults are not implemented!"); 111 } 112 113 void X86Interrupt::invoke(ThreadContext * tc) 114 { | 89#include "arch/x86/faults.hh" 90#include "base/trace.hh" 91#include "config/full_system.hh" 92#include "cpu/thread_context.hh" 93#if !FULL_SYSTEM 94#include "arch/x86/isa_traits.hh" 95#include "mem/page_table.hh" 96#include "sim/process.hh" --- 11 unchanged lines hidden (view full) --- 108 109 void X86Abort::invoke(ThreadContext * tc) 110 { 111 panic("X86 faults are not implemented!"); 112 } 113 114 void X86Interrupt::invoke(ThreadContext * tc) 115 { |
115 panic("X86 faults are not implemented!"); | 116 using namespace X86ISAInst::RomLabels; 117 HandyM5Reg m5reg = tc->readMiscRegNoEffect(MISCREG_M5_REG); 118 MicroPC entry; 119 if (m5reg.mode == LongMode) { 120 entry = extern_label_longModeInterrupt; 121 } else { 122 entry = extern_label_legacyModeInterrupt; 123 } 124 tc->setIntReg(INTREG_MICRO(1), vector); 125 tc->setIntReg(INTREG_MICRO(7), tc->readPC()); 126 tc->setMicroPC(romMicroPC(entry)); 127 tc->setNextMicroPC(romMicroPC(entry) + 1); |
116 } 117 118 void FakeITLBFault::invoke(ThreadContext * tc) 119 { 120 // Start the page table walker. 121 tc->getITBPtr()->walk(tc, vaddr); 122 } 123 --- 47 unchanged lines hidden --- | 128 } 129 130 void FakeITLBFault::invoke(ThreadContext * tc) 131 { 132 // Start the page table walker. 133 tc->getITBPtr()->walk(tc, vaddr); 134 } 135 --- 47 unchanged lines hidden --- |