LLDB
mainline
|
#include <RegisterInfoPOSIX_arm64.h>
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 |
![]() | |
RegisterInfoAndSetInterface (const lldb_private::ArchSpec &target_arch) | |
![]() | |
RegisterInfoInterface (const lldb_private::ArchSpec &target_arch) | |
virtual | ~RegisterInfoInterface ()=default |
virtual uint32_t | GetUserRegisterCount () const |
const lldb_private::ArchSpec & | GetTargetArchitecture () const |
virtual const lldb_private::RegisterInfo * | GetDynamicRegisterInfo (const char *reg_name) const |
virtual const std::vector< lldb_private::RegisterInfo > * | GetDynamicRegisterInfoP () 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 |
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_t > | pauth_regnum_collection |
std::vector< uint32_t > | m_mte_regnum_collection |
Definition at line 20 of file RegisterInfoPOSIX_arm64.h.
|
private |
Definition at line 135 of file RegisterInfoPOSIX_arm64.h.
anonymous enum |
Enumerator | |
---|---|
GPRegSet | |
FPRegSet |
Definition at line 23 of file RegisterInfoPOSIX_arm64.h.
anonymous enum |
Enumerator | |
---|---|
eRegsetMaskDefault | |
eRegsetMaskSVE | |
eRegsetMaskPAuth | |
eRegsetMaskMTE | |
eRegsetMaskDynamic |
Definition at line 26 of file RegisterInfoPOSIX_arm64.h.
anonymous enum |
Enumerator | |
---|---|
eVectorQuadwordAArch64 | |
eVectorQuadwordAArch64SVE | |
eVectorQuadwordAArch64SVEMax |
Definition at line 35 of file RegisterInfoPOSIX_arm64.h.
RegisterInfoPOSIX_arm64::RegisterInfoPOSIX_arm64 | ( | const lldb_private::ArchSpec & | target_arch, |
lldb_private::Flags | opt_regsets | ||
) |
Definition at line 192 of file RegisterInfoPOSIX_arm64.cpp.
References AddRegSetMTE(), AddRegSetPAuth(), lldb_private::Flags::AllSet(), lldb_private::Flags::AnySet(), eRegsetMaskDynamic, eRegsetMaskMTE, eRegsetMaskPAuth, eRegsetMaskSVE, FPRegSet, g_reg_sets_arm64, lldb_private::ArchSpec::GetMachine(), GPRegSet, k_num_register_sets_default, m_dynamic_reg_infos, m_dynamic_reg_sets, m_opt_regsets, m_per_regset_regnum_range, m_register_info_count, m_register_info_p, m_register_set_count, and m_register_set_p.
void RegisterInfoPOSIX_arm64::AddRegSetMTE | ( | ) |
Definition at line 300 of file RegisterInfoPOSIX_arm64.cpp.
References lldb::eRegisterKindLLDB, g_reg_set_mte_arm64, g_register_infos_mte, m_dynamic_reg_infos, m_dynamic_reg_sets, m_mte_regnum_collection, m_per_regset_regnum_range, and m_register_set_count.
Referenced by RegisterInfoPOSIX_arm64().
void RegisterInfoPOSIX_arm64::AddRegSetPAuth | ( | ) |
Definition at line 282 of file RegisterInfoPOSIX_arm64.cpp.
References lldb::eRegisterKindLLDB, g_reg_set_pauth_arm64, g_register_infos_pauth, k_num_pauth_register, m_dynamic_reg_infos, m_dynamic_reg_sets, m_per_regset_regnum_range, m_register_set_count, and pauth_regnum_collection.
Referenced by RegisterInfoPOSIX_arm64().
Definition at line 315 of file RegisterInfoPOSIX_arm64.cpp.
References eVectorQuadwordAArch64, eVectorQuadwordAArch64SVE, fpu_s0, m_per_vq_reg_infos, m_register_info_count, m_register_info_p, m_vector_reg_vq, SVE_QUAD_WORD_BYTES, SVE_REGS_DEFAULT_OFFSET_LINUX, and VectorSizeIsValid().
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 252 of file RegisterInfoPOSIX_arm64.cpp.
|
inlineoverridevirtual |
Implements lldb_private::RegisterInfoInterface.
Definition at line 86 of file RegisterInfoPOSIX_arm64.h.
References GetGPRSizeStatic().
|
static |
Definition at line 248 of file RegisterInfoPOSIX_arm64.cpp.
Referenced by GetGPRSize().
uint32_t RegisterInfoPOSIX_arm64::GetMTEOffset | ( | ) | const |
Definition at line 420 of file RegisterInfoPOSIX_arm64.cpp.
References m_mte_regnum_collection, and m_register_info_p.
uint32_t RegisterInfoPOSIX_arm64::GetPAuthOffset | ( | ) | const |
Definition at line 416 of file RegisterInfoPOSIX_arm64.cpp.
References m_register_info_p, and pauth_regnum_collection.
|
overridevirtual |
Implements lldb_private::RegisterInfoInterface.
Definition at line 244 of file RegisterInfoPOSIX_arm64.cpp.
References m_register_info_count.
|
overridevirtual |
Implements lldb_private::RegisterInfoInterface.
Definition at line 257 of file RegisterInfoPOSIX_arm64.cpp.
References m_register_info_p.
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 276 of file RegisterInfoPOSIX_arm64.cpp.
References GetRegisterSetCount(), and m_register_set_p.
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 261 of file RegisterInfoPOSIX_arm64.cpp.
References m_register_set_count.
Referenced by GetRegisterSet().
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 265 of file RegisterInfoPOSIX_arm64.cpp.
References LLDB_INVALID_REGNUM, and m_per_regset_regnum_range.
uint32_t RegisterInfoPOSIX_arm64::GetRegNumFPCR | ( | ) | const |
Definition at line 410 of file RegisterInfoPOSIX_arm64.cpp.
uint32_t RegisterInfoPOSIX_arm64::GetRegNumFPSR | ( | ) | const |
Definition at line 412 of file RegisterInfoPOSIX_arm64.cpp.
uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEFFR | ( | ) | const |
Definition at line 408 of file RegisterInfoPOSIX_arm64.cpp.
uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEVG | ( | ) | const |
Definition at line 414 of file RegisterInfoPOSIX_arm64.cpp.
uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEZ0 | ( | ) | const |
Definition at line 406 of file RegisterInfoPOSIX_arm64.cpp.
|
inline |
Definition at line 116 of file RegisterInfoPOSIX_arm64.h.
References lldb_private::Flags::AnySet(), eRegsetMaskMTE, and m_opt_regsets.
bool RegisterInfoPOSIX_arm64::IsMTEReg | ( | unsigned | reg | ) | const |
Definition at line 402 of file RegisterInfoPOSIX_arm64.cpp.
References m_mte_regnum_collection.
|
inline |
Definition at line 115 of file RegisterInfoPOSIX_arm64.h.
References lldb_private::Flags::AnySet(), eRegsetMaskPAuth, and m_opt_regsets.
bool RegisterInfoPOSIX_arm64::IsPAuthReg | ( | unsigned | reg | ) | const |
Definition at line 398 of file RegisterInfoPOSIX_arm64.cpp.
References pauth_regnum_collection.
|
inline |
Definition at line 114 of file RegisterInfoPOSIX_arm64.h.
References lldb_private::Flags::AnySet(), eRegsetMaskSVE, and m_opt_regsets.
bool RegisterInfoPOSIX_arm64::IsSVEPReg | ( | unsigned | reg | ) | const |
Definition at line 390 of file RegisterInfoPOSIX_arm64.cpp.
bool RegisterInfoPOSIX_arm64::IsSVEReg | ( | unsigned | reg | ) | const |
Definition at line 379 of file RegisterInfoPOSIX_arm64.cpp.
References eVectorQuadwordAArch64, and m_vector_reg_vq.
bool RegisterInfoPOSIX_arm64::IsSVERegVG | ( | unsigned | reg | ) | const |
Definition at line 394 of file RegisterInfoPOSIX_arm64.cpp.
bool RegisterInfoPOSIX_arm64::IsSVEZReg | ( | unsigned | reg | ) | const |
Definition at line 386 of file RegisterInfoPOSIX_arm64.cpp.
|
inline |
Definition at line 107 of file RegisterInfoPOSIX_arm64.h.
References eVectorQuadwordAArch64, and eVectorQuadwordAArch64SVEMax.
Referenced by ConfigureVectorLength().
|
private |
Definition at line 153 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetMTE(), AddRegSetPAuth(), and RegisterInfoPOSIX_arm64().
|
private |
Definition at line 154 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetMTE(), AddRegSetPAuth(), and RegisterInfoPOSIX_arm64().
|
private |
Definition at line 157 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetMTE(), GetMTEOffset(), and IsMTEReg().
|
private |
Definition at line 151 of file RegisterInfoPOSIX_arm64.h.
Referenced by IsMTEEnabled(), IsPAuthEnabled(), IsSVEEnabled(), and RegisterInfoPOSIX_arm64().
|
private |
Definition at line 149 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetMTE(), AddRegSetPAuth(), GetRegisterSetFromRegisterIndex(), and RegisterInfoPOSIX_arm64().
|
private |
Definition at line 137 of file RegisterInfoPOSIX_arm64.h.
Referenced by ConfigureVectorLength().
|
private |
Definition at line 142 of file RegisterInfoPOSIX_arm64.h.
Referenced by ConfigureVectorLength(), GetRegisterCount(), and RegisterInfoPOSIX_arm64().
|
private |
Definition at line 141 of file RegisterInfoPOSIX_arm64.h.
Referenced by ConfigureVectorLength(), GetMTEOffset(), GetPAuthOffset(), GetRegisterInfo(), and RegisterInfoPOSIX_arm64().
|
private |
Definition at line 145 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetMTE(), AddRegSetPAuth(), GetRegisterSetCount(), and RegisterInfoPOSIX_arm64().
|
private |
Definition at line 144 of file RegisterInfoPOSIX_arm64.h.
Referenced by GetRegisterSet(), and RegisterInfoPOSIX_arm64().
|
private |
Definition at line 139 of file RegisterInfoPOSIX_arm64.h.
Referenced by ConfigureVectorLength(), and IsSVEReg().
|
private |
Definition at line 156 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetPAuth(), GetPAuthOffset(), and IsPAuthReg().