30#ifndef __MIPS_FAULTS_HH__
31#define __MIPS_FAULTS_HH__
37#include "debug/MipsPRA.hh"
185 return cause.iv ? 0x200 : 0x180;
242 entryHi.asid = this->
asid;
243 entryHi.vpn2 = this->vpn >> 2;
244 entryHi.vpn2x = this->vpn & 0x3;
248 context.badVPN2 = this->vpn >> 2;
257 DPRINTF(MipsPRA,
"Fault %s encountered.\n", this->
name());
284 return status.exl ? 0x180 : 0x000;
AddressErrorFault(Addr _vaddr, bool _store)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
AddressFault(Addr _vaddr, bool _store)
CoprocessorUnusableFault(int _procid)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
FaultVect offset(ThreadContext *tc) const
bool isMachineCheckFault()
virtual FaultVect offset(ThreadContext *tc) const =0
void setExceptionState(ThreadContext *, uint8_t)
virtual ExcCode code() const =0
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
virtual FaultVect base(ThreadContext *tc) const
FaultVect vect(ThreadContext *tc) const
FaultVect offset(ThreadContext *tc) const
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
TlbFault(Addr _asid, Addr _vaddr, Addr _vpn, bool _store)
void setTlbExceptionState(ThreadContext *tc, uint8_t excCode)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
TlbInvalidFault(Addr asid, Addr vaddr, Addr vpn, bool store)
TlbModifiedFault(Addr asid, Addr vaddr, Addr vpn)
TlbRefillFault(Addr asid, Addr vaddr, Addr vpn, bool store)
FaultVect offset(ThreadContext *tc) const
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual RegVal readMiscReg(RegIndex misc_reg)=0
virtual void setMiscRegNoEffect(RegIndex misc_reg, RegVal val)=0
virtual const PCStateBase & pcState() const =0
virtual RegVal readMiscRegNoEffect(RegIndex misc_reg) const =0
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
const StaticInstPtr nullStaticInstPtr
Statically allocated null StaticInstPtr.