12#include "llvm/Support/Compiler.h"
13#include "llvm/TargetParser/Triple.h"
76#define DR_OFFSET(reg_index) \
77 (LLVM_EXTENSION offsetof(UserArea, dbg) + \
78 LLVM_EXTENSION offsetof(DBG, dr[reg_index]))
83#define DECLARE_REGISTER_INFOS_X86_64_STRUCT
85#undef DECLARE_REGISTER_INFOS_X86_64_STRUCT
100 std::unique_ptr<RegisterContextNetBSD_i386> reg_interface(
102 const RegisterInfo *base_info = reg_interface->GetRegisterInfo();
108#define UPDATE_REGISTER_INFOS_I386_STRUCT_WITH_X86_64_OFFSETS
110#undef UPDATE_REGISTER_INFOS_I386_STRUCT_WITH_X86_64_OFFSETS
119 case llvm::Triple::x86:
121 case llvm::Triple::x86_64:
122 return g_register_infos_x86_64;
124 assert(
false &&
"Unhandled target architecture.");
132 case llvm::Triple::x86: {
134 "i386 register info not yet filled.");
137 case llvm::Triple::x86_64:
138 return static_cast<uint32_t
>(
sizeof(g_register_infos_x86_64) /
139 sizeof(g_register_infos_x86_64[0]));
141 assert(
false &&
"Unhandled target architecture.");
149 case llvm::Triple::x86:
151 case llvm::Triple::x86_64:
154 assert(
false &&
"Unhandled target architecture.");
static const RegisterInfo g_register_infos[]
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)
uint32_t GetRegisterCount() const override
RegisterContextNetBSD_x86_64(const lldb_private::ArchSpec &target_arch)
size_t GetGPRSize() const override
uint32_t GetUserRegisterCount() const override
const lldb_private::RegisterInfo * m_register_info_p
const lldb_private::RegisterInfo * GetRegisterInfo() const override
const uint32_t m_user_register_count
const uint32_t m_register_count
An architecture specification class.
llvm::Triple::ArchType GetMachine() const
Returns a machine family for the current architecture.
RegisterInfo interface to patch RegisterInfo structure for archs.
A class that represents a running process on the host machine.
@ k_num_user_registers_i386
@ k_num_user_registers_x86_64
Every register is described in detail including its name, alternate name (optional),...