LLDB mainline
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Attributes | List of all members
RegisterInfoPOSIX_arm64 Class Reference

#include <RegisterInfoPOSIX_arm64.h>

Inheritance diagram for RegisterInfoPOSIX_arm64:
Inheritance graph
[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 ,
  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)
 
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 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
 
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
 
- Public Member Functions inherited from lldb_private::RegisterInfoAndSetInterface
 RegisterInfoAndSetInterface (const lldb_private::ArchSpec &target_arch)
 
virtual size_t GetFPRSize () const =0
 
virtual const lldb_private::RegisterSetGetRegisterSet (size_t reg_set) const =0
 
virtual size_t GetRegisterSetCount () const =0
 
virtual size_t GetRegisterSetFromRegisterIndex (uint32_t reg_index) const =0
 
- Public Member Functions inherited from lldb_private::RegisterInfoInterface
 RegisterInfoInterface (const lldb_private::ArchSpec &target_arch)
 
virtual ~RegisterInfoInterface ()=default
 
virtual size_t GetGPRSize () const =0
 
virtual const lldb_private::RegisterInfoGetRegisterInfo () const =0
 
virtual uint32_t GetRegisterCount () const =0
 
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
 

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 156 of file RegisterInfoPOSIX_arm64.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
GPRegSet 
FPRegSet 

Definition at line 23 of file RegisterInfoPOSIX_arm64.h.

◆ anonymous enum

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

Definition at line 26 of file RegisterInfoPOSIX_arm64.h.

◆ anonymous enum

anonymous enum
Enumerator
eVectorQuadwordAArch64 
eVectorQuadwordAArch64SVE 
eVectorQuadwordAArch64SVEMax 

Definition at line 39 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

◆ AddRegSetMTE()

void RegisterInfoPOSIX_arm64::AddRegSetMTE ( )

◆ AddRegSetPAuth()

void RegisterInfoPOSIX_arm64::AddRegSetPAuth ( )

◆ AddRegSetSME()

void RegisterInfoPOSIX_arm64::AddRegSetSME ( bool  has_zt)

◆ AddRegSetTLS()

void RegisterInfoPOSIX_arm64::AddRegSetTLS ( bool  has_tpidr2)

◆ ConfigureVectorLengthSVE()

uint32_t RegisterInfoPOSIX_arm64::ConfigureVectorLengthSVE ( uint32_t  sve_vq)

◆ ConfigureVectorLengthZA()

void RegisterInfoPOSIX_arm64::ConfigureVectorLengthZA ( uint32_t  za_vq)

◆ GetFPRSize()

size_t RegisterInfoPOSIX_arm64::GetFPRSize ( ) const
overridevirtual

◆ GetGPRSize()

size_t RegisterInfoPOSIX_arm64::GetGPRSize ( ) const
inlineoverridevirtual

Implements lldb_private::RegisterInfoInterface.

Definition at line 90 of file RegisterInfoPOSIX_arm64.h.

References GetGPRSizeStatic().

◆ GetGPRSizeStatic()

size_t RegisterInfoPOSIX_arm64::GetGPRSizeStatic ( )
static

Definition at line 280 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by GetGPRSize().

◆ GetMTEOffset()

uint32_t RegisterInfoPOSIX_arm64::GetMTEOffset ( ) const

◆ GetPAuthOffset()

uint32_t RegisterInfoPOSIX_arm64::GetPAuthOffset ( ) const

◆ 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 289 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 293 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 537 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumFPSR()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumFPSR ( ) const

Definition at line 539 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumSMESVG()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSMESVG ( ) const

Definition at line 543 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

◆ GetRegNumSVEFFR()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEFFR ( ) const

Definition at line 535 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumSVEVG()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEVG ( ) const

Definition at line 541 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by AddRegSetSME().

◆ GetRegNumSVEZ0()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEZ0 ( ) const

Definition at line 533 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetSMEOffset()

uint32_t RegisterInfoPOSIX_arm64::GetSMEOffset ( ) const

◆ GetTLSOffset()

