diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2006-03-01 00:09:08 -0500 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2006-03-01 00:09:08 -0500 |
commit | 69e91d761765b84429dc069b8fa1cd3f25925688 (patch) | |
tree | e2fe131e39c1ba9aeb5882bd231670a3f8e30304 /arch/alpha/ev5.cc | |
parent | 34da58a698e4119876f04d13c337e9974970f49a (diff) | |
download | gem5-69e91d761765b84429dc069b8fa1cd3f25925688.tar.xz |
moved ev5_trap fully into the fault class.
--HG--
extra : convert_revision : 182cdec9a4e05f55edff0c6a114844b9ad2ca8db
Diffstat (limited to 'arch/alpha/ev5.cc')
-rw-r--r-- | arch/alpha/ev5.cc | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/arch/alpha/ev5.cc b/arch/alpha/ev5.cc index 2bb005eb4..ac0e7e67e 100644 --- a/arch/alpha/ev5.cc +++ b/arch/alpha/ev5.cc @@ -164,38 +164,6 @@ AlphaISA::zeroRegisters(CPU *cpu) } void -ExecContext::ev5_temp_trap(Fault fault) -{ - DPRINTF(Fault, "Fault %s at PC: %#x\n", fault->name(), regs.pc); - cpu->recordEvent(csprintf("Fault %s", fault->name())); - - assert(!misspeculating()); - kernelStats->fault(fault); - - if (fault->isA<ArithmeticFault>()) - panic("Arithmetic traps are unimplemented!"); - - // exception restart address - if (!fault->isA<InterruptFault>() || !inPalMode()) - setMiscReg(AlphaISA::IPR_EXC_ADDR, regs.pc); - - if (fault->isA<PalFault>() || fault->isA<ArithmeticFault>() /* || - fault == InterruptFault && !inPalMode() */) { - // traps... skip faulting instruction. - setMiscReg(AlphaISA::IPR_EXC_ADDR, - readMiscReg(AlphaISA::IPR_EXC_ADDR) + 4); - } - - if (!inPalMode()) - AlphaISA::swap_palshadow(®s, true); - - regs.pc = readMiscReg(AlphaISA::IPR_PAL_BASE) + - (dynamic_cast<AlphaFault *>(fault.get()))->vect(); - regs.npc = regs.pc + sizeof(MachInst); -} - - -void AlphaISA::intr_post(RegFile *regs, Fault fault, Addr pc) { bool use_pc = (fault == NoFault); |