LLDB mainline
RegisterInfoPOSIX_arm64 Class Reference

#include <RegisterInfoPOSIX_arm64.h>

Inheritance diagram for RegisterInfoPOSIX_arm64:
[legend]

Classes

struct  DBG
struct  EXC
struct  FPU
struct  GPR
struct  VReg

Public Types

enum  { GPRegSet = 0 , FPRegSet }
enum  {
  eRegsetMaskDefault = 0 , eRegsetMaskSVE = 1 , eRegsetMaskSSVE = 2 , eRegsetMaskPAuth = 4 ,
  eRegsetMaskMTE = 8 , eRegsetMaskTLS = 16 , eRegsetMaskZA = 32 , eRegsetMaskZT = 64 ,
  eRegsetMaskFPMR = 128 , eRegsetMaskGCS = 256 , eRegsetMaskDynamic = ~1
}
enum  { eVectorQuadwordAArch64 , eVectorQuadwordAArch64SVE , eVectorQuadwordAArch64SVEMax = 256 }

Public Member Functions

 RegisterInfoPOSIX_arm64 (const lldb_private::ArchSpec &target_arch, lldb_private::Flags opt_regsets)
size_t GetGPRSize () const override
size_t GetFPRSize () const override
const lldb_private::RegisterInfoGetRegisterInfo () const override
uint32_t GetRegisterCount () const override
const lldb_private::RegisterSetGetRegisterSet (size_t reg_set) const override
size_t GetRegisterSetCount () const override
size_t GetRegisterSetFromRegisterIndex (uint32_t reg_index) const override
void AddRegSetPAuth ()
void AddRegSetMTE ()
void AddRegSetTLS (bool has_tpidr2)
void AddRegSetSME (bool has_zt)
void AddRegSetFPMR ()
void AddRegSetGCS ()
uint32_t ConfigureVectorLengthSVE (uint32_t sve_vq)
void ConfigureVectorLengthZA (uint32_t za_vq)
bool VectorSizeIsValid (uint32_t vq)
bool IsSVEPresent () const
bool IsSSVEPresent () const
bool IsZAPresent () const
bool IsZTPresent () const
bool IsPAuthPresent () const
bool IsMTEPresent () const
bool IsTLSPresent () const
bool IsFPMRPresent () const
bool IsGCSPresent () const
bool IsSVEReg (unsigned reg) const
bool IsSVEZReg (unsigned reg) const
bool IsSVEPReg (unsigned reg) const
bool IsSVERegVG (unsigned reg) const
bool IsPAuthReg (unsigned reg) const
bool IsMTEReg (unsigned reg) const
bool IsTLSReg (unsigned reg) const
bool IsSMEReg (unsigned reg) const
bool IsSMERegZA (unsigned reg) const
bool IsSMERegZT (unsigned reg) const
bool IsFPMRReg (unsigned reg) const
bool IsGCSReg (unsigned reg) const
uint32_t GetRegNumSVEZ0 () const
uint32_t GetRegNumSVEFFR () const
uint32_t GetRegNumFPCR () const
uint32_t GetRegNumFPSR () const
uint32_t GetRegNumSVEVG () const
uint32_t GetRegNumSMESVG () const
uint32_t GetPAuthOffset () const
uint32_t GetMTEOffset () const
uint32_t GetTLSOffset () const
uint32_t GetSMEOffset () const
uint32_t GetFPMROffset () const
uint32_t GetGCSOffset () const
Public Member Functions inherited from lldb_private::RegisterInfoAndSetInterface
 RegisterInfoAndSetInterface (const lldb_private::ArchSpec &target_arch)
Public Member Functions inherited from lldb_private::RegisterInfoInterface
 RegisterInfoInterface (const lldb_private::ArchSpec &target_arch)
virtual ~RegisterInfoInterface ()=default
virtual uint32_t GetUserRegisterCount () const
const lldb_private::ArchSpecGetTargetArchitecture () const

Static Public Member Functions

static size_t GetGPRSizeStatic ()

Private Types

typedef std::map< uint32_t, std::vector< lldb_private::RegisterInfo > > per_vq_register_infos

Private Attributes

per_vq_register_infos m_per_vq_reg_infos
uint32_t m_vector_reg_vq = eVectorQuadwordAArch64
uint32_t m_za_reg_vq = eVectorQuadwordAArch64
const lldb_private::RegisterInfom_register_info_p
uint32_t m_register_info_count
const lldb_private::RegisterSetm_register_set_p
uint32_t m_register_set_count
std::map< uint32_t, std::pair< uint32_t, uint32_t > > m_per_regset_regnum_range
lldb_private::Flags m_opt_regsets
std::vector< lldb_private::RegisterInfom_dynamic_reg_infos
std::vector< lldb_private::RegisterSetm_dynamic_reg_sets
std::vector< uint32_t > pauth_regnum_collection
std::vector< uint32_t > m_mte_regnum_collection
std::vector< uint32_t > m_tls_regnum_collection
std::vector< uint32_t > m_sme_regnum_collection
std::vector< uint32_t > m_fpmr_regnum_collection
std::vector< uint32_t > m_gcs_regnum_collection

