76#define DR_OFFSET(reg_index) \
77 (LLVM_EXTENSION offsetof(UserArea, dbg) + \
78 LLVM_EXTENSION offsetof(DBG, dr[reg_index]))
82#define DECLARE_REGISTER_INFOS_X86_64_STRUCT
84#undef DECLARE_REGISTER_INFOS_X86_64_STRUCT
99 std::unique_ptr<RegisterInfoLinux_i386> reg_interface(
101 const RegisterInfo *base_info = reg_interface->GetRegisterInfo();
107#define UPDATE_REGISTER_INFOS_I386_STRUCT_WITH_X86_64_OFFSETS
109#undef UPDATE_REGISTER_INFOS_I386_STRUCT_WITH_X86_64_OFFSETS
117 case llvm::Triple::x86:
119 case llvm::Triple::x86_64:
120 return g_register_infos_x86_64_with_base;
122 assert(
false &&
"Unhandled target architecture.");
129 case llvm::Triple::x86: {
131 "i386 register info not yet filled.");
134 case llvm::Triple::x86_64:
135 return static_cast<uint32_t
>(
sizeof(g_register_infos_x86_64_with_base) /
136 sizeof(g_register_infos_x86_64_with_base[0]));
138 assert(
false &&
"Unhandled target architecture.");
145 case llvm::Triple::x86:
147 case llvm::Triple::x86_64:
150 assert(
false &&
"Unhandled target architecture.");
161 sizeof(((
GPR *)
nullptr)->orig_rax),
162 (LLVM_EXTENSION offsetof(
GPR, orig_rax)),
static const RegisterInfo g_register_infos[]
static const RegisterInfo * GetRegisterInfoPtr(const ArchSpec &target_arch)
static uint32_t GetUserRegisterInfoCount(const ArchSpec &target_arch)
static std::vector< lldb_private::RegisterInfo > & GetPrivateRegisterInfoVector()
static uint32_t GetRegisterInfoCount(const ArchSpec &target_arch)
static const RegisterInfo * GetRegisterInfo_i386(const lldb_private::ArchSpec &arch)
const lldb_private::RegisterInfo * m_register_info_p
uint32_t GetUserRegisterCount() const override
uint32_t GetRegisterCount() const override
RegisterInfoLinux_x86_64(const lldb_private::ArchSpec &target_arch)
uint32_t m_user_register_count
static size_t GetGPRSizeStatic()
const lldb_private::RegisterInfo * GetRegisterInfo() const override
uint32_t m_register_info_count
An architecture specification class.
llvm::Triple::ArchType GetMachine() const
Returns a machine family for the current architecture.
RegisterInfoLinux_x86(const ArchSpec &target_arch, RegisterInfo orig_ax_info)
#define LLDB_INVALID_REGNUM
A class that represents a running process on the host machine.
@ k_num_user_registers_i386
@ eEncodingUint
unsigned integer
Every register is described in detail including its name, alternate name (optional),...