gem5
|
#include <faults.hh>
Public Member Functions | |
ArmFaultVals (ExtMachInst _machInst=0, uint32_t _iss=0) | |
FaultName | name () const |
FaultStat & | countStat () |
FaultOffset | offset (ThreadContext *tc) |
FaultOffset | offset64 () |
OperatingMode | nextMode () |
virtual bool | routeToMonitor (ThreadContext *tc) const |
uint8_t | armPcOffset (bool isHyp) |
uint8_t | thumbPcOffset (bool isHyp) |
uint8_t | armPcElrOffset () |
uint8_t | thumbPcElrOffset () |
virtual bool | abortDisable (ThreadContext *tc) |
virtual bool | fiqDisable (ThreadContext *tc) |
virtual ExceptionClass | ec (ThreadContext *tc) const |
virtual uint32_t | iss () const |
Public Member Functions inherited from ArmISA::ArmFault | |
ArmFault (ExtMachInst _machInst=0, uint32_t _iss=0) | |
MiscRegIndex | getSyndromeReg64 () const |
MiscRegIndex | getFaultAddrReg64 () const |
void | invoke (ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr) |
void | invoke64 (ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr) |
virtual void | annotate (AnnotationIDs id, uint64_t val) |
virtual bool | routeToHyp (ThreadContext *tc) const |
virtual bool | isStage2 () const |
virtual FSR | getFsr (ThreadContext *tc) |
virtual void | setSyndrome (ThreadContext *tc, MiscRegIndex syndrome_reg) |
Static Protected Attributes | |
static FaultVals | vals |
Additional Inherited Members | |
Public Types inherited from ArmISA::ArmFault | |
enum | FaultSource { AlignmentFault = 0, InstructionCacheMaintenance, SynchExtAbtOnTranslTableWalkLL, SynchPtyErrOnTranslTableWalkLL = SynchExtAbtOnTranslTableWalkLL + 4, TranslationLL = SynchPtyErrOnTranslTableWalkLL + 4, AccessFlagLL = TranslationLL + 4, DomainLL = AccessFlagLL + 4, PermissionLL = DomainLL + 4, DebugEvent = PermissionLL + 4, SynchronousExternalAbort, TLBConflictAbort, SynchPtyErrOnMemoryAccess, AsynchronousExternalAbort, AsynchPtyErrOnMemoryAccess, AddressSizeLL, PrefetchTLBMiss = AddressSizeLL + 4, PrefetchUncacheable, NumFaultSources, FaultSourceInvalid = 0xff } |
Generic fault source enums used to index into {short/long/aarch64}DescFaultSources[] to get the actual encodings based on the current register width state and the translation table format in use. More... | |
enum | AnnotationIDs { S1PTW, OVA, SAS, SSE, SRT, SF, AR } |
enum | TranMethod { LpaeTran, VmsaTran, UnknownTran } |
Static Public Attributes inherited from ArmISA::ArmFault | |
static uint8_t | shortDescFaultSources [NumFaultSources] |
Encodings of the fault sources when the short-desc. More... | |
static uint8_t | longDescFaultSources [NumFaultSources] |
Encodings of the fault sources when the long-desc. More... | |
static uint8_t | aarch64FaultSources [NumFaultSources] |
Encodings of the fault sources in AArch64 state. More... | |
Protected Attributes inherited from ArmISA::ArmFault | |
ExtMachInst | machInst |
uint32_t | issRaw |
bool | from64 |
bool | to64 |
ExceptionLevel | fromEL |
ExceptionLevel | toEL |
OperatingMode | fromMode |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
Implements ArmISA::ArmFault.
|
inlinevirtual |
Implements ArmISA::ArmFault.
|
inlinevirtual |
Implements ArmISA::ArmFault.
|
inlinevirtual |
Implements ArmISA::ArmFault.
Reimplemented in ArmISA::DataAbort, ArmISA::PrefetchAbort, ArmISA::HypervisorTrap, ArmISA::HypervisorCall, ArmISA::SecureMonitorTrap, ArmISA::SupervisorTrap, ArmISA::SecureMonitorCall, ArmISA::SupervisorCall, and ArmISA::UndefinedInstruction.
Definition at line 246 of file faults.hh.
Referenced by ArmISA::PrefetchAbort::ec(), and ArmISA::DataAbort::ec().
|
inlinevirtual |
Implements ArmISA::ArmFault.
Reimplemented in ArmISA::FastInterrupt.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Implements ArmISA::ArmFault.
|
virtual |
Implements ArmISA::ArmFault.
Definition at line 861 of file faults.cc.
References ArmISA::MISCREG_CPSR, ArmISA::MISCREG_SPSR_HYP, ArmISA::MODE_HYP, and ThreadContext::readMiscReg().
|
inlinevirtual |
Implements ArmISA::ArmFault.
|
inlinevirtual |
Implements ArmISA::ArmFault.
Reimplemented in ArmISA::SystemError, ArmISA::FastInterrupt, ArmISA::Interrupt, ArmISA::DataAbort, and ArmISA::PrefetchAbort.
|
inlinevirtual |
Implements ArmISA::ArmFault.
|
inlinevirtual |
Implements ArmISA::ArmFault.
|
protected |
Definition at line 201 of file faults.cc.
References ArmISA::EC_UNKNOWN, and ArmISA::MODE_SVC.
Referenced by ArmISA::ArmFaultVals< FastInterrupt >::abortDisable(), ArmISA::ArmFaultVals< FastInterrupt >::armPcElrOffset(), ArmISA::ArmFaultVals< FastInterrupt >::armPcOffset(), ArmISA::ArmFaultVals< FastInterrupt >::countStat(), ArmISA::ArmFaultVals< FastInterrupt >::ec(), ArmISA::ArmFaultVals< FastInterrupt >::fiqDisable(), ArmISA::ArmFaultVals< FastInterrupt >::name(), ArmISA::ArmFaultVals< FastInterrupt >::nextMode(), ArmISA::ArmFaultVals< FastInterrupt >::offset64(), ArmISA::ArmFaultVals< FastInterrupt >::thumbPcElrOffset(), and ArmISA::ArmFaultVals< FastInterrupt >::thumbPcOffset().
|
protected |
Definition at line 207 of file faults.cc.
References ArmISA::EC_UNKNOWN, and ArmISA::MODE_UNDEFINED.
|
protected |
Definition at line 211 of file faults.cc.
References ArmISA::EC_SVC_TO_HYP, and ArmISA::MODE_SVC.
|
protected |
Definition at line 215 of file faults.cc.
References ArmISA::EC_SMC_TO_HYP, and ArmISA::MODE_MON.
|
protected |
Definition at line 219 of file faults.cc.
References ArmISA::EC_HVC, and ArmISA::MODE_HYP.
|
protected |
Definition at line 223 of file faults.cc.
References ArmISA::EC_PREFETCH_ABORT_TO_HYP, and ArmISA::MODE_ABORT.
|
protected |
Definition at line 227 of file faults.cc.
References ArmISA::EC_DATA_ABORT_TO_HYP, and ArmISA::MODE_ABORT.
|
protected |
Definition at line 231 of file faults.cc.
References ArmISA::EC_INVALID, and ArmISA::MODE_ABORT.
|
protected |
Definition at line 235 of file faults.cc.
References ArmISA::EC_UNKNOWN, and ArmISA::MODE_HYP.
|
protected |
Definition at line 240 of file faults.cc.
References ArmISA::EC_UNKNOWN, and ArmISA::MODE_IRQ.
|
protected |
Definition at line 244 of file faults.cc.
References ArmISA::EC_INVALID, and ArmISA::MODE_IRQ.
|
protected |
Definition at line 248 of file faults.cc.
References ArmISA::EC_UNKNOWN, and ArmISA::MODE_FIQ.
|
protected |
Definition at line 252 of file faults.cc.
References ArmISA::EC_INVALID, and ArmISA::MODE_FIQ.
|
protected |
Definition at line 256 of file faults.cc.
References ArmISA::EC_UNKNOWN, and ArmISA::MODE_SVC.
|
protected |
Definition at line 261 of file faults.cc.
References ArmISA::EC_UNKNOWN, and ArmISA::MODE_MON.
|
protected |
Definition at line 266 of file faults.cc.
References ArmISA::EC_PC_ALIGNMENT, and ArmISA::MODE_SVC.
|
protected |
Definition at line 271 of file faults.cc.
References ArmISA::EC_STACK_PTR_ALIGNMENT, and ArmISA::MODE_SVC.
|
protected |
Definition at line 276 of file faults.cc.
References ArmISA::EC_SERROR, and ArmISA::MODE_SVC.
|
protected |
Definition at line 281 of file faults.cc.
References ArmISA::EC_UNKNOWN, and ArmISA::MODE_SVC.
|
protected |
Definition at line 286 of file faults.cc.
References ArmISA::EC_UNKNOWN, and ArmISA::MODE_SVC.
|
protected |
Definition at line 291 of file faults.cc.
References ArmISA::EC_ILLEGAL_INST, and ArmISA::MODE_SVC.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
staticprotected |