Detailed Description

Definition at line 20 of file RegisterInfoPOSIX_arm64.h.

Member Typedef Documentation

◆ per_vq_register_infos

typedef std::map<uint32_t, std::vector<lldb_private::RegisterInfo> > RegisterInfoPOSIX_arm64::per_vq_register_infos
private

Definition at line 170 of file RegisterInfoPOSIX_arm64.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
eRegsetMaskDefault 
eRegsetMaskSVE 
eRegsetMaskSSVE 
eRegsetMaskPAuth 
eRegsetMaskMTE 
eRegsetMaskTLS 
eRegsetMaskZA 
eRegsetMaskZT 
eRegsetMaskFPMR 
eRegsetMaskGCS 
eRegsetMaskDynamic 

Definition at line 26 of file RegisterInfoPOSIX_arm64.h.

◆ anonymous enum

anonymous enum
Enumerator
GPRegSet 
FPRegSet 

Definition at line 23 of file RegisterInfoPOSIX_arm64.h.

◆ anonymous enum

anonymous enum
Enumerator
eVectorQuadwordAArch64 
eVectorQuadwordAArch64SVE 
eVectorQuadwordAArch64SVEMax 

Definition at line 41 of file RegisterInfoPOSIX_arm64.h.

Constructor & Destructor Documentation

◆ RegisterInfoPOSIX_arm64()

RegisterInfoPOSIX_arm64::RegisterInfoPOSIX_arm64 ( const lldb_private::ArchSpec & target_arch,
lldb_private::Flags opt_regsets )

Member Function Documentation

◆ AddRegSetFPMR()

◆ AddRegSetGCS()

◆ AddRegSetMTE()

◆ AddRegSetPAuth()

◆ AddRegSetSME()

◆ AddRegSetTLS()

◆ ConfigureVectorLengthSVE()

◆ ConfigureVectorLengthZA()

void RegisterInfoPOSIX_arm64::ConfigureVectorLengthZA ( uint32_t za_vq)

◆ GetFPMROffset()

uint32_t RegisterInfoPOSIX_arm64::GetFPMROffset ( ) const

Definition at line 626 of file RegisterInfoPOSIX_arm64.cpp.

References m_fpmr_regnum_collection, and m_register_info_p.

◆ GetFPRSize()

size_t RegisterInfoPOSIX_arm64::GetFPRSize ( ) const
overridevirtual

◆ GetGCSOffset()

uint32_t RegisterInfoPOSIX_arm64::GetGCSOffset ( ) const

Definition at line 630 of file RegisterInfoPOSIX_arm64.cpp.

References m_gcs_regnum_collection, and m_register_info_p.

◆ GetGPRSize()

size_t RegisterInfoPOSIX_arm64::GetGPRSize ( ) const
inlineoverridevirtual

Implements lldb_private::RegisterInfoInterface.

Definition at line 94 of file RegisterInfoPOSIX_arm64.h.

References GetGPRSizeStatic().

◆ GetGPRSizeStatic()

size_t RegisterInfoPOSIX_arm64::GetGPRSizeStatic ( )
static

Definition at line 303 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by GetGPRSize().

◆ GetMTEOffset()

uint32_t RegisterInfoPOSIX_arm64::GetMTEOffset ( ) const

Definition at line 614 of file RegisterInfoPOSIX_arm64.cpp.

References m_mte_regnum_collection, and m_register_info_p.

◆ GetPAuthOffset()

uint32_t RegisterInfoPOSIX_arm64::GetPAuthOffset ( ) const

Definition at line 610 of file RegisterInfoPOSIX_arm64.cpp.

References m_register_info_p, and pauth_regnum_collection.

◆ GetRegisterCount()

uint32_t RegisterInfoPOSIX_arm64::GetRegisterCount ( ) const
overridevirtual

◆ GetRegisterInfo()

const lldb_private::RegisterInfo * RegisterInfoPOSIX_arm64::GetRegisterInfo ( ) const
overridevirtual

Implements lldb_private::RegisterInfoInterface.

Definition at line 312 of file RegisterInfoPOSIX_arm64.cpp.

References m_register_info_p.

◆ GetRegisterSet()

const lldb_private::RegisterSet * RegisterInfoPOSIX_arm64::GetRegisterSet ( size_t reg_set) const
overridevirtual

◆ GetRegisterSetCount()

