14#include "llvm/Support/Compiler.h"
15#include "llvm/TargetParser/Triple.h"
78#define DR_OFFSET(reg_index) \
79 (LLVM_EXTENSION offsetof(UserArea, dbg) + \
80 LLVM_EXTENSION offsetof(DBG, dr[reg_index]))
85#define DECLARE_REGISTER_INFOS_X86_64_STRUCT
87#undef DECLARE_REGISTER_INFOS_X86_64_STRUCT
102 std::unique_ptr<RegisterInfoNetBSD_i386> reg_interface(
104 const RegisterInfo *base_info = reg_interface->GetRegisterInfo();
110#define UPDATE_REGISTER_INFOS_I386_STRUCT_WITH_X86_64_OFFSETS
112#undef UPDATE_REGISTER_INFOS_I386_STRUCT_WITH_X86_64_OFFSETS
121 case llvm::Triple::x86:
123 case llvm::Triple::x86_64:
124 return g_register_infos_x86_64;
126 assert(
false &&
"Unhandled target architecture.");
134 case llvm::Triple::x86: {
136 "i386 register info not yet filled.");
139 case llvm::Triple::x86_64:
140 return static_cast<uint32_t
>(
sizeof(g_register_infos_x86_64) /
141 sizeof(g_register_infos_x86_64[0]));
143 assert(
false &&
"Unhandled target architecture.");
151 case llvm::Triple::x86:
153 case llvm::Triple::x86_64:
156 assert(
false &&
"Unhandled target architecture.");
static const RegisterInfo g_register_infos[]
static const RegisterInfo * PrivateGetRegisterInfoPtr(const lldb_private::ArchSpec &target_arch)
static uint32_t PrivateGetRegisterCount(const lldb_private::ArchSpec &target_arch)
static uint32_t PrivateGetUserRegisterCount(const lldb_private::ArchSpec &target_arch)
static const RegisterInfo * PrivateGetRegisterInfoPtr(const lldb_private::ArchSpec &target_arch)
static std::vector< lldb_private::RegisterInfo > & GetPrivateRegisterInfoVector()
static const RegisterInfo * GetRegisterInfo_i386(const lldb_private::ArchSpec &arch)
static uint32_t PrivateGetRegisterCount(const lldb_private::ArchSpec &target_arch)
const lldb_private::RegisterInfo * m_register_info_p
const lldb_private::RegisterInfo * GetRegisterInfo() const override
uint32_t GetRegisterCount() const override
const uint32_t m_register_count
RegisterInfoNetBSD_x86_64(const lldb_private::ArchSpec &target_arch)
uint32_t GetUserRegisterCount() const override
const uint32_t m_user_register_count
size_t GetGPRSize() const override
An architecture specification class.
llvm::Triple::ArchType GetMachine() const
Returns a machine family for the current architecture.
RegisterInfoInterface(const lldb_private::ArchSpec &target_arch)
A class that represents a running process on the host machine.
@ k_num_user_registers_x86_64
@ k_num_user_registers_i386
Every register is described in detail including its name, alternate name (optional),...