gem5 v25.0.0.1
Loading...
Searching...
No Matches
gem5::ArmISA::DataAbort Class Reference

#include <faults.hh>

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

Public Member Functions

 DataAbort (Addr _addr, DomainType _domain, bool _write, uint8_t _source, bool _stage2=false, TranMethod _tran_method=TranMethod::UnknownTran, ArmFault::DebugType _debug_type=ArmFault::NODEBUG)
bool routeToMonitor (ThreadContext *tc) const override
bool routeToHyp (ThreadContext *tc) const override
void annotate (AnnotationIDs id, uint64_t val) override
uint32_t vectorCatchFlag () const 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::AbortFault< DataAbort >
 AbortFault (Addr _faultAddr, bool _write, DomainType _domain, uint8_t _source, bool _stage2, TranMethod _tranMethod=TranMethod::UnknownTran, ArmFault::DebugType _debug=ArmFault::NODEBUG)
bool getFaultVAddr (Addr &va) const override
void invoke (ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
void update (ThreadContext *tc) override
FSR getFsr (ThreadContext *tc) const override
uint8_t getFaultStatusCode (ThreadContext *tc) const
bool abortDisable (ThreadContext *tc) override
bool isStage2 () const override
void setSyndrome (ThreadContext *tc, MiscRegIndex syndrome_reg) override
bool isMMUFault () const
bool isExternalAbort () const override
Public Member Functions inherited from gem5::ArmISA::ArmFaultVals< DataAbort >
 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
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
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)
bool isResetSPSR ()
bool vectorCatch (ThreadContext *tc, const StaticInstPtr &inst)
ArmStaticInstinstrAnnotate (const StaticInstPtr &inst)
OperatingMode getToMode () const
Public Member Functions inherited from gem5::FaultBase
virtual ~FaultBase ()

Public Attributes

bool isv
uint8_t sas
uint8_t sse
uint8_t srt
uint8_t cm
bool sf
bool ar

Static Public Attributes

static const MiscRegIndex FsrIndex = MISCREG_DFSR
static const MiscRegIndex FarIndex = MISCREG_DFAR
static const MiscRegIndex HFarIndex = MISCREG_HDFAR
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.

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
}
Protected Member Functions inherited from gem5::ArmISA::ArmFaultVals< DataAbort >
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)
Protected Attributes inherited from gem5::ArmISA::AbortFault< DataAbort >
Addr faultAddr
 The virtual address the fault occured at.
Addr OVAddr
 Original virtual address.
bool write
DomainType domain
uint8_t source
uint8_t srcEncoded
bool stage2
bool s1ptw
TranMethod tranMethod
ArmFault::DebugType debugType
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

Definition at line 538 of file faults.hh.

Constructor & Destructor Documentation

◆ DataAbort()

gem5::ArmISA::DataAbort::DataAbort ( Addr _addr,
DomainType _domain,
bool _write,
uint8_t _source,
bool _stage2 = false,
TranMethod _tran_method = TranMethod::UnknownTran,
ArmFault::DebugType _debug_type = ArmFault::NODEBUG )
inline

Member Function Documentation

◆ annotate()

◆ ec()

◆ il()

bool gem5::ArmISA::DataAbort::il ( ThreadContext * tc) const
overridevirtual

Reimplemented from gem5::ArmISA::ArmFaultVals< DataAbort >.

Definition at line 1337 of file faults.cc.

References gem5::ArmISA::ArmFault::il(), and isv.

◆ iss()

◆ routeToHyp()

◆ routeToMonitor()

bool gem5::ArmISA::DataAbort::routeToMonitor ( ThreadContext * tc) const
overridevirtual

◆ vectorCatchFlag()

uint32_t gem5::ArmISA::DataAbort::vectorCatchFlag ( ) const
inlineoverridevirtual

Reimplemented from gem5::ArmISA::ArmFault.

Definition at line 567 of file faults.hh.

Member Data Documentation

◆ ar

bool gem5::ArmISA::DataAbort::ar

Definition at line 552 of file faults.hh.

Referenced by annotate(), DataAbort(), and iss().

◆ cm

uint8_t gem5::ArmISA::DataAbort::cm

Definition at line 548 of file faults.hh.

Referenced by annotate(), DataAbort(), and iss().

◆ FarIndex

const MiscRegIndex gem5::ArmISA::DataAbort::FarIndex = MISCREG_DFAR
static

Definition at line 542 of file faults.hh.

◆ FsrIndex

const MiscRegIndex gem5::ArmISA::DataAbort::FsrIndex = MISCREG_DFSR
static

Definition at line 541 of file faults.hh.

◆ HFarIndex

const MiscRegIndex gem5::ArmISA::DataAbort::HFarIndex = MISCREG_HDFAR
static

Definition at line 543 of file faults.hh.

◆ isv

bool gem5::ArmISA::DataAbort::isv

Definition at line 544 of file faults.hh.

Referenced by annotate(), DataAbort(), il(), and iss().

◆ sas

uint8_t gem5::ArmISA::DataAbort::sas

Definition at line 545 of file faults.hh.

Referenced by annotate(), DataAbort(), and iss().

◆ sf

bool gem5::ArmISA::DataAbort::sf

Definition at line 551 of file faults.hh.

Referenced by annotate(), DataAbort(), and iss().

◆ srt

uint8_t gem5::ArmISA::DataAbort::srt

Definition at line 547 of file faults.hh.

Referenced by annotate(), DataAbort(), and iss().

◆ sse

uint8_t gem5::ArmISA::DataAbort::sse

Definition at line 546 of file faults.hh.

Referenced by annotate(), DataAbort(), and iss().


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

Generated on Sat Oct 18 2025 08:06:56 for gem5 by doxygen 1.14.0