uint32_t RegisterInfoPOSIX_arm64::GetTLSOffset ( ) const

◆ IsMTEPresent()

bool RegisterInfoPOSIX_arm64::IsMTEPresent ( ) const
inline

◆ IsMTEReg()

bool RegisterInfoPOSIX_arm64::IsMTEReg ( unsigned  reg) const

Definition at line 521 of file RegisterInfoPOSIX_arm64.cpp.

References m_mte_regnum_collection.

◆ IsPAuthPresent()

bool RegisterInfoPOSIX_arm64::IsPAuthPresent ( ) const
inline

◆ IsPAuthReg()

bool RegisterInfoPOSIX_arm64::IsPAuthReg ( unsigned  reg) const

Definition at line 517 of file RegisterInfoPOSIX_arm64.cpp.

References pauth_regnum_collection.

◆ IsSMEReg()

bool RegisterInfoPOSIX_arm64::IsSMEReg ( unsigned  reg) const

Definition at line 529 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

◆ IsSMERegZA()

bool RegisterInfoPOSIX_arm64::IsSMERegZA ( unsigned  reg) const

Definition at line 507 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

◆ IsSMERegZT()

bool RegisterInfoPOSIX_arm64::IsSMERegZT ( unsigned  reg) const

Definition at line 511 of file RegisterInfoPOSIX_arm64.cpp.

References m_sme_regnum_collection.

◆ IsSSVEPresent()

bool RegisterInfoPOSIX_arm64::IsSSVEPresent ( ) const
inline

◆ IsSVEPReg()

bool RegisterInfoPOSIX_arm64::IsSVEPReg ( unsigned  reg) const

Definition at line 499 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsSVEPresent()

bool RegisterInfoPOSIX_arm64::IsSVEPresent ( ) const
inline

◆ IsSVEReg()

bool RegisterInfoPOSIX_arm64::IsSVEReg ( unsigned  reg) const

Definition at line 488 of file RegisterInfoPOSIX_arm64.cpp.

References eVectorQuadwordAArch64, and m_vector_reg_vq.

◆ IsSVERegVG()

bool RegisterInfoPOSIX_arm64::IsSVERegVG ( unsigned  reg) const

Definition at line 503 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsSVEZReg()

bool RegisterInfoPOSIX_arm64::IsSVEZReg ( unsigned  reg) const

Definition at line 495 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsTLSPresent()

bool RegisterInfoPOSIX_arm64::IsTLSPresent ( ) const
inline

◆ IsTLSReg()

bool RegisterInfoPOSIX_arm64::IsTLSReg ( unsigned  reg) const

Definition at line 525 of file RegisterInfoPOSIX_arm64.cpp.

References m_tls_regnum_collection.

◆ IsZAPresent()

bool RegisterInfoPOSIX_arm64::IsZAPresent ( ) const
inline

◆ IsZTPresent()

bool RegisterInfoPOSIX_arm64::IsZTPresent ( ) const
inline

◆ 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_mte_regnum_collection

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

Definition at line 181 of file RegisterInfoPOSIX_arm64.h.

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

◆ m_opt_regsets

lldb_private::Flags RegisterInfoPOSIX_arm64::m_opt_regsets
private

◆ 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 158 of file RegisterInfoPOSIX_arm64.h.

Referenced by ConfigureVectorLengthSVE().

◆ m_register_info_count

uint32_t RegisterInfoPOSIX_arm64::m_register_info_count
private

◆ m_register_info_p

const lldb_private::RegisterInfo* RegisterInfoPOSIX_arm64::m_register_info_p
private

◆ 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 168 of file RegisterInfoPOSIX_arm64.h.

Referenced by GetRegisterSet(), and RegisterInfoPOSIX_arm64().

◆ 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 182 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 160 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 161 of file RegisterInfoPOSIX_arm64.h.

Referenced by ConfigureVectorLengthZA().

◆ pauth_regnum_collection

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

Definition at line 180 of file RegisterInfoPOSIX_arm64.h.

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


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