12#include "llvm/Support/Compiler.h"
17#define GPR_OFFSET(idx) ((idx) * 4 + 0)
18#define FPR_OFFSET(idx) ((idx) * 4 + sizeof(RegisterInfoPOSIX_riscv32::GPR))
20#define REG_CONTEXT_SIZE \
21 (sizeof(RegisterInfoPOSIX_riscv32::GPR) + \
22 sizeof(RegisterInfoPOSIX_riscv32::FPR))
24#define DECLARE_REGISTER_INFOS_RISCV32_STRUCT
26#undef DECLARE_REGISTER_INFOS_RISCV32_STRUCT
31 case llvm::Triple::riscv32:
32 return g_register_infos_riscv32_le;
34 assert(
false &&
"Unhandled target architecture.");
42 case llvm::Triple::riscv32:
43 return static_cast<uint32_t
>(
sizeof(g_register_infos_riscv32_le) /
44 sizeof(g_register_infos_riscv32_le[0]));
46 assert(
false &&
"Unhandled target architecture.");
73 "g_gpr_regnums_riscv32 has wrong number of register infos");
90 "g_fpr_regnums_riscv32 has wrong number of register infos");
128 uint32_t reg_index)
const {
const size_t k_num_gpr_registers
const size_t k_num_fpr_registers
constexpr size_t k_num_register_sets
static const uint32_t g_gpr_regnums_riscv32[]
static const lldb_private::RegisterSet g_reg_sets_riscv32[k_num_register_sets]
static const uint32_t g_fpr_regnums_riscv32[]
size_t GetGPRSize() const override
uint32_t m_register_info_count
const lldb_private::RegisterInfo * GetRegisterInfo() const override
const lldb_private::RegisterSet * GetRegisterSet(size_t reg_set) const override
static uint32_t GetRegisterInfoCount(const lldb_private::ArchSpec &target_arch)
const lldb_private::RegisterInfo * m_register_info_p
size_t GetFPRSize() const override
size_t GetRegisterSetFromRegisterIndex(uint32_t reg_index) const override
lldb_private::Flags m_opt_regsets
size_t GetRegisterSetCount() const override
uint32_t GetRegisterCount() const override
RegisterInfoPOSIX_riscv32(const lldb_private::ArchSpec &target_arch, lldb_private::Flags flags)
static const lldb_private::RegisterInfo * GetRegisterInfoPtr(const lldb_private::ArchSpec &target_arch)
An architecture specification class.
llvm::Triple::ArchType GetMachine() const
Returns a machine family for the current architecture.
RegisterInfoAndSetInterface(const lldb_private::ArchSpec &target_arch)
#define LLDB_INVALID_REGNUM
A class that represents a running process on the host machine.
Every register is described in detail including its name, alternate name (optional),...
Registers are grouped into register sets.