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

#include <faults.hh>

Inheritance diagram for gem5::ArmISA::Watchpoint:
gem5::ArmISA::ArmFaultVals< Watchpoint > gem5::ArmISA::ArmFault gem5::FaultBase

Public Member Functions

 Watchpoint (ExtMachInst mach_inst, Addr vaddr, bool _write, bool _cm)
void invoke (ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
bool routeToHyp (ThreadContext *tc) const override
void annotate (AnnotationIDs id, uint64_t val) 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::ArmFaultVals< Watchpoint >
 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
Public Member Functions inherited from gem5::ArmISA::ArmFault
 ArmFault (ExtMachInst mach_inst=0, uint32_t _iss=0)
MiscRegIndex getSyndromeReg64 () const
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 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 ()

Private Attributes

Addr vAddr
bool write
bool cm

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 Member Functions inherited from gem5::ArmISA::ArmFaultVals< Watchpoint >
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::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 689 of file faults.hh.

Constructor & Destructor Documentation

◆ Watchpoint()

gem5::ArmISA::Watchpoint::Watchpoint ( ExtMachInst mach_inst,
Addr vaddr,
bool _write,
bool _cm )

Definition at line 1650 of file faults.cc.

References gem5::ArmISA::ArmFaultVals< Watchpoint >::ArmFaultVals(), cm, vAddr, Watchpoint(), and write.

Referenced by Watchpoint().

Member Function Documentation

◆ annotate()

void gem5::ArmISA::Watchpoint::annotate ( AnnotationIDs id,
uint64_t val )
overridevirtual

◆ ec()

ExceptionClass gem5::ArmISA::Watchpoint::ec ( ThreadContext * tc) const
overridevirtual

◆ il()

bool gem5::ArmISA::Watchpoint::il ( ThreadContext * tc) const
inlineoverridevirtual

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

Definition at line 705 of file faults.hh.

◆ invoke()

void gem5::ArmISA::Watchpoint::invoke ( ThreadContext * tc,
const StaticInstPtr & inst = nullStaticInstPtr )
overridevirtual

◆ iss()

uint32_t gem5::ArmISA::Watchpoint::iss ( ) const
overridevirtual

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

Definition at line 1657 of file faults.cc.

References cm, iss(), and write.

Referenced by iss().

◆ routeToHyp()

Member Data Documentation

◆ cm

bool gem5::ArmISA::Watchpoint::cm
private

Definition at line 694 of file faults.hh.

Referenced by iss(), and Watchpoint().

◆ vAddr

Addr gem5::ArmISA::Watchpoint::vAddr
private

Definition at line 692 of file faults.hh.

Referenced by annotate(), invoke(), and Watchpoint().

◆ write

bool gem5::ArmISA::Watchpoint::write
private

Definition at line 693 of file faults.hh.

Referenced by iss(), and Watchpoint().


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

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