size_t RegisterInfoPOSIX_arm64::GetRegisterSetCount ( ) const
overridevirtual

Implements lldb_private::RegisterInfoAndSetInterface.

Definition at line 316 of file RegisterInfoPOSIX_arm64.cpp.

References m_register_set_count.

Referenced by GetRegisterSet().

◆ GetRegisterSetFromRegisterIndex()

size_t RegisterInfoPOSIX_arm64::GetRegisterSetFromRegisterIndex ( uint32_t reg_index) const
overridevirtual

◆ GetRegNumFPCR()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumFPCR ( ) const

Definition at line 600 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumFPSR()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumFPSR ( ) const

Definition at line 602 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumSMESVG()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSMESVG ( ) const

Definition at line 606 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

Referenced by AddRegSetSME().

◆ GetRegNumSVEFFR()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEFFR ( ) const

Definition at line 598 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumSVEVG()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEVG ( ) const

Definition at line 604 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by AddRegSetSME().

◆ GetRegNumSVEZ0()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEZ0 ( ) const

Definition at line 596 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetSMEOffset()

uint32_t RegisterInfoPOSIX_arm64::GetSMEOffset ( ) const

Definition at line 622 of file RegisterInfoPOSIX_arm64.cpp.

References m_register_info_p, and m_sme_regnum_collection.

◆ GetTLSOffset()

uint32_t RegisterInfoPOSIX_arm64::GetTLSOffset ( ) const

Definition at line 618 of file RegisterInfoPOSIX_arm64.cpp.

References m_register_info_p, and m_tls_regnum_collection.

◆ IsFPMRPresent()

bool RegisterInfoPOSIX_arm64::IsFPMRPresent ( ) const
inline

Definition at line 139 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskFPMR, and m_opt_regsets.

◆ IsFPMRReg()

bool RegisterInfoPOSIX_arm64::IsFPMRReg ( unsigned reg) const

Definition at line 588 of file RegisterInfoPOSIX_arm64.cpp.

References m_fpmr_regnum_collection.

◆ IsGCSPresent()

bool RegisterInfoPOSIX_arm64::IsGCSPresent ( ) const
inline

Definition at line 140 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskGCS, and m_opt_regsets.

◆ IsGCSReg()

bool RegisterInfoPOSIX_arm64::IsGCSReg ( unsigned reg) const

Definition at line 592 of file RegisterInfoPOSIX_arm64.cpp.

References m_gcs_regnum_collection.

◆ IsMTEPresent()

bool RegisterInfoPOSIX_arm64::IsMTEPresent ( ) const
inline

Definition at line 137 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskMTE, and m_opt_regsets.

◆ IsMTEReg()

bool RegisterInfoPOSIX_arm64::IsMTEReg ( unsigned reg) const

Definition at line 576 of file RegisterInfoPOSIX_arm64.cpp.

References m_mte_regnum_collection.

◆ IsPAuthPresent()

bool RegisterInfoPOSIX_arm64::IsPAuthPresent ( ) const
inline

Definition at line 136 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskPAuth, and m_opt_regsets.

◆ IsPAuthReg()

bool RegisterInfoPOSIX_arm64::IsPAuthReg ( unsigned reg) const

Definition at line 572 of file RegisterInfoPOSIX_arm64.cpp.

References pauth_regnum_collection.

◆ IsSMEReg()

bool RegisterInfoPOSIX_arm64::IsSMEReg ( unsigned reg) const

Definition at line 584 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

◆ IsSMERegZA()

bool RegisterInfoPOSIX_arm64::IsSMERegZA ( unsigned reg) const

Definition at line 562 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

◆ IsSMERegZT()

bool RegisterInfoPOSIX_arm64::IsSMERegZT ( unsigned reg) const

Definition at line 566 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

◆ IsSSVEPresent()

bool RegisterInfoPOSIX_arm64::IsSSVEPresent ( ) const
inline

Definition at line 133 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskSSVE, and m_opt_regsets.

◆ IsSVEPReg()

bool RegisterInfoPOSIX_arm64::IsSVEPReg ( unsigned reg) const

Definition at line 554 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsSVEPresent()

bool RegisterInfoPOSIX_arm64::IsSVEPresent ( ) const
inline

Definition at line 132 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskSVE, and m_opt_regsets.

◆ IsSVEReg()

bool RegisterInfoPOSIX_arm64::IsSVEReg ( unsigned reg) const

Definition at line 543 of file RegisterInfoPOSIX_arm64.cpp.

References eVectorQuadwordAArch64, and m_vector_reg_vq.

◆ IsSVERegVG()

bool RegisterInfoPOSIX_arm64::IsSVERegVG ( unsigned reg) const

Definition at line 558 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsSVEZReg()

bool RegisterInfoPOSIX_arm64::IsSVEZReg ( unsigned reg) const

