74#define DR_OFFSET(reg_index) \
75 (LLVM_EXTENSION offsetof(UserArea, dbg) + \
76 LLVM_EXTENSION offsetof(DBG, dr[reg_index]))
80#define DECLARE_REGISTER_INFOS_X86_64_STRUCT
82#undef DECLARE_REGISTER_INFOS_X86_64_STRUCT
97 std::unique_ptr<RegisterContextLinux_i386> reg_interface(
99 const RegisterInfo *base_info = reg_interface->GetRegisterInfo();
105#define UPDATE_REGISTER_INFOS_I386_STRUCT_WITH_X86_64_OFFSETS
107#undef UPDATE_REGISTER_INFOS_I386_STRUCT_WITH_X86_64_OFFSETS
115 case llvm::Triple::x86:
117 case llvm::Triple::x86_64:
118 return g_register_infos_x86_64_with_base;
120 assert(
false &&
"Unhandled target architecture.");
127 case llvm::Triple::x86: {
129 "i386 register info not yet filled.");
132 case llvm::Triple::x86_64:
133 return static_cast<uint32_t
>(
sizeof(g_register_infos_x86_64_with_base) /
134 sizeof(g_register_infos_x86_64_with_base[0]));
136 assert(
false &&
"Unhandled target architecture.");
143 case llvm::Triple::x86:
145 case llvm::Triple::x86_64:
148 assert(
false &&
"Unhandled target architecture.");
159 sizeof(((
GPR *)
nullptr)->orig_rax),
160 (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 const RegisterInfo * GetRegisterInfo_i386(const lldb_private::ArchSpec &arch)
static uint32_t GetRegisterInfoCount(const ArchSpec &target_arch)
const lldb_private::RegisterInfo * m_register_info_p
uint32_t GetUserRegisterCount() const override
const lldb_private::RegisterInfo * GetRegisterInfo() const override
uint32_t m_user_register_count
RegisterContextLinux_x86_64(const lldb_private::ArchSpec &target_arch)
static size_t GetGPRSizeStatic()
uint32_t m_register_info_count
uint32_t GetRegisterCount() const override
An architecture specification class.
llvm::Triple::ArchType GetMachine() const
Returns a machine family for the current architecture.
#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),...