From 59d7fc6b26f2cbbed09476499f04a25f886da984 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Mon, 19 Sep 2011 06:17:20 -0700 Subject: MIPS: Consolidate the two AddressErrorFault variants. --- src/arch/mips/faults.cc | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) (limited to 'src/arch/mips/faults.cc') diff --git a/src/arch/mips/faults.cc b/src/arch/mips/faults.cc index 464c2fe9e..038b73883 100644 --- a/src/arch/mips/faults.cc +++ b/src/arch/mips/faults.cc @@ -61,9 +61,6 @@ template <> FaultVals MipsFault::vals = template <> FaultVals MipsFault::vals = { "Address Error", 0x0180 }; -template <> FaultVals MipsFault::vals = - { "Store Address Error", 0x0180 }; - template <> FaultVals MipsFault::vals = { "Syscall", 0x0180 }; @@ -176,20 +173,6 @@ IntegerOverflowFault::invoke(ThreadContext *tc, StaticInstPtr inst) setHandlerPC(HandlerBase, tc); } -void -StoreAddressErrorFault::invoke(ThreadContext *tc, StaticInstPtr inst) -{ - DPRINTF(MipsPRA, "%s encountered.\n", name()); - setExceptionState(tc, 0x5); - tc->setMiscRegNoEffect(MISCREG_BADVADDR, badVAddr); - - // Set new PC - Addr HandlerBase; - // Offset 0x180 - General Exception Vector - HandlerBase = vect() + tc->readMiscReg(MISCREG_EBASE); - setHandlerPC(HandlerBase, tc); -} - void TrapFault::invoke(ThreadContext *tc, StaticInstPtr inst) { @@ -244,8 +227,8 @@ void AddressErrorFault::invoke(ThreadContext *tc, StaticInstPtr inst) { DPRINTF(MipsPRA, "%s encountered.\n", name()); - setExceptionState(tc, 0x4); - tc->setMiscRegNoEffect(MISCREG_BADVADDR, badVAddr); + setExceptionState(tc, store ? 0x5 : 0x4); + tc->setMiscRegNoEffect(MISCREG_BADVADDR, vaddr); // Set new PC Addr HandlerBase; -- cgit v1.2.3