30 #ifndef __MIPS_FAULTS_HH__ 31 #define __MIPS_FAULTS_HH__ 35 #include "debug/MipsPRA.hh" 103 template <
typename T>
179 return cause.iv ? 0x200 : 0x180;
183 template <
typename T>
218 template <
typename T>
236 entryHi.asid = this->
asid;
237 entryHi.vpn2 = this->vpn >> 2;
238 entryHi.vpn2x = this->vpn & 0x3;
242 context.badVPN2 = this->vpn >> 2;
251 DPRINTF(MipsPRA,
"Fault %s encountered.\n", this->
name());
253 setTlbExceptionState(tc, this->
code());
278 return status.exl ? 0x180 : 0x000;
326 #endif // __MIPS_FAULTS_HH__
TlbRefillFault(Addr asid, Addr vaddr, Addr vpn, bool store)
CoprocessorUnusableFault(int _procid)
FaultVect offset(ThreadContext *tc) const
virtual TheISA::PCState pcState() const =0
AddressErrorFault(Addr _vaddr, bool _store)
virtual void setMiscRegNoEffect(RegIndex misc_reg, RegVal val)=0
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
FaultVect offset(ThreadContext *tc) const
FaultVect offset(ThreadContext *tc) const
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
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 vect(ThreadContext *tc) const
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
virtual FaultVect base(ThreadContext *tc) const
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)
bool isMachineCheckFault()
void setTlbExceptionState(ThreadContext *tc, uint8_t excCode)
virtual RegVal readMiscRegNoEffect(RegIndex misc_reg) const =0
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)
virtual RegVal readMiscReg(RegIndex misc_reg)=0
TlbInvalidFault(Addr asid, Addr vaddr, Addr vpn, bool store)