LLDB  mainline
Classes | Public Types | 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]
Collaboration diagram for RegisterInfoPOSIX_arm64:
Collaboration graph
[legend]

Classes

struct  DBG
 
struct  EXC
 
struct  FPU
 
struct  GPR
 
struct  VReg
 

Public Types

enum  { GPRegSet = 0, FPRegSet }
 
enum  {
  eRegsetMaskDefault = 0, eRegsetMaskSVE = 1, eRegsetMaskPAuth = 2, eRegsetMaskMTE = 4,
  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::RegisterInfo * GetRegisterInfo () const override
 
uint32_t GetRegisterCount () const override
 
const lldb_private::RegisterSet * GetRegisterSet (size_t reg_set) const override
 
size_t GetRegisterSetCount () const override
 
size_t GetRegisterSetFromRegisterIndex (uint32_t reg_index) const override
 
void AddRegSetPAuth ()
 
void AddRegSetMTE ()
 
uint32_t ConfigureVectorLength (uint32_t sve_vq)
 
bool VectorSizeIsValid (uint32_t vq)
 
bool IsSVEEnabled () const
 
bool IsPAuthEnabled () const
 
bool IsMTEEnabled () 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
 
uint32_t GetRegNumSVEZ0 () const
 
uint32_t GetRegNumSVEFFR () const
 
uint32_t GetRegNumFPCR () const
 
uint32_t GetRegNumFPSR () const
 
uint32_t GetRegNumSVEVG () const
 
uint32_t GetPAuthOffset () const
 
uint32_t GetMTEOffset () 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
 
virtual const lldb_private::RegisterInfo * GetDynamicRegisterInfo (const char *reg_name) const
 
virtual const std::vector< lldb_private::RegisterInfo > * GetDynamicRegisterInfoP () const
 

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
 
const lldb_private::RegisterInfo * m_register_info_p
 
uint32_t m_register_info_count
 
const lldb_private::RegisterSet * m_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::RegisterInfo > m_dynamic_reg_infos
 
std::vector< lldb_private::RegisterSet > m_dynamic_reg_sets
 
std::vector< uint32_tpauth_regnum_collection
 
std::vector< uint32_tm_mte_regnum_collection
 

Additional Inherited Members

- Public Attributes inherited from lldb_private::RegisterInfoInterface
lldb_private::ArchSpec m_target_arch
 

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 132 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 
eRegsetMaskPAuth 
eRegsetMaskMTE 
eRegsetMaskDynamic 

Definition at line 26 of file RegisterInfoPOSIX_arm64.h.

◆ anonymous enum

anonymous enum
Enumerator
eVectorQuadwordAArch64 
eVectorQuadwordAArch64SVE 
eVectorQuadwordAArch64SVEMax 

Definition at line 35 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 ( )

◆ ConfigureVectorLength()

uint32_t RegisterInfoPOSIX_arm64::ConfigureVectorLength ( uint32_t  sve_vq)

◆ GetFPRSize()

size_t RegisterInfoPOSIX_arm64::GetFPRSize ( ) const
overridevirtual

◆ GetGPRSize()

size_t RegisterInfoPOSIX_arm64::GetGPRSize ( ) const
overridevirtual

Implements lldb_private::RegisterInfoInterface.

Definition at line 242 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetMTEOffset()

uint32_t RegisterInfoPOSIX_arm64::GetMTEOffset ( ) const

Definition at line 418 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 414 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 251 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 255 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 408 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumFPSR()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumFPSR ( ) const

Definition at line 410 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumSVEFFR()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEFFR ( ) const

Definition at line 406 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumSVEVG()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEVG ( ) const

Definition at line 412 of file RegisterInfoPOSIX_arm64.cpp.

◆ GetRegNumSVEZ0()

uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEZ0 ( ) const

Definition at line 404 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsMTEEnabled()

bool RegisterInfoPOSIX_arm64::IsMTEEnabled ( ) const
inline

◆ IsMTEReg()

bool RegisterInfoPOSIX_arm64::IsMTEReg ( unsigned  reg) const

Definition at line 398 of file RegisterInfoPOSIX_arm64.cpp.

References m_mte_regnum_collection.

◆ IsPAuthEnabled()

bool RegisterInfoPOSIX_arm64::IsPAuthEnabled ( ) const
inline

◆ IsPAuthReg()

bool RegisterInfoPOSIX_arm64::IsPAuthReg ( unsigned  reg) const

Definition at line 392 of file RegisterInfoPOSIX_arm64.cpp.

References pauth_regnum_collection.

◆ IsSVEEnabled()

bool RegisterInfoPOSIX_arm64::IsSVEEnabled ( ) const
inline

◆ IsSVEPReg()

bool RegisterInfoPOSIX_arm64::IsSVEPReg ( unsigned  reg) const

Definition at line 384 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsSVEReg()

bool RegisterInfoPOSIX_arm64::IsSVEReg ( unsigned  reg) const

Definition at line 373 of file RegisterInfoPOSIX_arm64.cpp.

References eVectorQuadwordAArch64, and m_vector_reg_vq.

◆ IsSVERegVG()

bool RegisterInfoPOSIX_arm64::IsSVERegVG ( unsigned  reg) const

Definition at line 388 of file RegisterInfoPOSIX_arm64.cpp.

◆ IsSVEZReg()

bool RegisterInfoPOSIX_arm64::IsSVEZReg ( unsigned  reg) const

Definition at line 380 of file RegisterInfoPOSIX_arm64.cpp.

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

Referenced by ConfigureVectorLength().

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

Referenced by GetRegisterSet(), and RegisterInfoPOSIX_arm64().

◆ m_vector_reg_vq

uint32_t RegisterInfoPOSIX_arm64::m_vector_reg_vq = eVectorQuadwordAArch64
private

Definition at line 136 of file RegisterInfoPOSIX_arm64.h.

Referenced by ConfigureVectorLength(), and IsSVEReg().

◆ pauth_regnum_collection

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

Definition at line 153 of file RegisterInfoPOSIX_arm64.h.

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


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