14#include "llvm/Support/Threading.h"
65#define DR_OFFSET(reg_index) \
66 (LLVM_EXTENSION offsetof(UserArea, dbg) + \
67 LLVM_EXTENSION offsetof(DBG, dr[reg_index]))
71#define DECLARE_REGISTER_INFOS_X86_64_STRUCT
73#undef DECLARE_REGISTER_INFOS_X86_64_STRUCT
75static std::vector<lldb_private::RegisterInfo> &
82 std::unique_ptr<RegisterInfoFreeBSD_i386> reg_interface(
84 const RegisterInfo *base_info = reg_interface->GetRegisterInfo();
90#define UPDATE_REGISTER_INFOS_I386_STRUCT_WITH_X86_64_OFFSETS
92#undef UPDATE_REGISTER_INFOS_I386_STRUCT_WITH_X86_64_OFFSETS
101 case llvm::Triple::x86:
103 case llvm::Triple::x86_64:
104 return g_register_infos_x86_64;
106 assert(
false &&
"Unhandled target architecture.");
114 case llvm::Triple::x86:
117 "i386 register info vector not filled.");
118 return static_cast<uint32_t
>(
120 case llvm::Triple::x86_64:
121 return static_cast<uint32_t
>(
sizeof(g_register_infos_x86_64) /
122 sizeof(g_register_infos_x86_64[0]));
124 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 std::vector< lldb_private::RegisterInfo > & GetSharedRegisterInfoVector_i386(const lldb_private::ArchSpec &arch)
uint32_t GetRegisterCount() const override
const lldb_private::RegisterInfo * m_register_info_p
const lldb_private::RegisterInfo * GetRegisterInfo() const override
RegisterInfoFreeBSD_x86_64(const lldb_private::ArchSpec &target_arch)
const uint32_t m_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.
Every register is described in detail including its name, alternate name (optional),...