gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::ArmISA::ArmFaultVals< T > Class Template Reference

#include <faults.hh>

Inheritance diagram for gem5::ArmISA::ArmFaultVals< T >:
gem5::ArmISA::ArmFault gem5::FaultBase gem5::ArmISA::AbortFault< T >

Public Member Functions

 ArmFaultVals (ExtMachInst mach_inst=0, uint32_t _iss=0)
 
FaultName name () const override
 
FaultOffset offset (ThreadContext *tc) override
 
FaultOffset offset64 (ThreadContext *tc) override
 
OperatingMode nextMode () override
 
virtual bool routeToMonitor (ThreadContext *tc) const override
 
uint8_t armPcOffset (bool is_hyp) override
 
uint8_t thumbPcOffset (bool is_hyp) override
 
uint8_t armPcElrOffset () override
 
uint8_t thumbPcElrOffset () override
 
bool abortDisable (ThreadContext *tc) override
 
bool fiqDisable (ThreadContext *tc) override
 
ExceptionClass ec (ThreadContext *tc) const override
 Syndrome methods.
 
bool il (ThreadContext *tc) const override
 
uint32_t iss () const override
 
- Public Member Functions inherited from gem5::ArmISA::ArmFault
 ArmFault (ExtMachInst mach_inst=0, uint32_t _iss=0)
 
MiscRegIndex getSyndromeReg64 () const
 