Definition at line 550 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsTLSPresent()

bool RegisterInfoPOSIX_arm64::IsTLSPresent ( ) const
inline

Definition at line 138 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskTLS, and m_opt_regsets.

◆ IsTLSReg()

bool RegisterInfoPOSIX_arm64::IsTLSReg ( unsigned reg) const

Definition at line 580 of file RegisterInfoPOSIX_arm64.cpp.

References m_tls_regnum_collection.

◆ IsZAPresent()

bool RegisterInfoPOSIX_arm64::IsZAPresent ( ) const
inline

Definition at line 134 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskZA, and m_opt_regsets.

◆ IsZTPresent()

bool RegisterInfoPOSIX_arm64::IsZTPresent ( ) const
inline

Definition at line 135 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskZT, and m_opt_regsets.

◆ VectorSizeIsValid()

bool RegisterInfoPOSIX_arm64::VectorSizeIsValid ( uint32_t vq)
inline

Member Data Documentation

◆ m_dynamic_reg_infos

std::vector<lldb_private::RegisterInfo> RegisterInfoPOSIX_arm64::m_dynamic_reg_infos
private

◆ m_dynamic_reg_sets

std::vector<lldb_private::RegisterSet> RegisterInfoPOSIX_arm64::m_dynamic_reg_sets
private

◆ m_fpmr_regnum_collection

std::vector<uint32_t> RegisterInfoPOSIX_arm64::m_fpmr_regnum_collection
private

Definition at line 198 of file RegisterInfoPOSIX_arm64.h.

Referenced by AddRegSetFPMR(), GetFPMROffset(), and IsFPMRReg().

◆ m_gcs_regnum_collection

std::vector<uint32_t> RegisterInfoPOSIX_arm64::m_gcs_regnum_collection
private

Definition at line 199 of file RegisterInfoPOSIX_arm64.h.

Referenced by AddRegSetGCS(), GetGCSOffset(), and IsGCSReg().

◆ m_mte_regnum_collection

std::vector<uint32_t> RegisterInfoPOSIX_arm64::m_mte_regnum_collection
private

Definition at line 195 of file RegisterInfoPOSIX_arm64.h.

Referenced by AddRegSetMTE(), GetMTEOffset(), and IsMTEReg().

◆ m_opt_regsets

◆ m_per_regset_regnum_range

std::map<uint32_t, std::pair<uint32_t, uint32_t> > RegisterInfoPOSIX_arm64::m_per_regset_regnum_range
private

◆ m_per_vq_reg_infos

per_vq_register_infos RegisterInfoPOSIX_arm64::m_per_vq_reg_infos
private

Definition at line 172 of file RegisterInfoPOSIX_arm64.h.

Referenced by ConfigureVectorLengthSVE().

◆ m_register_info_count

uint32_t RegisterInfoPOSIX_arm64::m_register_info_count
private

Definition at line 180 of file RegisterInfoPOSIX_arm64.h.

Referenced by ConfigureVectorLengthSVE(), and GetRegisterCount().

◆ m_register_info_p

◆ m_register_set_count

uint32_t RegisterInfoPOSIX_arm64::m_register_set_count
private

◆ m_register_set_p

const lldb_private::RegisterSet* RegisterInfoPOSIX_arm64::m_register_set_p
private

Definition at line 182 of file RegisterInfoPOSIX_arm64.h.

Referenced by GetRegisterSet().

◆ m_sme_regnum_collection

std::vector<uint32_t> RegisterInfoPOSIX_arm64::m_sme_regnum_collection
private

◆ m_tls_regnum_collection

std::vector<uint32_t> RegisterInfoPOSIX_arm64::m_tls_regnum_collection
private

Definition at line 196 of file RegisterInfoPOSIX_arm64.h.

Referenced by AddRegSetTLS(), GetTLSOffset(), and IsTLSReg().

◆ m_vector_reg_vq

uint32_t RegisterInfoPOSIX_arm64::m_vector_reg_vq = eVectorQuadwordAArch64
private

Definition at line 174 of file RegisterInfoPOSIX_arm64.h.

Referenced by ConfigureVectorLengthSVE(), and IsSVEReg().

◆ m_za_reg_vq

uint32_t RegisterInfoPOSIX_arm64::m_za_reg_vq = eVectorQuadwordAArch64
private

Definition at line 175 of file RegisterInfoPOSIX_arm64.h.

Referenced by ConfigureVectorLengthZA().

◆ pauth_regnum_collection

std::vector<uint32_t> RegisterInfoPOSIX_arm64::pauth_regnum_collection
private

Definition at line 194 of file RegisterInfoPOSIX_arm64.h.

Referenced by AddRegSetPAuth(), GetPAuthOffset(), and IsPAuthReg().


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