64,66d63
< template <> FaultVals MipsFault<StoreAddressErrorFault>::vals =
< { "Store Address Error", 0x0180 };
<
180,193d176
< 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
247,248c230,231
< setExceptionState(tc, 0x4);
< tc->setMiscRegNoEffect(MISCREG_BADVADDR, badVAddr);
---
> setExceptionState(tc, store ? 0x5 : 0x4);
> tc->setMiscRegNoEffect(MISCREG_BADVADDR, vaddr);