void invoke (ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
 
void invoke32 (ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
 
void invoke64 (ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
 
virtual void update (ThreadContext *tc)
 
bool isResetSPSR ()
 
bool vectorCatch (ThreadContext *tc, const StaticInstPtr &inst)
 
ArmStaticInstinstrAnnotate (const StaticInstPtr &inst)
 
virtual void annotate (AnnotationIDs id, uint64_t val)
 
virtual bool routeToHyp (ThreadContext *tc) const
 
virtual uint32_t vectorCatchFlag () const
 
virtual bool isStage2 () const
 
virtual FSR getFsr (ThreadContext *tc) const
 
virtual void setSyndrome (ThreadContext *tc, MiscRegIndex syndrome_reg)
 
virtual bool getFaultVAddr (Addr &va) const
 
OperatingMode getToMode () const
 
virtual bool isExternalAbort () const
 
- Public Member Functions inherited from gem5::FaultBase
virtual ~FaultBase ()
 

Protected Member Functions

ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
ArmFault::FaultVals vals
 
- Protected Member Functions inherited from gem5::ArmISA::ArmFault
virtual Addr getVector (ThreadContext *tc)
 
Addr getVector64 (ThreadContext *tc)
 

Static Protected Attributes

static FaultVals vals
 

Additional Inherited Members

- Public Types inherited from gem5::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 , CM , OFA , WnR ,
  SF , AR
}
 
enum  DebugType {
  NODEBUG = 0 , BRKPOINT , VECTORCATCH , WPOINT_CM ,
  WPOINT_NOCM
}
 
- Static Public Attributes inherited from gem5::ArmISA::ArmFault
static uint8_t shortDescFaultSources [NumFaultSources]
 Encodings of the fault sources when the short-desc.
 
static uint8_t longDescFaultSources [NumFaultSources]
 Encodings of the fault sources when the long-desc.
 
static uint8_t aarch64FaultSources [NumFaultSources]
 Encodings of the fault sources in AArch64 state.
 
- Protected Attributes inherited from gem5::ArmISA::ArmFault
ExtMachInst machInst
 
uint32_t issRaw
 
bool bStep
 
bool from64
 
bool to64
 
ExceptionLevel fromEL
 
ExceptionLevel toEL
 
OperatingMode fromMode
 
OperatingMode toMode
 
bool faultUpdated
 
bool hypRouted
 
bool span
 

Detailed Description

template<typename T>
class gem5::ArmISA::ArmFaultVals< T >

Definition at line 256 of file faults.hh.

Constructor & Destructor Documentation

◆ ArmFaultVals()

template<typename T>
gem5::ArmISA::ArmFaultVals< T >::ArmFaultVals ( ExtMachInst mach_inst = 0,
uint32_t _iss = 0 )
inline

Definition at line 262 of file faults.hh.

References gem5::ArmISA::ArmFault::ArmFault().

Member Function Documentation

◆ abortDisable()

template<typename T>
bool gem5::ArmISA::ArmFaultVals< T >::abortDisable ( ThreadContext * tc)
inlineoverridevirtual

Implements gem5::ArmISA::ArmFault.

Reimplemented in gem5::ArmISA::FastInterrupt, and gem5::ArmISA::Interrupt.

Definition at line 293 of file faults.hh.

References vals.

◆ armPcElrOffset()

template<typename T>
uint8_t gem5::ArmISA::ArmFaultVals< T >::armPcElrOffset ( )
inlineoverridevirtual

Implements gem5::ArmISA::ArmFault.

Definition at line 291 of file faults.hh.

References vals.

◆ armPcOffset()

template<typename T>
uint8_t gem5::ArmISA::ArmFaultVals< T >::armPcOffset ( bool is_hyp)
inlineoverridevirtual

Implements gem5::ArmISA::ArmFault.

Definition at line 278 of file faults.hh.

References vals.

◆ ec()

◆ fiqDisable()

template<typename T>
bool gem5::ArmISA::ArmFaultVals< T >::fiqDisable ( ThreadContext * tc)
inlineoverridevirtual

Implements gem5::ArmISA::ArmFault.

Reimplemented in gem5::ArmISA::FastInterrupt.

Definition at line 294 of file faults.hh.

References vals.

◆ il()

◆ iss()

◆ name()

template<typename T>
FaultName gem5::ArmISA::ArmFaultVals< T >::name ( ) const
inlineoverridevirtual

Implements gem5::FaultBase.

Definition at line 264 of file faults.hh.

References vals.

◆ nextMode()

template<typename T>
OperatingMode gem5::ArmISA::ArmFaultVals< T >::nextMode ( )
inlineoverridevirtual

Implements gem5::ArmISA::ArmFault.

Definition at line 269 of file faults.hh.

References vals.

◆ offset()

◆ offset64()

◆ routeToMonitor()

template<typename T>
virtual bool gem5::ArmISA::ArmFaultVals< T >::routeToMonitor ( ThreadContext * tc) const
inlineoverridevirtual

◆ thumbPcElrOffset()

template<typename T>
uint8_t gem5::ArmISA::ArmFaultVals< T >::thumbPcElrOffset ( )
inlineoverridevirtual

Implements gem5::ArmISA::ArmFault.

Definition at line 292 of file faults.hh.

References vals.

◆ thumbPcOffset()

template<typename T>
uint8_t gem5::ArmISA::ArmFaultVals< T >::thumbPcOffset ( bool is_hyp)
inlineoverridevirtual

Implements gem5::ArmISA::ArmFault.

Definition at line 285 of file faults.hh.

References vals.

◆ vals() [1/24]

Definition at line 749 of file faults.hh.

◆ vals() [2/24]

Definition at line 750 of file faults.hh.

◆ vals() [3/24]

Definition at line 751 of file faults.hh.

◆ vals() [4/24]

Definition at line 752 of file faults.hh.

◆ vals() [5/24]

Definition at line 753 of file faults.hh.

◆ vals() [6/24]

Definition at line 754 of file faults.hh.

◆ vals() [7/24]

Definition at line 755 of file faults.hh.

◆ vals() [8/24]

Definition at line 756 of file faults.hh.

◆ vals() [9/24]

Definition at line 757 of file faults.hh.

◆ vals() [10/24]

Definition at line 758 of file faults.hh.

◆ vals() [11/24]

Definition at line 759 of file faults.hh.

◆ vals() [12/24]

Definition at line 760 of file faults.hh.

◆ vals() [13/24]

Definition at line 761 of file faults.hh.

◆ vals() [14/24]

◆ vals() [15/24]

Definition at line 763 of file faults.hh.

◆ vals() [16/24]

Definition at line 764 of file faults.hh.

◆ vals() [17/24]

Definition at line 765 of file faults.hh.

◆ vals() [18/24]

Definition at line 766 of file faults.hh.

◆ vals() [19/24]

Definition at line 767 of file faults.hh.

◆ vals() [20/24]

Definition at line 768 of file faults.hh.

◆ vals() [21/24]

Definition at line 769 of file faults.hh.

◆ vals() [22/24]

Definition at line 770 of file faults.hh.

◆ vals() [23/24]

Definition at line 771 of file faults.hh.

◆ vals() [24/24]

Definition at line 772 of file faults.hh.

Member Data Documentation

◆ vals


The documentation for this class was generated from the following files:

Generated on Mon May 26 2025 09:19:27 for gem5 by doxygen 1.13.2