|
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 , 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::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 () |
| 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::ArchSpec & | GetTargetArchitecture () 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::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 |
| 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 |
Definition at line 20 of file RegisterInfoPOSIX_arm64.h.
|
private |
Definition at line 176 of file RegisterInfoPOSIX_arm64.h.
| anonymous enum |
| Enumerator | |
|---|---|
| eVectorQuadwordAArch64 | |
| eVectorQuadwordAArch64SVE | |
| eVectorQuadwordAArch64SVEMax | |
Definition at line 42 of file RegisterInfoPOSIX_arm64.h.
| 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 |
| Enumerator | |
|---|---|
| GPRegSet | |
| FPRegSet | |
Definition at line 23 of file RegisterInfoPOSIX_arm64.h.
| RegisterInfoPOSIX_arm64::RegisterInfoPOSIX_arm64 | ( | const lldb_private::ArchSpec & | target_arch, |
| lldb_private::Flags | opt_regsets ) |
Definition at line 239 of file RegisterInfoPOSIX_arm64.cpp.
References lldb_private::ArchSpec::GetMachine(), m_opt_regsets, and lldb_private::RegisterInfoAndSetInterface::RegisterInfoAndSetInterface().
| void RegisterInfoPOSIX_arm64::AddRegSetFPMR | ( | ) |
Definition at line 442 of file RegisterInfoPOSIX_arm64.cpp.
References lldb::eRegisterKindLLDB, g_reg_set_fpmr_arm64, g_register_infos_fpmr, m_dynamic_reg_infos, m_dynamic_reg_sets, m_fpmr_regnum_collection, m_per_regset_regnum_range, and m_register_set_count.
| void RegisterInfoPOSIX_arm64::AddRegSetGCS | ( | ) |
Definition at line 457 of file RegisterInfoPOSIX_arm64.cpp.
References lldb::eRegisterKindLLDB, g_reg_set_gcs_arm64, g_register_infos_gcs, k_num_gcs_register, m_dynamic_reg_infos, m_dynamic_reg_sets, m_gcs_regnum_collection, m_per_regset_regnum_range, and m_register_set_count.
| void RegisterInfoPOSIX_arm64::AddRegSetMTE | ( | ) |
Definition at line 365 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.
| void RegisterInfoPOSIX_arm64::AddRegSetPAuth | ( | ) |
Definition at line 347 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.
| void RegisterInfoPOSIX_arm64::AddRegSetPOE | ( | ) |
Definition at line 475 of file RegisterInfoPOSIX_arm64.cpp.
References lldb::eRegisterKindLLDB, g_reg_set_poe_arm64, g_register_infos_poe, m_dynamic_reg_infos, m_dynamic_reg_sets, m_per_regset_regnum_range, m_poe_regnum_collection, and m_register_set_count.
| void RegisterInfoPOSIX_arm64::AddRegSetSME | ( | bool | has_zt | ) |
Definition at line 400 of file RegisterInfoPOSIX_arm64.cpp.
References lldb::eRegisterKindLLDB, g_reg_set_sme_arm64, g_register_infos_sme, g_register_infos_sme2, GetRegNumSMESVG(), GetRegNumSVEVG(), k_num_sme_register, LLDB_INVALID_REGNUM, m_dynamic_reg_infos, m_dynamic_reg_sets, m_per_regset_regnum_range, m_register_set_count, m_sme_regnum_collection, and lldb_private::RegisterSet::num_registers.
| void RegisterInfoPOSIX_arm64::AddRegSetTLS | ( | bool | has_tpidr2 | ) |
Definition at line 380 of file RegisterInfoPOSIX_arm64.cpp.
References lldb::eRegisterKindLLDB, g_register_infos_tls, m_dynamic_reg_infos, m_dynamic_reg_sets, m_per_regset_regnum_range, m_register_set_count, and m_tls_regnum_collection.
| uint32_t RegisterInfoPOSIX_arm64::ConfigureVectorLengthSVE | ( | uint32_t | sve_vq | ) |
Definition at line 490 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().
| void RegisterInfoPOSIX_arm64::ConfigureVectorLengthZA | ( | uint32_t | za_vq | ) |
Definition at line 554 of file RegisterInfoPOSIX_arm64.cpp.
References lldb_private::RegisterInfo::byte_size, m_register_info_p, m_sme_regnum_collection, m_za_reg_vq, and VectorSizeIsValid().
| 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.
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 317 of file RegisterInfoPOSIX_arm64.cpp.
| 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.
|
inlineoverridevirtual |
Implements lldb_private::RegisterInfoInterface.
Definition at line 95 of file RegisterInfoPOSIX_arm64.h.
References GetGPRSizeStatic().
|
static |
Definition at line 313 of file RegisterInfoPOSIX_arm64.cpp.
Referenced by GetGPRSize().
| 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.
| uint32_t RegisterInfoPOSIX_arm64::GetPAuthOffset | ( | ) | const |
Definition at line 639 of file RegisterInfoPOSIX_arm64.cpp.
References m_register_info_p, and pauth_regnum_collection.
| 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.
|
overridevirtual |
Implements lldb_private::RegisterInfoInterface.
Definition at line 309 of file RegisterInfoPOSIX_arm64.cpp.
References m_register_info_count.
|
overridevirtual |
Implements lldb_private::RegisterInfoInterface.
Definition at line 322 of file RegisterInfoPOSIX_arm64.cpp.
References m_register_info_p.
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 341 of file RegisterInfoPOSIX_arm64.cpp.
References GetRegisterSetCount(), and m_register_set_p.
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 326 of file RegisterInfoPOSIX_arm64.cpp.
References m_register_set_count.
Referenced by GetRegisterSet().
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 330 of file RegisterInfoPOSIX_arm64.cpp.
References LLDB_INVALID_REGNUM, and m_per_regset_regnum_range.
| uint32_t RegisterInfoPOSIX_arm64::GetRegNumFPCR | ( | ) | const |
Definition at line 629 of file RegisterInfoPOSIX_arm64.cpp.
| uint32_t RegisterInfoPOSIX_arm64::GetRegNumFPSR | ( | ) | const |
Definition at line 631 of file RegisterInfoPOSIX_arm64.cpp.
| uint32_t RegisterInfoPOSIX_arm64::GetRegNumSMESVG | ( | ) | const |
Definition at line 635 of file RegisterInfoPOSIX_arm64.cpp.
References m_sme_regnum_collection.
Referenced by AddRegSetSME().
| uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEFFR | ( | ) | const |
Definition at line 627 of file RegisterInfoPOSIX_arm64.cpp.
| uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEVG | ( | ) | const |
Definition at line 633 of file RegisterInfoPOSIX_arm64.cpp.
Referenced by AddRegSetSME().
| uint32_t RegisterInfoPOSIX_arm64::GetRegNumSVEZ0 | ( | ) | const |
Definition at line 625 of file RegisterInfoPOSIX_arm64.cpp.
| 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.
| 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.
|
inline |
Definition at line 142 of file RegisterInfoPOSIX_arm64.h.
References eRegsetMaskFPMR, and m_opt_regsets.
| bool RegisterInfoPOSIX_arm64::IsFPMRReg | ( | unsigned | reg | ) | const |
Definition at line 613 of file RegisterInfoPOSIX_arm64.cpp.
References m_fpmr_regnum_collection.
|
inline |
Definition at line 143 of file RegisterInfoPOSIX_arm64.h.
References eRegsetMaskGCS, and m_opt_regsets.
| bool RegisterInfoPOSIX_arm64::IsGCSReg | ( | unsigned | reg | ) | const |
Definition at line 617 of file RegisterInfoPOSIX_arm64.cpp.
References m_gcs_regnum_collection.
|
inline |
Definition at line 140 of file RegisterInfoPOSIX_arm64.h.
References eRegsetMaskMTE, and m_opt_regsets.
| bool RegisterInfoPOSIX_arm64::IsMTEReg | ( | unsigned | reg | ) | const |
Definition at line 601 of file RegisterInfoPOSIX_arm64.cpp.
References m_mte_regnum_collection.
|
inline |
Definition at line 139 of file RegisterInfoPOSIX_arm64.h.
References eRegsetMaskPAuth, and m_opt_regsets.
| bool RegisterInfoPOSIX_arm64::IsPAuthReg | ( | unsigned | reg | ) | const |
Definition at line 597 of file RegisterInfoPOSIX_arm64.cpp.
References pauth_regnum_collection.
|
inline |
Definition at line 144 of file RegisterInfoPOSIX_arm64.h.
References eRegsetMaskPOE, and m_opt_regsets.
| bool RegisterInfoPOSIX_arm64::IsPOEReg | ( | unsigned | reg | ) | const |
Definition at line 621 of file RegisterInfoPOSIX_arm64.cpp.
References m_poe_regnum_collection.
| bool RegisterInfoPOSIX_arm64::IsSMEReg | ( | unsigned | reg | ) | const |
Definition at line 609 of file RegisterInfoPOSIX_arm64.cpp.
References m_sme_regnum_collection.
| bool RegisterInfoPOSIX_arm64::IsSMERegZA | ( | unsigned | reg | ) | const |
Definition at line 587 of file RegisterInfoPOSIX_arm64.cpp.
References m_sme_regnum_collection.
| bool RegisterInfoPOSIX_arm64::IsSMERegZT | ( | unsigned | reg | ) | const |
Definition at line 591 of file RegisterInfoPOSIX_arm64.cpp.
References m_sme_regnum_collection.
|
inline |
Definition at line 136 of file RegisterInfoPOSIX_arm64.h.
References eRegsetMaskSSVE, and m_opt_regsets.
| bool RegisterInfoPOSIX_arm64::IsSVEPReg | ( | unsigned | reg | ) | const |
Definition at line 579 of file RegisterInfoPOSIX_arm64.cpp.
|
inline |
Definition at line 135 of file RegisterInfoPOSIX_arm64.h.
References eRegsetMaskSVE, and m_opt_regsets.
| bool RegisterInfoPOSIX_arm64::IsSVEReg | ( | unsigned | reg | ) | const |
Definition at line 568 of file RegisterInfoPOSIX_arm64.cpp.
References eVectorQuadwordAArch64, and m_vector_reg_vq.
| bool RegisterInfoPOSIX_arm64::IsSVERegVG | ( | unsigned | reg | ) | const |
Definition at line 583 of file RegisterInfoPOSIX_arm64.cpp.
| bool RegisterInfoPOSIX_arm64::IsSVEZReg | ( | unsigned | reg | ) | const |
Definition at line 575 of file RegisterInfoPOSIX_arm64.cpp.
|
inline |
Definition at line 141 of file RegisterInfoPOSIX_arm64.h.
References eRegsetMaskTLS, and m_opt_regsets.
| bool RegisterInfoPOSIX_arm64::IsTLSReg | ( | unsigned | reg | ) | const |
Definition at line 605 of file RegisterInfoPOSIX_arm64.cpp.
References m_tls_regnum_collection.
|
inline |
Definition at line 137 of file RegisterInfoPOSIX_arm64.h.
References eRegsetMaskZA, and m_opt_regsets.
|
inline |
Definition at line 138 of file RegisterInfoPOSIX_arm64.h.
References eRegsetMaskZT, and m_opt_regsets.
|
inline |
Definition at line 128 of file RegisterInfoPOSIX_arm64.h.
References eVectorQuadwordAArch64, and eVectorQuadwordAArch64SVEMax.
Referenced by ConfigureVectorLengthSVE(), and ConfigureVectorLengthZA().
|
private |
Definition at line 197 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetFPMR(), AddRegSetGCS(), AddRegSetMTE(), AddRegSetPAuth(), AddRegSetPOE(), AddRegSetSME(), and AddRegSetTLS().
|
private |
Definition at line 198 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetFPMR(), AddRegSetGCS(), AddRegSetMTE(), AddRegSetPAuth(), AddRegSetPOE(), AddRegSetSME(), and AddRegSetTLS().
|
private |
Definition at line 204 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetFPMR(), GetFPMROffset(), and IsFPMRReg().
|
private |
Definition at line 205 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetGCS(), GetGCSOffset(), and IsGCSReg().
|
private |
Definition at line 201 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetMTE(), GetMTEOffset(), and IsMTEReg().
|
private |
Definition at line 195 of file RegisterInfoPOSIX_arm64.h.
Referenced by IsFPMRPresent(), IsGCSPresent(), IsMTEPresent(), IsPAuthPresent(), IsPOEPresent(), IsSSVEPresent(), IsSVEPresent(), IsTLSPresent(), IsZAPresent(), IsZTPresent(), and RegisterInfoPOSIX_arm64().
|
private |
Definition at line 193 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetFPMR(), AddRegSetGCS(), AddRegSetMTE(), AddRegSetPAuth(), AddRegSetPOE(), AddRegSetSME(), AddRegSetTLS(), and GetRegisterSetFromRegisterIndex().
|
private |
Definition at line 178 of file RegisterInfoPOSIX_arm64.h.
Referenced by ConfigureVectorLengthSVE().
|
private |
Definition at line 206 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetPOE(), GetPOEOffset(), and IsPOEReg().
|
private |
Definition at line 186 of file RegisterInfoPOSIX_arm64.h.
Referenced by ConfigureVectorLengthSVE(), and GetRegisterCount().
|
private |
Definition at line 185 of file RegisterInfoPOSIX_arm64.h.
Referenced by ConfigureVectorLengthSVE(), ConfigureVectorLengthZA(), GetFPMROffset(), GetGCSOffset(), GetMTEOffset(), GetPAuthOffset(), GetPOEOffset(), GetRegisterInfo(), GetSMEOffset(), and GetTLSOffset().
|
private |
Definition at line 189 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetFPMR(), AddRegSetGCS(), AddRegSetMTE(), AddRegSetPAuth(), AddRegSetPOE(), AddRegSetSME(), AddRegSetTLS(), and GetRegisterSetCount().
|
private |
Definition at line 188 of file RegisterInfoPOSIX_arm64.h.
Referenced by GetRegisterSet().
|
private |
Definition at line 203 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetSME(), ConfigureVectorLengthZA(), GetRegNumSMESVG(), GetSMEOffset(), IsSMEReg(), IsSMERegZA(), and IsSMERegZT().
|
private |
Definition at line 202 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetTLS(), GetTLSOffset(), and IsTLSReg().
|
private |
Definition at line 180 of file RegisterInfoPOSIX_arm64.h.
Referenced by ConfigureVectorLengthSVE(), and IsSVEReg().
|
private |
Definition at line 181 of file RegisterInfoPOSIX_arm64.h.
Referenced by ConfigureVectorLengthZA().
|
private |
Definition at line 200 of file RegisterInfoPOSIX_arm64.h.
Referenced by AddRegSetPAuth(), GetPAuthOffset(), and IsPAuthReg().