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 , eRegsetMaskPOE = 512 , 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 ()
void AddRegSetPOE ()
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 IsPOEPresent () 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
bool IsPOEReg (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
uint32_t GetPOEOffset () 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
std::vector< uint32_t > m_poe_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 176 of file RegisterInfoPOSIX_arm64.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
eVectorQuadwordAArch64 
eVectorQuadwordAArch64SVE 
eVectorQuadwordAArch64SVEMax 

Definition at line 42 of file RegisterInfoPOSIX_arm64.h.

◆ anonymous enum

anonymous enum
Enumerator
eRegsetMaskDefault 
eRegsetMaskSVE 
eRegsetMaskSSVE 
eRegsetMaskPAuth 
eRegsetMaskMTE 
eRegsetMaskTLS 
eRegsetMaskZA 
eRegsetMaskZT 
eRegsetMaskFPMR 
eRegsetMaskGCS 
eRegsetMaskPOE 
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.

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()

◆ AddRegSetPOE()

◆ AddRegSetSME()

◆ AddRegSetTLS()

◆ ConfigureVectorLengthSVE()

◆ ConfigureVectorLengthZA()

void RegisterInfoPOSIX_arm64::ConfigureVectorLengthZA ( uint32_t za_vq)

◆ GetFPMROffset()

uint32_t RegisterInfoPOSIX_arm64::GetFPMROffset ( ) const

Definition at line 655 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 659 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 95 of file RegisterInfoPOSIX_arm64.h.

References GetGPRSizeStatic().

◆ GetGPRSizeStatic()

size_t RegisterInfoPOSIX_arm64::GetGPRSizeStatic ( )
static

Definition at line 313 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by GetGPRSize().

◆ GetMTEOffset()

uint32_t RegisterInfoPOSIX_arm64::GetMTEOffset ( ) const

Definition at line 643 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 639 of file RegisterInfoPOSIX_arm64.cpp.

References m_register_info_p, and pauth_regnum_collection.

◆ GetPOEOffset()

uint32_t RegisterInfoPOSIX_arm64::GetPOEOffset ( ) const

Definition at line 663 of file RegisterInfoPOSIX_arm64.cpp.

References m_poe_regnum_collection, and m_register_info_p.

◆ 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 322 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 326 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 629 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumFPSR()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumFPSR ( ) const

Definition at line 631 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumSMESVG()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSMESVG ( ) const

Definition at line 635 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

Referenced by AddRegSetSME().

◆ GetRegNumSVEFFR()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEFFR ( ) const

Definition at line 627 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumSVEVG()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEVG ( ) const

Definition at line 633 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by AddRegSetSME().

◆ GetRegNumSVEZ0()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEZ0 ( ) const

Definition at line 625 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetSMEOffset()

uint32_t RegisterInfoPOSIX_arm64::GetSMEOffset ( ) const

Definition at line 651 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 647 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 142 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskFPMR, and m_opt_regsets.

◆ IsFPMRReg()

bool RegisterInfoPOSIX_arm64::IsFPMRReg ( unsigned reg) const

Definition at line 613 of file RegisterInfoPOSIX_arm64.cpp.

References m_fpmr_regnum_collection.

◆ IsGCSPresent()

bool RegisterInfoPOSIX_arm64::IsGCSPresent ( ) const
inline

Definition at line 143 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskGCS, and m_opt_regsets.

◆ IsGCSReg()

bool RegisterInfoPOSIX_arm64::IsGCSReg ( unsigned reg) const

Definition at line 617 of file RegisterInfoPOSIX_arm64.cpp.

References m_gcs_regnum_collection.

◆ IsMTEPresent()

bool RegisterInfoPOSIX_arm64::IsMTEPresent ( ) const
inline

Definition at line 140 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskMTE, and m_opt_regsets.

◆ IsMTEReg()

bool RegisterInfoPOSIX_arm64::IsMTEReg ( unsigned reg) const

Definition at line 601 of file RegisterInfoPOSIX_arm64.cpp.

References m_mte_regnum_collection.

◆ IsPAuthPresent()

bool RegisterInfoPOSIX_arm64::IsPAuthPresent ( ) const
inline

Definition at line 139 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskPAuth, and m_opt_regsets.

◆ IsPAuthReg()

bool RegisterInfoPOSIX_arm64::IsPAuthReg ( unsigned reg) const

Definition at line 597 of file RegisterInfoPOSIX_arm64.cpp.

References pauth_regnum_collection.

◆ IsPOEPresent()

bool RegisterInfoPOSIX_arm64::IsPOEPresent ( ) const
inline

Definition at line 144 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskPOE, and m_opt_regsets.

◆ IsPOEReg()

bool RegisterInfoPOSIX_arm64::IsPOEReg ( unsigned reg) const

Definition at line 621 of file RegisterInfoPOSIX_arm64.cpp.

References m_poe_regnum_collection.

◆ IsSMEReg()

bool RegisterInfoPOSIX_arm64::IsSMEReg ( unsigned reg) const

Definition at line 609 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

◆ IsSMERegZA()

bool RegisterInfoPOSIX_arm64::IsSMERegZA ( unsigned reg) const

Definition at line 587 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

◆ IsSMERegZT()

bool RegisterInfoPOSIX_arm64::IsSMERegZT ( unsigned reg) const

Definition at line 591 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

◆ IsSSVEPresent()

bool RegisterInfoPOSIX_arm64::IsSSVEPresent ( ) const
inline

Definition at line 136 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskSSVE, and m_opt_regsets.

◆ IsSVEPReg()

bool RegisterInfoPOSIX_arm64::IsSVEPReg ( unsigned reg) const

Definition at line 579 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsSVEPresent()

bool RegisterInfoPOSIX_arm64::IsSVEPresent ( ) const
inline

Definition at line 135 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskSVE, and m_opt_regsets.

◆ IsSVEReg()

bool RegisterInfoPOSIX_arm64::IsSVEReg ( unsigned reg) const

Definition at line 568 of file RegisterInfoPOSIX_arm64.cpp.

References eVectorQuadwordAArch64, and m_vector_reg_vq.

◆ IsSVERegVG()

bool RegisterInfoPOSIX_arm64::IsSVERegVG ( unsigned reg) const

Definition at line 583 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsSVEZReg()

bool RegisterInfoPOSIX_arm64::IsSVEZReg ( unsigned reg) const

Definition at line 575 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsTLSPresent()

bool RegisterInfoPOSIX_arm64::IsTLSPresent ( ) const
inline

Definition at line 141 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskTLS, and m_opt_regsets.

◆ IsTLSReg()

bool RegisterInfoPOSIX_arm64::IsTLSReg ( unsigned reg) const

Definition at line 605 of file RegisterInfoPOSIX_arm64.cpp.

References m_tls_regnum_collection.

◆ IsZAPresent()

bool RegisterInfoPOSIX_arm64::IsZAPresent ( ) const
inline

Definition at line 137 of file RegisterInfoPOSIX_arm64.h.

References eRegsetMaskZA, and m_opt_regsets.

◆ IsZTPresent()

bool RegisterInfoPOSIX_arm64::IsZTPresent ( ) const
inline

Definition at line 138 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 204 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 205 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 201 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 178 of file RegisterInfoPOSIX_arm64.h.

Referenced by ConfigureVectorLengthSVE().

◆ m_poe_regnum_collection

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

Definition at line 206 of file RegisterInfoPOSIX_arm64.h.

Referenced by AddRegSetPOE(), GetPOEOffset(), and IsPOEReg().

◆ m_register_info_count

uint32_t RegisterInfoPOSIX_arm64::m_register_info_count
private

Definition at line 186 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 188 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 202 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 180 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 181 of file RegisterInfoPOSIX_arm64.h.

Referenced by ConfigureVectorLengthZA().

◆ pauth_regnum_collection

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

Definition at line 200 of file RegisterInfoPOSIX_arm64.h.

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


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