36 #ifndef __MIPS_FAULTS_HH__
37 #define __MIPS_FAULTS_HH__
41 #include "debug/MipsPRA.hh"
109 template <
typename T>
185 return cause.iv ? 0x200 : 0x180;
189 template <
typename T>
224 template <
typename T>
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;
332 #endif // __MIPS_FAULTS_HH__
FaultVect vect(ThreadContext *tc) const
FaultVect offset(ThreadContext *tc) const
virtual ExcCode code() const =0
TlbRefillFault(Addr asid, Addr vaddr, Addr vpn, bool store)
CoprocessorUnusableFault(int _procid)
AddressErrorFault(Addr _vaddr, bool _store)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
virtual MiscReg readMiscRegNoEffect(int misc_reg) const =0
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
virtual TheISA::PCState pcState()=0
ThreadContext is the external interface to all thread state for anything outside of the CPU...
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
FaultVect offset(ThreadContext *tc) const
FaultVect offset(ThreadContext *tc) const
virtual FaultVect base(ThreadContext *tc) const
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
virtual FaultVect offset(ThreadContext *tc) const =0
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
virtual MiscReg readMiscReg(int misc_reg)=0
bool isMachineCheckFault()
void setTlbExceptionState(ThreadContext *tc, uint8_t excCode)
TlbFault(Addr _asid, Addr _vaddr, Addr _vpn, bool _store)
TlbModifiedFault(Addr asid, Addr vaddr, Addr vpn)
static StaticInstPtr nullStaticInstPtr
Pointer to a statically allocated "null" instruction object.
void setExceptionState(ThreadContext *, uint8_t)
AddressFault(Addr _vaddr, bool _store)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
virtual void setMiscRegNoEffect(int misc_reg, const MiscReg &val)=0
TlbInvalidFault(Addr asid, Addr vaddr, Addr vpn, bool store)