Go to the documentation of this file.
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());
278 return status.exl ? 0x180 : 0x000;
326 #endif // __MIPS_FAULTS_HH__
virtual RegVal readMiscRegNoEffect(RegIndex misc_reg) const =0
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
TlbFault(Addr _asid, Addr _vaddr, Addr _vpn, bool _store)
void setTlbExceptionState(ThreadContext *tc, uint8_t excCode)
CoprocessorUnusableFault(int _procid)
void setExceptionState(ThreadContext *, uint8_t)
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
bool isMachineCheckFault()
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
virtual ExcCode code() const =0
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
const typedef char * FaultName
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
FaultVect offset(ThreadContext *tc) const
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
virtual FaultVect offset(ThreadContext *tc) const =0
TlbModifiedFault(Addr asid, Addr vaddr, Addr vpn)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
static StaticInstPtr nullStaticInstPtr
Pointer to a statically allocated "null" instruction object.
virtual FaultVect base(ThreadContext *tc) const
virtual TheISA::PCState pcState() const =0
FaultVect vect(ThreadContext *tc) const
FaultVect offset(ThreadContext *tc) const
AddressFault(Addr _vaddr, bool _store)
TlbInvalidFault(Addr asid, Addr vaddr, Addr vpn, bool store)
FaultVect offset(ThreadContext *tc) const
virtual RegVal readMiscReg(RegIndex misc_reg)=0
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
virtual void setMiscRegNoEffect(RegIndex misc_reg, RegVal val)=0
TlbRefillFault(Addr asid, Addr vaddr, Addr vpn, bool store)
AddressErrorFault(Addr _vaddr, bool _store)
Generated on Wed Sep 30 2020 14:01:59 for gem5 by doxygen 1.8.17