|
LLDB mainline
|
#include <RegisterInfoPOSIXDynamic_riscv32.h>
Static Public Member Functions | |
| static void | BuildCSRegInfos (llvm::ArrayRef< std::string > features, llvm::SmallVectorImpl< lldb_private::RegisterInfo > &cs_reg_infos) |
| Builds CS register information entries for 32-bit RISC-V debug targets on the basis of the enabled ISA extensions. | |
Static Private Member Functions | |
| static void | ConfigureCSRegInfos (llvm::StringRef feature, llvm::SmallVectorImpl< lldb_private::RegisterInfo > &cs_reg_infos) |
| Applies the CS register information patch set for a given feature. | |
Private Attributes | |
| lldb_private::DynamicRegisterInfo | m_dyn_reg_infos |
| const lldb_private::ArchSpec | m_target_arch |
Definition at line 20 of file RegisterInfoPOSIXDynamic_riscv32.h.
| RegisterInfoPOSIXDynamic_riscv32::RegisterInfoPOSIXDynamic_riscv32 | ( | const lldb_private::ArchSpec & | target_arch | ) |
Definition at line 25 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References m_target_arch, and lldb_private::RegisterInfoAndSetInterface::RegisterInfoAndSetInterface().
|
static |
Builds CS register information entries for 32-bit RISC-V debug targets on the basis of the enabled ISA extensions.
Construct a baseline CSR container, cs_reg_infos , and apply extension patches in a deterministic order so that the final CSR metadata depends only on features and conflict resolution is predictable.
Definition at line 97 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References lldb_private::RegisterInfo::alt_name, lldb_private::RegisterInfo::byte_offset, lldb_private::RegisterInfo::byte_size, ConfigureCSRegInfos(), csr_first_riscv, csr_last_riscv, riscv_dwarf::dwarf_first_csr, lldb::eEncodingUint, lldb::eFormatHex, lldb_private::RegisterInfo::encoding, lldb::eRegisterKindDWARF, lldb::eRegisterKindEHFrame, lldb::eRegisterKindGeneric, lldb::eRegisterKindLLDB, lldb::eRegisterKindProcessPlugin, lldb_private::RegisterInfo::format, lldb_private::ConstString::GetCString(), lldb_private::RegisterInfo::invalidate_regs, k_num_csr_registers, lldb_private::RegisterInfo::kinds, LLDB_INVALID_REGNUM, lldb_private::RegisterInfo::name, lldb_private::RegisterInfo::register_type, and lldb_private::RegisterInfo::value_regs.
|
staticprivate |
Applies the CS register information patch set for a given feature.
Override a baseline CSR metadata container, cs_reg_infos , with feature-specific definitions by looking up the patch list for feature and updating only the affected CSR entries in-place.
Definition at line 146 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References csr_first_riscv, csr_last_riscv, and lldb::eRegisterKindLLDB.
Referenced by BuildCSRegInfos().
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 44 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References GetRegisterSetCount(), m_dyn_reg_infos, lldb_private::RegisterSet::name, and lldb_private::RegisterSet::num_registers.
|
overridevirtual |
Implements lldb_private::RegisterInfoInterface.
Definition at line 34 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References GetRegisterSetCount(), m_dyn_reg_infos, lldb_private::RegisterSet::name, and lldb_private::RegisterSet::num_registers.
|
overridevirtual |
Implements lldb_private::RegisterInfoInterface.
Definition at line 30 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References m_dyn_reg_infos.
|
overridevirtual |
Implements lldb_private::RegisterInfoInterface.
Definition at line 55 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References m_dyn_reg_infos.
| const lldb_private::RegisterInfo * RegisterInfoPOSIXDynamic_riscv32::GetRegisterInfo | ( | llvm::StringRef | reg_name | ) | const |
Definition at line 92 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References m_dyn_reg_infos.
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 80 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References GetRegisterSetCount(), and m_dyn_reg_infos.
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 62 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References m_dyn_reg_infos.
Referenced by GetFPRSize(), GetGPRSize(), and GetRegisterSet().
|
overridevirtual |
Implements lldb_private::RegisterInfoAndSetInterface.
Definition at line 66 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References LLDB_INVALID_REGNUM, m_dyn_reg_infos, lldb_private::RegisterSet::num_registers, and lldb_private::RegisterSet::registers.
| size_t RegisterInfoPOSIXDynamic_riscv32::SetRegisterInfo | ( | std::vector< lldb_private::DynamicRegisterInfo::Register > | regs | ) |
Definition at line 86 of file RegisterInfoPOSIXDynamic_riscv32.cpp.
References m_dyn_reg_infos, and m_target_arch.
|
private |
Definition at line 57 of file RegisterInfoPOSIXDynamic_riscv32.h.
Referenced by GetFPRSize(), GetGPRSize(), GetRegisterCount(), GetRegisterInfo(), GetRegisterInfo(), GetRegisterSet(), GetRegisterSetCount(), GetRegisterSetFromRegisterIndex(), and SetRegisterInfo().
|
private |
Definition at line 58 of file RegisterInfoPOSIXDynamic_riscv32.h.
Referenced by RegisterInfoPOSIXDynamic_riscv32(), and SetRegisterInfo().