lldb - Register Context Linux ARM64
Yet another step toward ARM64 support. With this commit, lldb-gdbserver started on ARM64 target can be accessed by lldb running on desktop PC and it can process simple commands (like 'continue'). Still ARM64 support lacks NativeRegisterContextLinux_arm64.* code which waits to be implemented. Based on similar files for Linux x86_64 and Darwin ARM64. Due to common code extraction from Darwin related files, lldb should be tested for any unexpected regression on Darwin ARM64 machines too. See the following for more details: http://reviews.llvm.org/D4580 http://lists.cs.uiuc.edu/pipermail/lldb-commits/Week-of-Mon-20140825/012670.html Change by Paul Osmialowski. llvm-svn: 216737
This commit is contained in:
parent
85cbc7e371
commit
b71e89e9af
|
@ -20,6 +20,7 @@
|
|||
#include "lldb/Host/HostInfo.h"
|
||||
#include "lldb/lldb-enumerations.h"
|
||||
#include "lldb/lldb-private-log.h"
|
||||
#include "Plugins/Process/Utility/RegisterContextLinux_arm64.h"
|
||||
#include "Plugins/Process/Utility/RegisterContextLinux_i386.h"
|
||||
#include "Plugins/Process/Utility/RegisterContextLinux_x86_64.h"
|
||||
#include "Plugins/Process/Utility/RegisterInfoInterface.h"
|
||||
|
@ -130,6 +131,10 @@ NativeThreadLinux::GetRegisterContext ()
|
|||
case llvm::Triple::Linux:
|
||||
switch (target_arch.GetMachine())
|
||||
{
|
||||
case llvm::Triple::aarch64:
|
||||
assert((HostInfo::GetArchitecture ().GetAddressByteSize() == 8) && "Register setting path assumes this is a 64-bit host");
|
||||
reg_interface = static_cast<RegisterInfoInterface*>(new RegisterContextLinux_arm64(target_arch));
|
||||
break;
|
||||
case llvm::Triple::x86:
|
||||
case llvm::Triple::x86_64:
|
||||
if (HostInfo::GetArchitecture().GetAddressByteSize() == 4)
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "ProcessMonitor.h"
|
||||
#include "RegisterContextPOSIXProcessMonitor_mips64.h"
|
||||
#include "RegisterContextPOSIXProcessMonitor_x86.h"
|
||||
#include "RegisterContextLinux_arm64.h"
|
||||
#include "RegisterContextLinux_i386.h"
|
||||
#include "RegisterContextLinux_x86_64.h"
|
||||
#include "RegisterContextFreeBSD_i386.h"
|
||||
|
@ -179,6 +180,10 @@ POSIXThread::GetRegisterContext()
|
|||
case llvm::Triple::Linux:
|
||||
switch (target_arch.GetMachine())
|
||||
{
|
||||
case llvm::Triple::aarch64:
|
||||
assert((HostInfo::GetArchitecture().GetAddressByteSize() == 8) && "Register setting path assumes this is a 64-bit host");
|
||||
reg_interface = static_cast<RegisterInfoInterface*>(new RegisterContextLinux_arm64(target_arch));
|
||||
break;
|
||||
case llvm::Triple::x86:
|
||||
case llvm::Triple::x86_64:
|
||||
if (HostInfo::GetArchitecture().GetAddressByteSize() == 4)
|
||||
|
|
|
@ -18,6 +18,7 @@ add_lldb_library(lldbPluginProcessUtility
|
|||
RegisterContextFreeBSD_mips64.cpp
|
||||
RegisterContextFreeBSD_x86_64.cpp
|
||||
RegisterContextHistory.cpp
|
||||
RegisterContextLinux_arm64.cpp
|
||||
RegisterContextLinux_i386.cpp
|
||||
RegisterContextLinux_x86_64.cpp
|
||||
RegisterContextLLDB.cpp
|
||||
|
|
|
@ -42,155 +42,6 @@
|
|||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
|
||||
enum
|
||||
{
|
||||
gpr_x0 = 0,
|
||||
gpr_x1,
|
||||
gpr_x2,
|
||||
gpr_x3,
|
||||
gpr_x4,
|
||||
gpr_x5,
|
||||
gpr_x6,
|
||||
gpr_x7,
|
||||
gpr_x8,
|
||||
gpr_x9,
|
||||
gpr_x10,
|
||||
gpr_x11,
|
||||
gpr_x12,
|
||||
gpr_x13,
|
||||
gpr_x14,
|
||||
gpr_x15,
|
||||
gpr_x16,
|
||||
gpr_x17,
|
||||
gpr_x18,
|
||||
gpr_x19,
|
||||
gpr_x20,
|
||||
gpr_x21,
|
||||
gpr_x22,
|
||||
gpr_x23,
|
||||
gpr_x24,
|
||||
gpr_x25,
|
||||
gpr_x26,
|
||||
gpr_x27,
|
||||
gpr_x28,
|
||||
gpr_x29 = 29, gpr_fp = gpr_x29,
|
||||
gpr_x30 = 30, gpr_lr = gpr_x30, gpr_ra = gpr_x30,
|
||||
gpr_x31 = 31, gpr_sp = gpr_x31,
|
||||
gpr_pc = 32,
|
||||
gpr_cpsr,
|
||||
|
||||
fpu_v0,
|
||||
fpu_v1,
|
||||
fpu_v2,
|
||||
fpu_v3,
|
||||
fpu_v4,
|
||||
fpu_v5,
|
||||
fpu_v6,
|
||||
fpu_v7,
|
||||
fpu_v8,
|
||||
fpu_v9,
|
||||
fpu_v10,
|
||||
fpu_v11,
|
||||
fpu_v12,
|
||||
fpu_v13,
|
||||
fpu_v14,
|
||||
fpu_v15,
|
||||
fpu_v16,
|
||||
fpu_v17,
|
||||
fpu_v18,
|
||||
fpu_v19,
|
||||
fpu_v20,
|
||||
fpu_v21,
|
||||
fpu_v22,
|
||||
fpu_v23,
|
||||
fpu_v24,
|
||||
fpu_v25,
|
||||
fpu_v26,
|
||||
fpu_v27,
|
||||
fpu_v28,
|
||||
fpu_v29,
|
||||
fpu_v30,
|
||||
fpu_v31,
|
||||
|
||||
fpu_fpsr,
|
||||
fpu_fpcr,
|
||||
|
||||
exc_far,
|
||||
exc_esr,
|
||||
exc_exception,
|
||||
|
||||
dbg_bvr0,
|
||||
dbg_bvr1,
|
||||
dbg_bvr2,
|
||||
dbg_bvr3,
|
||||
dbg_bvr4,
|
||||
dbg_bvr5,
|
||||
dbg_bvr6,
|
||||
dbg_bvr7,
|
||||
dbg_bvr8,
|
||||
dbg_bvr9,
|
||||
dbg_bvr10,
|
||||
dbg_bvr11,
|
||||
dbg_bvr12,
|
||||
dbg_bvr13,
|
||||
dbg_bvr14,
|
||||
dbg_bvr15,
|
||||
|
||||
dbg_bcr0,
|
||||
dbg_bcr1,
|
||||
dbg_bcr2,
|
||||
dbg_bcr3,
|
||||
dbg_bcr4,
|
||||
dbg_bcr5,
|
||||
dbg_bcr6,
|
||||
dbg_bcr7,
|
||||
dbg_bcr8,
|
||||
dbg_bcr9,
|
||||
dbg_bcr10,
|
||||
dbg_bcr11,
|
||||
dbg_bcr12,
|
||||
dbg_bcr13,
|
||||
dbg_bcr14,
|
||||
dbg_bcr15,
|
||||
|
||||
dbg_wvr0,
|
||||
dbg_wvr1,
|
||||
dbg_wvr2,
|
||||
dbg_wvr3,
|
||||
dbg_wvr4,
|
||||
dbg_wvr5,
|
||||
dbg_wvr6,
|
||||
dbg_wvr7,
|
||||
dbg_wvr8,
|
||||
dbg_wvr9,
|
||||
dbg_wvr10,
|
||||
dbg_wvr11,
|
||||
dbg_wvr12,
|
||||
dbg_wvr13,
|
||||
dbg_wvr14,
|
||||
dbg_wvr15,
|
||||
|
||||
dbg_wcr0,
|
||||
dbg_wcr1,
|
||||
dbg_wcr2,
|
||||
dbg_wcr3,
|
||||
dbg_wcr4,
|
||||
dbg_wcr5,
|
||||
dbg_wcr6,
|
||||
dbg_wcr7,
|
||||
dbg_wcr8,
|
||||
dbg_wcr9,
|
||||
dbg_wcr10,
|
||||
dbg_wcr11,
|
||||
dbg_wcr12,
|
||||
dbg_wcr13,
|
||||
dbg_wcr14,
|
||||
dbg_wcr15,
|
||||
|
||||
k_num_registers
|
||||
};
|
||||
|
||||
|
||||
RegisterContextDarwin_arm64::RegisterContextDarwin_arm64(Thread &thread, uint32_t concrete_frame_idx) :
|
||||
RegisterContext(thread, concrete_frame_idx),
|
||||
gpr(),
|
||||
|
@ -223,155 +74,12 @@ RegisterContextDarwin_arm64::~RegisterContextDarwin_arm64()
|
|||
#define DEFINE_DBG(reg, i) #reg, NULL, sizeof(((RegisterContextDarwin_arm64::DBG *)NULL)->reg[i]), DBG_OFFSET_NAME(reg[i]), eEncodingUint, eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, dbg_##reg##i }, NULL, NULL
|
||||
#define REG_CONTEXT_SIZE (sizeof (RegisterContextDarwin_arm64::GPR) + sizeof (RegisterContextDarwin_arm64::FPU) + sizeof (RegisterContextDarwin_arm64::EXC))
|
||||
|
||||
static RegisterInfo g_register_infos[] = {
|
||||
// General purpose registers
|
||||
// NAME ALT SZ OFFSET ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS
|
||||
// ====== ======= == ============= ============= ============ =============== =============== ========================= ===================== ============= ========== ===============
|
||||
{ "x0", NULL, 8, GPR_OFFSET(0), eEncodingUint, eFormatHex, { arm64_gcc::x0, arm64_dwarf::x0, LLDB_INVALID_REGNUM, arm64_gcc::x0, gpr_x0 }, NULL, NULL},
|
||||
{ "x1", NULL, 8, GPR_OFFSET(1), eEncodingUint, eFormatHex, { arm64_gcc::x1, arm64_dwarf::x1, LLDB_INVALID_REGNUM, arm64_gcc::x1, gpr_x1 }, NULL, NULL},
|
||||
{ "x2", NULL, 8, GPR_OFFSET(2), eEncodingUint, eFormatHex, { arm64_gcc::x2, arm64_dwarf::x2, LLDB_INVALID_REGNUM, arm64_gcc::x2, gpr_x2 }, NULL, NULL},
|
||||
{ "x3", NULL, 8, GPR_OFFSET(3), eEncodingUint, eFormatHex, { arm64_gcc::x3, arm64_dwarf::x3, LLDB_INVALID_REGNUM, arm64_gcc::x3, gpr_x3 }, NULL, NULL},
|
||||
{ "x4", NULL, 8, GPR_OFFSET(4), eEncodingUint, eFormatHex, { arm64_gcc::x4, arm64_dwarf::x4, LLDB_INVALID_REGNUM, arm64_gcc::x4, gpr_x4 }, NULL, NULL},
|
||||
{ "x5", NULL, 8, GPR_OFFSET(5), eEncodingUint, eFormatHex, { arm64_gcc::x5, arm64_dwarf::x5, LLDB_INVALID_REGNUM, arm64_gcc::x5, gpr_x5 }, NULL, NULL},
|
||||
{ "x6", NULL, 8, GPR_OFFSET(6), eEncodingUint, eFormatHex, { arm64_gcc::x6, arm64_dwarf::x6, LLDB_INVALID_REGNUM, arm64_gcc::x6, gpr_x6 }, NULL, NULL},
|
||||
{ "x7", NULL, 8, GPR_OFFSET(7), eEncodingUint, eFormatHex, { arm64_gcc::x7, arm64_dwarf::x7, LLDB_INVALID_REGNUM, arm64_gcc::x7, gpr_x7 }, NULL, NULL},
|
||||
{ "x8", NULL, 8, GPR_OFFSET(8), eEncodingUint, eFormatHex, { arm64_gcc::x8, arm64_dwarf::x8, LLDB_INVALID_REGNUM, arm64_gcc::x8, gpr_x8 }, NULL, NULL},
|
||||
{ "x9", NULL, 8, GPR_OFFSET(9), eEncodingUint, eFormatHex, { arm64_gcc::x9, arm64_dwarf::x9, LLDB_INVALID_REGNUM, arm64_gcc::x9, gpr_x9 }, NULL, NULL},
|
||||
{ "x10", NULL, 8, GPR_OFFSET(10), eEncodingUint, eFormatHex, { arm64_gcc::x10, arm64_dwarf::x10, LLDB_INVALID_REGNUM, arm64_gcc::x10, gpr_x10 }, NULL, NULL},
|
||||
{ "x11", NULL, 8, GPR_OFFSET(11), eEncodingUint, eFormatHex, { arm64_gcc::x11, arm64_dwarf::x11, LLDB_INVALID_REGNUM, arm64_gcc::x11, gpr_x11 }, NULL, NULL},
|
||||
{ "x12", NULL, 8, GPR_OFFSET(12), eEncodingUint, eFormatHex, { arm64_gcc::x12, arm64_dwarf::x12, LLDB_INVALID_REGNUM, arm64_gcc::x12, gpr_x12 }, NULL, NULL},
|
||||
{ "x13", NULL, 8, GPR_OFFSET(13), eEncodingUint, eFormatHex, { arm64_gcc::x13, arm64_dwarf::x13, LLDB_INVALID_REGNUM, arm64_gcc::x13, gpr_x13 }, NULL, NULL},
|
||||
{ "x14", NULL, 8, GPR_OFFSET(14), eEncodingUint, eFormatHex, { arm64_gcc::x14, arm64_dwarf::x14, LLDB_INVALID_REGNUM, arm64_gcc::x14, gpr_x14 }, NULL, NULL},
|
||||
{ "x15", NULL, 8, GPR_OFFSET(15), eEncodingUint, eFormatHex, { arm64_gcc::x15, arm64_dwarf::x15, LLDB_INVALID_REGNUM, arm64_gcc::x15, gpr_x15 }, NULL, NULL},
|
||||
{ "x16", NULL, 8, GPR_OFFSET(16), eEncodingUint, eFormatHex, { arm64_gcc::x16, arm64_dwarf::x16, LLDB_INVALID_REGNUM, arm64_gcc::x16, gpr_x16 }, NULL, NULL},
|
||||
{ "x17", NULL, 8, GPR_OFFSET(17), eEncodingUint, eFormatHex, { arm64_gcc::x17, arm64_dwarf::x17, LLDB_INVALID_REGNUM, arm64_gcc::x17, gpr_x17 }, NULL, NULL},
|
||||
{ "x18", NULL, 8, GPR_OFFSET(18), eEncodingUint, eFormatHex, { arm64_gcc::x18, arm64_dwarf::x18, LLDB_INVALID_REGNUM, arm64_gcc::x18, gpr_x18 }, NULL, NULL},
|
||||
{ "x19", NULL, 8, GPR_OFFSET(19), eEncodingUint, eFormatHex, { arm64_gcc::x19, arm64_dwarf::x19, LLDB_INVALID_REGNUM, arm64_gcc::x19, gpr_x19 }, NULL, NULL},
|
||||
{ "x20", NULL, 8, GPR_OFFSET(20), eEncodingUint, eFormatHex, { arm64_gcc::x20, arm64_dwarf::x20, LLDB_INVALID_REGNUM, arm64_gcc::x20, gpr_x20 }, NULL, NULL},
|
||||
{ "x21", NULL, 8, GPR_OFFSET(21), eEncodingUint, eFormatHex, { arm64_gcc::x21, arm64_dwarf::x21, LLDB_INVALID_REGNUM, arm64_gcc::x21, gpr_x21 }, NULL, NULL},
|
||||
{ "x22", NULL, 8, GPR_OFFSET(22), eEncodingUint, eFormatHex, { arm64_gcc::x22, arm64_dwarf::x22, LLDB_INVALID_REGNUM, arm64_gcc::x22, gpr_x22 }, NULL, NULL},
|
||||
{ "x23", NULL, 8, GPR_OFFSET(23), eEncodingUint, eFormatHex, { arm64_gcc::x23, arm64_dwarf::x23, LLDB_INVALID_REGNUM, arm64_gcc::x23, gpr_x23 }, NULL, NULL},
|
||||
{ "x24", NULL, 8, GPR_OFFSET(24), eEncodingUint, eFormatHex, { arm64_gcc::x24, arm64_dwarf::x24, LLDB_INVALID_REGNUM, arm64_gcc::x24, gpr_x24 }, NULL, NULL},
|
||||
{ "x25", NULL, 8, GPR_OFFSET(25), eEncodingUint, eFormatHex, { arm64_gcc::x25, arm64_dwarf::x25, LLDB_INVALID_REGNUM, arm64_gcc::x25, gpr_x25 }, NULL, NULL},
|
||||
{ "x26", NULL, 8, GPR_OFFSET(26), eEncodingUint, eFormatHex, { arm64_gcc::x26, arm64_dwarf::x26, LLDB_INVALID_REGNUM, arm64_gcc::x26, gpr_x26 }, NULL, NULL},
|
||||
{ "x27", NULL, 8, GPR_OFFSET(27), eEncodingUint, eFormatHex, { arm64_gcc::x27, arm64_dwarf::x27, LLDB_INVALID_REGNUM, arm64_gcc::x27, gpr_x27 }, NULL, NULL},
|
||||
{ "x28", NULL, 8, GPR_OFFSET(28), eEncodingUint, eFormatHex, { arm64_gcc::x28, arm64_dwarf::x28, LLDB_INVALID_REGNUM, arm64_gcc::x28, gpr_x28 }, NULL, NULL},
|
||||
|
||||
{ "fp", "x29", 8, GPR_OFFSET(29), eEncodingUint, eFormatHex, { arm64_gcc::fp, arm64_dwarf::fp, LLDB_REGNUM_GENERIC_FP, arm64_gcc::fp, gpr_fp }, NULL, NULL},
|
||||
{ "lr", "x30", 8, GPR_OFFSET(30), eEncodingUint, eFormatHex, { arm64_gcc::lr, arm64_dwarf::lr, LLDB_REGNUM_GENERIC_RA, arm64_gcc::lr, gpr_lr }, NULL, NULL},
|
||||
{ "sp", "x31", 8, GPR_OFFSET(31), eEncodingUint, eFormatHex, { arm64_gcc::sp, arm64_dwarf::sp, LLDB_REGNUM_GENERIC_SP, arm64_gcc::sp, gpr_sp }, NULL, NULL},
|
||||
{ "pc", NULL, 8, GPR_OFFSET(32), eEncodingUint, eFormatHex, { arm64_gcc::pc, arm64_dwarf::pc, LLDB_REGNUM_GENERIC_PC, arm64_gcc::pc, gpr_pc }, NULL, NULL},
|
||||
|
||||
{ "cpsr", NULL, 4, GPR_OFFSET_NAME(cpsr), eEncodingUint, eFormatHex, { arm64_gcc::cpsr, arm64_dwarf::cpsr, LLDB_REGNUM_GENERIC_FLAGS, arm64_gcc::cpsr, gpr_cpsr }, NULL, NULL},
|
||||
|
||||
{ "v0", NULL, 16, FPU_OFFSET(0), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v0, LLDB_INVALID_REGNUM, arm64_gcc::v0, fpu_v0 }, NULL, NULL},
|
||||
{ "v1", NULL, 16, FPU_OFFSET(1), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v1, LLDB_INVALID_REGNUM, arm64_gcc::v1, fpu_v1 }, NULL, NULL},
|
||||
{ "v2", NULL, 16, FPU_OFFSET(2), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v2, LLDB_INVALID_REGNUM, arm64_gcc::v2, fpu_v2 }, NULL, NULL},
|
||||
{ "v3", NULL, 16, FPU_OFFSET(3), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v3, LLDB_INVALID_REGNUM, arm64_gcc::v3, fpu_v3 }, NULL, NULL},
|
||||
{ "v4", NULL, 16, FPU_OFFSET(4), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v4, LLDB_INVALID_REGNUM, arm64_gcc::v4, fpu_v4 }, NULL, NULL},
|
||||
{ "v5", NULL, 16, FPU_OFFSET(5), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v5, LLDB_INVALID_REGNUM, arm64_gcc::v5, fpu_v5 }, NULL, NULL},
|
||||
{ "v6", NULL, 16, FPU_OFFSET(6), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v6, LLDB_INVALID_REGNUM, arm64_gcc::v6, fpu_v6 }, NULL, NULL},
|
||||
{ "v7", NULL, 16, FPU_OFFSET(7), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v7, LLDB_INVALID_REGNUM, arm64_gcc::v7, fpu_v7 }, NULL, NULL},
|
||||
{ "v8", NULL, 16, FPU_OFFSET(8), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v8, LLDB_INVALID_REGNUM, arm64_gcc::v8, fpu_v8 }, NULL, NULL},
|
||||
{ "v9", NULL, 16, FPU_OFFSET(9), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v9, LLDB_INVALID_REGNUM, arm64_gcc::v9, fpu_v9 }, NULL, NULL},
|
||||
{ "v10", NULL, 16, FPU_OFFSET(10), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v10, LLDB_INVALID_REGNUM, arm64_gcc::v10, fpu_v10 }, NULL, NULL},
|
||||
{ "v11", NULL, 16, FPU_OFFSET(11), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v11, LLDB_INVALID_REGNUM, arm64_gcc::v11, fpu_v11 }, NULL, NULL},
|
||||
{ "v12", NULL, 16, FPU_OFFSET(12), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v12, LLDB_INVALID_REGNUM, arm64_gcc::v12, fpu_v12 }, NULL, NULL},
|
||||
{ "v13", NULL, 16, FPU_OFFSET(13), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v13, LLDB_INVALID_REGNUM, arm64_gcc::v13, fpu_v13 }, NULL, NULL},
|
||||
{ "v14", NULL, 16, FPU_OFFSET(14), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v14, LLDB_INVALID_REGNUM, arm64_gcc::v14, fpu_v14 }, NULL, NULL},
|
||||
{ "v15", NULL, 16, FPU_OFFSET(15), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v15, LLDB_INVALID_REGNUM, arm64_gcc::v15, fpu_v15 }, NULL, NULL},
|
||||
{ "v16", NULL, 16, FPU_OFFSET(16), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v16, LLDB_INVALID_REGNUM, arm64_gcc::v16, fpu_v16 }, NULL, NULL},
|
||||
{ "v17", NULL, 16, FPU_OFFSET(17), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v17, LLDB_INVALID_REGNUM, arm64_gcc::v17, fpu_v17 }, NULL, NULL},
|
||||
{ "v18", NULL, 16, FPU_OFFSET(18), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v18, LLDB_INVALID_REGNUM, arm64_gcc::v18, fpu_v18 }, NULL, NULL},
|
||||
{ "v19", NULL, 16, FPU_OFFSET(19), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v19, LLDB_INVALID_REGNUM, arm64_gcc::v19, fpu_v19 }, NULL, NULL},
|
||||
{ "v20", NULL, 16, FPU_OFFSET(20), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v20, LLDB_INVALID_REGNUM, arm64_gcc::v20, fpu_v20 }, NULL, NULL},
|
||||
{ "v21", NULL, 16, FPU_OFFSET(21), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v21, LLDB_INVALID_REGNUM, arm64_gcc::v21, fpu_v21 }, NULL, NULL},
|
||||
{ "v22", NULL, 16, FPU_OFFSET(22), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v22, LLDB_INVALID_REGNUM, arm64_gcc::v22, fpu_v22 }, NULL, NULL},
|
||||
{ "v23", NULL, 16, FPU_OFFSET(23), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v23, LLDB_INVALID_REGNUM, arm64_gcc::v23, fpu_v23 }, NULL, NULL},
|
||||
{ "v24", NULL, 16, FPU_OFFSET(24), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v24, LLDB_INVALID_REGNUM, arm64_gcc::v24, fpu_v24 }, NULL, NULL},
|
||||
{ "v25", NULL, 16, FPU_OFFSET(25), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v25, LLDB_INVALID_REGNUM, arm64_gcc::v25, fpu_v25 }, NULL, NULL},
|
||||
{ "v26", NULL, 16, FPU_OFFSET(26), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v26, LLDB_INVALID_REGNUM, arm64_gcc::v26, fpu_v26 }, NULL, NULL},
|
||||
{ "v27", NULL, 16, FPU_OFFSET(27), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v27, LLDB_INVALID_REGNUM, arm64_gcc::v27, fpu_v27 }, NULL, NULL},
|
||||
{ "v28", NULL, 16, FPU_OFFSET(28), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v28, LLDB_INVALID_REGNUM, arm64_gcc::v28, fpu_v28 }, NULL, NULL},
|
||||
{ "v29", NULL, 16, FPU_OFFSET(29), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v29, LLDB_INVALID_REGNUM, arm64_gcc::v29, fpu_v29 }, NULL, NULL},
|
||||
{ "v30", NULL, 16, FPU_OFFSET(30), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v30, LLDB_INVALID_REGNUM, arm64_gcc::v30, fpu_v30 }, NULL, NULL},
|
||||
{ "v31", NULL, 16, FPU_OFFSET(31), eEncodingVector, eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v31, LLDB_INVALID_REGNUM, arm64_gcc::v31, fpu_v31 }, NULL, NULL},
|
||||
|
||||
{ "fpsr", NULL, 4, FPU_OFFSET_NAME(fpsr), eEncodingUint, eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, fpu_fpsr }, NULL, NULL},
|
||||
{ "fpcr", NULL, 4, FPU_OFFSET_NAME(fpcr), eEncodingUint, eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, fpu_fpcr }, NULL, NULL},
|
||||
|
||||
{ "far", NULL, 8, EXC_OFFSET_NAME(far), eEncodingUint, eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, exc_far }, NULL, NULL},
|
||||
{ "esr", NULL, 4, EXC_OFFSET_NAME(esr), eEncodingUint, eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, exc_esr }, NULL, NULL},
|
||||
{ "exception",NULL, 4, EXC_OFFSET_NAME(exception), eEncodingUint, eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, exc_exception }, NULL, NULL},
|
||||
|
||||
{ DEFINE_DBG (bvr, 0) },
|
||||
{ DEFINE_DBG (bvr, 1) },
|
||||
{ DEFINE_DBG (bvr, 2) },
|
||||
{ DEFINE_DBG (bvr, 3) },
|
||||
{ DEFINE_DBG (bvr, 4) },
|
||||
{ DEFINE_DBG (bvr, 5) },
|
||||
{ DEFINE_DBG (bvr, 6) },
|
||||
{ DEFINE_DBG (bvr, 7) },
|
||||
{ DEFINE_DBG (bvr, 8) },
|
||||
{ DEFINE_DBG (bvr, 9) },
|
||||
{ DEFINE_DBG (bvr, 10) },
|
||||
{ DEFINE_DBG (bvr, 11) },
|
||||
{ DEFINE_DBG (bvr, 12) },
|
||||
{ DEFINE_DBG (bvr, 13) },
|
||||
{ DEFINE_DBG (bvr, 14) },
|
||||
{ DEFINE_DBG (bvr, 15) },
|
||||
|
||||
{ DEFINE_DBG (bcr, 0) },
|
||||
{ DEFINE_DBG (bcr, 1) },
|
||||
{ DEFINE_DBG (bcr, 2) },
|
||||
{ DEFINE_DBG (bcr, 3) },
|
||||
{ DEFINE_DBG (bcr, 4) },
|
||||
{ DEFINE_DBG (bcr, 5) },
|
||||
{ DEFINE_DBG (bcr, 6) },
|
||||
{ DEFINE_DBG (bcr, 7) },
|
||||
{ DEFINE_DBG (bcr, 8) },
|
||||
{ DEFINE_DBG (bcr, 9) },
|
||||
{ DEFINE_DBG (bcr, 10) },
|
||||
{ DEFINE_DBG (bcr, 11) },
|
||||
{ DEFINE_DBG (bcr, 12) },
|
||||
{ DEFINE_DBG (bcr, 13) },
|
||||
{ DEFINE_DBG (bcr, 14) },
|
||||
{ DEFINE_DBG (bcr, 15) },
|
||||
|
||||
{ DEFINE_DBG (wvr, 0) },
|
||||
{ DEFINE_DBG (wvr, 1) },
|
||||
{ DEFINE_DBG (wvr, 2) },
|
||||
{ DEFINE_DBG (wvr, 3) },
|
||||
{ DEFINE_DBG (wvr, 4) },
|
||||
{ DEFINE_DBG (wvr, 5) },
|
||||
{ DEFINE_DBG (wvr, 6) },
|
||||
{ DEFINE_DBG (wvr, 7) },
|
||||
{ DEFINE_DBG (wvr, 8) },
|
||||
{ DEFINE_DBG (wvr, 9) },
|
||||
{ DEFINE_DBG (wvr, 10) },
|
||||
{ DEFINE_DBG (wvr, 11) },
|
||||
{ DEFINE_DBG (wvr, 12) },
|
||||
{ DEFINE_DBG (wvr, 13) },
|
||||
{ DEFINE_DBG (wvr, 14) },
|
||||
{ DEFINE_DBG (wvr, 15) },
|
||||
|
||||
{ DEFINE_DBG (wcr, 0) },
|
||||
{ DEFINE_DBG (wcr, 1) },
|
||||
{ DEFINE_DBG (wcr, 2) },
|
||||
{ DEFINE_DBG (wcr, 3) },
|
||||
{ DEFINE_DBG (wcr, 4) },
|
||||
{ DEFINE_DBG (wcr, 5) },
|
||||
{ DEFINE_DBG (wcr, 6) },
|
||||
{ DEFINE_DBG (wcr, 7) },
|
||||
{ DEFINE_DBG (wcr, 8) },
|
||||
{ DEFINE_DBG (wcr, 9) },
|
||||
{ DEFINE_DBG (wcr, 10) },
|
||||
{ DEFINE_DBG (wcr, 11) },
|
||||
{ DEFINE_DBG (wcr, 12) },
|
||||
{ DEFINE_DBG (wcr, 13) },
|
||||
{ DEFINE_DBG (wcr, 14) },
|
||||
{ DEFINE_DBG (wcr, 15) }
|
||||
};
|
||||
//-----------------------------------------------------------------------------
|
||||
// Include RegisterInfos_arm64 to declare our g_register_infos_arm64 structure.
|
||||
//-----------------------------------------------------------------------------
|
||||
#define DECLARE_REGISTER_INFOS_ARM64_STRUCT
|
||||
#include "RegisterInfos_arm64.h"
|
||||
#undef DECLARE_REGISTER_INFOS_ARM64_STRUCT
|
||||
|
||||
// General purpose registers
|
||||
static uint32_t
|
||||
|
@ -463,7 +171,7 @@ g_exc_regnums[] =
|
|||
exc_exception
|
||||
};
|
||||
|
||||
static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos);
|
||||
static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos_arm64);
|
||||
|
||||
void
|
||||
RegisterContextDarwin_arm64::InvalidateAllRegisters ()
|
||||
|
@ -484,7 +192,7 @@ RegisterContextDarwin_arm64::GetRegisterInfoAtIndex (size_t reg)
|
|||
{
|
||||
assert(k_num_register_infos == k_num_registers);
|
||||
if (reg < k_num_registers)
|
||||
return &g_register_infos[reg];
|
||||
return &g_register_infos_arm64[reg];
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -497,7 +205,7 @@ RegisterContextDarwin_arm64::GetRegisterInfosCount ()
|
|||
const RegisterInfo *
|
||||
RegisterContextDarwin_arm64::GetRegisterInfos ()
|
||||
{
|
||||
return g_register_infos;
|
||||
return g_register_infos_arm64;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
//===-- RegisterContextLinux_arm64.cpp -------------------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
#include <stddef.h>
|
||||
#include <vector>
|
||||
#include <cassert>
|
||||
|
||||
#include "llvm/Support/Compiler.h"
|
||||
#include "lldb/lldb-defines.h"
|
||||
|
||||
#include "RegisterContextLinux_arm64.h"
|
||||
|
||||
// Based on RegisterContextDarwin_arm64.cpp
|
||||
#define GPR_OFFSET(idx) ((idx) * 8)
|
||||
#define GPR_OFFSET_NAME(reg) (LLVM_EXTENSION offsetof (RegisterContextLinux_arm64::GPR, reg))
|
||||
|
||||
#define FPU_OFFSET(idx) ((idx) * 16 + sizeof (RegisterContextLinux_arm64::GPR))
|
||||
#define FPU_OFFSET_NAME(reg) (LLVM_EXTENSION offsetof (RegisterContextLinux_arm64::FPU, reg))
|
||||
|
||||
#define EXC_OFFSET_NAME(reg) (LLVM_EXTENSION offsetof (RegisterContextLinux_arm64::EXC, reg) + sizeof (RegisterContextLinux_arm64::GPR) + sizeof (RegisterContextLinux_arm64::FPU))
|
||||
#define DBG_OFFSET_NAME(reg) (LLVM_EXTENSION offsetof (RegisterContextLinux_arm64::DBG, reg) + sizeof (RegisterContextLinux_arm64::GPR) + sizeof (RegisterContextLinux_arm64::FPU) + sizeof (RegisterContextLinux_arm64::EXC))
|
||||
|
||||
#define DEFINE_DBG(reg, i) #reg, NULL, sizeof(((RegisterContextLinux_arm64::DBG *)NULL)->reg[i]), DBG_OFFSET_NAME(reg[i]), lldb::eEncodingUint, lldb::eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, dbg_##reg##i }, NULL, NULL
|
||||
#define REG_CONTEXT_SIZE (sizeof (RegisterContextLinux_arm64::GPR) + sizeof (RegisterContextLinux_arm64::FPU) + sizeof (RegisterContextLinux_arm64::EXC))
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Include RegisterInfos_arm64 to declare our g_register_infos_arm64 structure.
|
||||
//-----------------------------------------------------------------------------
|
||||
#define DECLARE_REGISTER_INFOS_ARM64_STRUCT
|
||||
#include "RegisterInfos_arm64.h"
|
||||
#undef DECLARE_REGISTER_INFOS_ARM64_STRUCT
|
||||
|
||||
static const lldb_private::RegisterInfo *
|
||||
GetRegisterInfoPtr (const lldb_private::ArchSpec &target_arch)
|
||||
{
|
||||
switch (target_arch.GetMachine())
|
||||
{
|
||||
case llvm::Triple::aarch64:
|
||||
return g_register_infos_arm64;
|
||||
default:
|
||||
assert(false && "Unhandled target architecture.");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
GetRegisterInfoCount(const lldb_private::ArchSpec &target_arch)
|
||||
{
|
||||
switch (target_arch.GetMachine())
|
||||
{
|
||||
case llvm::Triple::aarch64:
|
||||
return static_cast<uint32_t>(sizeof(g_register_infos_arm64) / sizeof(g_register_infos_arm64[0]));
|
||||
default:
|
||||
assert(false && "Unhandled target architecture.");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
RegisterContextLinux_arm64::RegisterContextLinux_arm64(const lldb_private::ArchSpec &target_arch) :
|
||||
lldb_private::RegisterInfoInterface(target_arch),
|
||||
m_register_info_p(GetRegisterInfoPtr(target_arch)),
|
||||
m_register_info_count(GetRegisterInfoCount(target_arch))
|
||||
{
|
||||
}
|
||||
|
||||
size_t
|
||||
RegisterContextLinux_arm64::GetGPRSize() const
|
||||
{
|
||||
return sizeof(struct RegisterContextLinux_arm64::GPR);
|
||||
}
|
||||
|
||||
const lldb_private::RegisterInfo *
|
||||
RegisterContextLinux_arm64::GetRegisterInfo() const
|
||||
{
|
||||
return m_register_info_p;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
RegisterContextLinux_arm64::GetRegisterCount() const
|
||||
{
|
||||
return m_register_info_count;
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
//===-- RegisterContextLinux_arm64.h ----------------------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef liblldb_RegisterContextLinux_arm64_H_
|
||||
#define liblldb_RegisterContextLinux_arm64_H_
|
||||
|
||||
#include "lldb/lldb-private.h"
|
||||
#include "lldb/Target/RegisterContext.h"
|
||||
#include "RegisterContextPOSIX.h"
|
||||
#include "RegisterInfoInterface.h"
|
||||
|
||||
class RegisterContextLinux_arm64
|
||||
: public lldb_private::RegisterInfoInterface
|
||||
{
|
||||
public:
|
||||
// based on RegisterContextDarwin_arm64.h
|
||||
struct GPR
|
||||
{
|
||||
uint64_t x[29]; // x0-x28
|
||||
uint64_t fp; // x29
|
||||
uint64_t lr; // x30
|
||||
uint64_t sp; // x31
|
||||
uint64_t pc; // pc
|
||||
uint32_t cpsr; // cpsr
|
||||
};
|
||||
|
||||
// based on RegisterContextDarwin_arm64.h
|
||||
struct VReg
|
||||
{
|
||||
uint8_t bytes[16];
|
||||
};
|
||||
|
||||
// based on RegisterContextDarwin_arm64.h
|
||||
struct FPU
|
||||
{
|
||||
VReg v[32];
|
||||
uint32_t fpsr;
|
||||
uint32_t fpcr;
|
||||
};
|
||||
|
||||
// based on RegisterContextDarwin_arm64.h
|
||||
struct EXC
|
||||
{
|
||||
uint64_t far; // Virtual Fault Address
|
||||
uint32_t esr; // Exception syndrome
|
||||
uint32_t exception; // number of arm exception token
|
||||
};
|
||||
|
||||
// based on RegisterContextDarwin_arm64.h
|
||||
struct DBG
|
||||
{
|
||||
uint64_t bvr[16];
|
||||
uint64_t bcr[16];
|
||||
uint64_t wvr[16];
|
||||
uint64_t wcr[16];
|
||||
uint64_t mdscr_el1;
|
||||
};
|
||||
|
||||
RegisterContextLinux_arm64(const lldb_private::ArchSpec &target_arch);
|
||||
|
||||
size_t
|
||||
GetGPRSize() const override;
|
||||
|
||||
const lldb_private::RegisterInfo *
|
||||
GetRegisterInfo() const override;
|
||||
|
||||
uint32_t
|
||||
GetRegisterCount () const override;
|
||||
|
||||
private:
|
||||
const lldb_private::RegisterInfo *m_register_info_p;
|
||||
uint32_t m_register_info_count;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -0,0 +1,347 @@
|
|||
//===-- RegisterInfos_arm64.h ----------------------------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
#ifdef DECLARE_REGISTER_INFOS_ARM64_STRUCT
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include "lldb/lldb-private.h"
|
||||
#include "lldb/lldb-defines.h"
|
||||
#include "lldb/lldb-enumerations.h"
|
||||
|
||||
#include "ARM64_GCC_Registers.h"
|
||||
#include "ARM64_DWARF_Registers.h"
|
||||
|
||||
#ifndef GPR_OFFSET
|
||||
#error GPR_OFFSET must be defined before including this header file
|
||||
#endif
|
||||
|
||||
#ifndef GPR_OFFSET_NAME
|
||||
#error GPR_OFFSET_NAME must be defined before including this header file
|
||||
#endif
|
||||
|
||||
#ifndef FPU_OFFSET
|
||||
#error FPU_OFFSET must be defined before including this header file
|
||||
#endif
|
||||
|
||||
#ifndef FPU_OFFSET_NAME
|
||||
#error FPU_OFFSET_NAME must be defined before including this header file
|
||||
#endif
|
||||
|
||||
#ifndef EXC_OFFSET_NAME
|
||||
#error EXC_OFFSET_NAME must be defined before including this header file
|
||||
#endif
|
||||
|
||||
#ifndef DBG_OFFSET_NAME
|
||||
#error DBG_OFFSET_NAME must be defined before including this header file
|
||||
#endif
|
||||
|
||||
#ifndef DEFINE_DBG
|
||||
#error DEFINE_DBG must be defined before including this header file
|
||||
#endif
|
||||
|
||||
enum
|
||||
{
|
||||
gpr_x0 = 0,
|
||||
gpr_x1,
|
||||
gpr_x2,
|
||||
gpr_x3,
|
||||
gpr_x4,
|
||||
gpr_x5,
|
||||
gpr_x6,
|
||||
gpr_x7,
|
||||
gpr_x8,
|
||||
gpr_x9,
|
||||
gpr_x10,
|
||||
gpr_x11,
|
||||
gpr_x12,
|
||||
gpr_x13,
|
||||
gpr_x14,
|
||||
gpr_x15,
|
||||
gpr_x16,
|
||||
gpr_x17,
|
||||
gpr_x18,
|
||||
gpr_x19,
|
||||
gpr_x20,
|
||||
gpr_x21,
|
||||
gpr_x22,
|
||||
gpr_x23,
|
||||
gpr_x24,
|
||||
gpr_x25,
|
||||
gpr_x26,
|
||||
gpr_x27,
|
||||
gpr_x28,
|
||||
gpr_x29 = 29, gpr_fp = gpr_x29,
|
||||
gpr_x30 = 30, gpr_lr = gpr_x30, gpr_ra = gpr_x30,
|
||||
gpr_x31 = 31, gpr_sp = gpr_x31,
|
||||
gpr_pc = 32,
|
||||
gpr_cpsr,
|
||||
|
||||
fpu_v0,
|
||||
fpu_v1,
|
||||
fpu_v2,
|
||||
fpu_v3,
|
||||
fpu_v4,
|
||||
fpu_v5,
|
||||
fpu_v6,
|
||||
fpu_v7,
|
||||
fpu_v8,
|
||||
fpu_v9,
|
||||
fpu_v10,
|
||||
fpu_v11,
|
||||
fpu_v12,
|
||||
fpu_v13,
|
||||
fpu_v14,
|
||||
fpu_v15,
|
||||
fpu_v16,
|
||||
fpu_v17,
|
||||
fpu_v18,
|
||||
fpu_v19,
|
||||
fpu_v20,
|
||||
fpu_v21,
|
||||
fpu_v22,
|
||||
fpu_v23,
|
||||
fpu_v24,
|
||||
fpu_v25,
|
||||
fpu_v26,
|
||||
fpu_v27,
|
||||
fpu_v28,
|
||||
fpu_v29,
|
||||
fpu_v30,
|
||||
fpu_v31,
|
||||
|
||||
fpu_fpsr,
|
||||
fpu_fpcr,
|
||||
|
||||
exc_far,
|
||||
exc_esr,
|
||||
exc_exception,
|
||||
|
||||
dbg_bvr0,
|
||||
dbg_bvr1,
|
||||
dbg_bvr2,
|
||||
dbg_bvr3,
|
||||
dbg_bvr4,
|
||||
dbg_bvr5,
|
||||
dbg_bvr6,
|
||||
dbg_bvr7,
|
||||
dbg_bvr8,
|
||||
dbg_bvr9,
|
||||
dbg_bvr10,
|
||||
dbg_bvr11,
|
||||
dbg_bvr12,
|
||||
dbg_bvr13,
|
||||
dbg_bvr14,
|
||||
dbg_bvr15,
|
||||
|
||||
dbg_bcr0,
|
||||
dbg_bcr1,
|
||||
dbg_bcr2,
|
||||
dbg_bcr3,
|
||||
dbg_bcr4,
|
||||
dbg_bcr5,
|
||||
dbg_bcr6,
|
||||
dbg_bcr7,
|
||||
dbg_bcr8,
|
||||
dbg_bcr9,
|
||||
dbg_bcr10,
|
||||
dbg_bcr11,
|
||||
dbg_bcr12,
|
||||
dbg_bcr13,
|
||||
dbg_bcr14,
|
||||
dbg_bcr15,
|
||||
|
||||
dbg_wvr0,
|
||||
dbg_wvr1,
|
||||
dbg_wvr2,
|
||||
dbg_wvr3,
|
||||
dbg_wvr4,
|
||||
dbg_wvr5,
|
||||
dbg_wvr6,
|
||||
dbg_wvr7,
|
||||
dbg_wvr8,
|
||||
dbg_wvr9,
|
||||
dbg_wvr10,
|
||||
dbg_wvr11,
|
||||
dbg_wvr12,
|
||||
dbg_wvr13,
|
||||
dbg_wvr14,
|
||||
dbg_wvr15,
|
||||
|
||||
dbg_wcr0,
|
||||
dbg_wcr1,
|
||||
dbg_wcr2,
|
||||
dbg_wcr3,
|
||||
dbg_wcr4,
|
||||
dbg_wcr5,
|
||||
dbg_wcr6,
|
||||
dbg_wcr7,
|
||||
dbg_wcr8,
|
||||
dbg_wcr9,
|
||||
dbg_wcr10,
|
||||
dbg_wcr11,
|
||||
dbg_wcr12,
|
||||
dbg_wcr13,
|
||||
dbg_wcr14,
|
||||
dbg_wcr15,
|
||||
|
||||
k_num_registers
|
||||
};
|
||||
|
||||
static lldb_private::RegisterInfo g_register_infos_arm64[] = {
|
||||
// General purpose registers
|
||||
// NAME ALT SZ OFFSET ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS
|
||||
// ====== ======= == ============= ============= ============ =============== =============== ========================= ===================== ============= ========== ===============
|
||||
{ "x0", NULL, 8, GPR_OFFSET(0), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x0, arm64_dwarf::x0, LLDB_INVALID_REGNUM, arm64_gcc::x0, gpr_x0 }, NULL, NULL},
|
||||
{ "x1", NULL, 8, GPR_OFFSET(1), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x1, arm64_dwarf::x1, LLDB_INVALID_REGNUM, arm64_gcc::x1, gpr_x1 }, NULL, NULL},
|
||||
{ "x2", NULL, 8, GPR_OFFSET(2), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x2, arm64_dwarf::x2, LLDB_INVALID_REGNUM, arm64_gcc::x2, gpr_x2 }, NULL, NULL},
|
||||
{ "x3", NULL, 8, GPR_OFFSET(3), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x3, arm64_dwarf::x3, LLDB_INVALID_REGNUM, arm64_gcc::x3, gpr_x3 }, NULL, NULL},
|
||||
{ "x4", NULL, 8, GPR_OFFSET(4), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x4, arm64_dwarf::x4, LLDB_INVALID_REGNUM, arm64_gcc::x4, gpr_x4 }, NULL, NULL},
|
||||
{ "x5", NULL, 8, GPR_OFFSET(5), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x5, arm64_dwarf::x5, LLDB_INVALID_REGNUM, arm64_gcc::x5, gpr_x5 }, NULL, NULL},
|
||||
{ "x6", NULL, 8, GPR_OFFSET(6), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x6, arm64_dwarf::x6, LLDB_INVALID_REGNUM, arm64_gcc::x6, gpr_x6 }, NULL, NULL},
|
||||
{ "x7", NULL, 8, GPR_OFFSET(7), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x7, arm64_dwarf::x7, LLDB_INVALID_REGNUM, arm64_gcc::x7, gpr_x7 }, NULL, NULL},
|
||||
{ "x8", NULL, 8, GPR_OFFSET(8), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x8, arm64_dwarf::x8, LLDB_INVALID_REGNUM, arm64_gcc::x8, gpr_x8 }, NULL, NULL},
|
||||
{ "x9", NULL, 8, GPR_OFFSET(9), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x9, arm64_dwarf::x9, LLDB_INVALID_REGNUM, arm64_gcc::x9, gpr_x9 }, NULL, NULL},
|
||||
{ "x10", NULL, 8, GPR_OFFSET(10), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x10, arm64_dwarf::x10, LLDB_INVALID_REGNUM, arm64_gcc::x10, gpr_x10 }, NULL, NULL},
|
||||
{ "x11", NULL, 8, GPR_OFFSET(11), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x11, arm64_dwarf::x11, LLDB_INVALID_REGNUM, arm64_gcc::x11, gpr_x11 }, NULL, NULL},
|
||||
{ "x12", NULL, 8, GPR_OFFSET(12), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x12, arm64_dwarf::x12, LLDB_INVALID_REGNUM, arm64_gcc::x12, gpr_x12 }, NULL, NULL},
|
||||
{ "x13", NULL, 8, GPR_OFFSET(13), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x13, arm64_dwarf::x13, LLDB_INVALID_REGNUM, arm64_gcc::x13, gpr_x13 }, NULL, NULL},
|
||||
{ "x14", NULL, 8, GPR_OFFSET(14), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x14, arm64_dwarf::x14, LLDB_INVALID_REGNUM, arm64_gcc::x14, gpr_x14 }, NULL, NULL},
|
||||
{ "x15", NULL, 8, GPR_OFFSET(15), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x15, arm64_dwarf::x15, LLDB_INVALID_REGNUM, arm64_gcc::x15, gpr_x15 }, NULL, NULL},
|
||||
{ "x16", NULL, 8, GPR_OFFSET(16), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x16, arm64_dwarf::x16, LLDB_INVALID_REGNUM, arm64_gcc::x16, gpr_x16 }, NULL, NULL},
|
||||
{ "x17", NULL, 8, GPR_OFFSET(17), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x17, arm64_dwarf::x17, LLDB_INVALID_REGNUM, arm64_gcc::x17, gpr_x17 }, NULL, NULL},
|
||||
{ "x18", NULL, 8, GPR_OFFSET(18), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x18, arm64_dwarf::x18, LLDB_INVALID_REGNUM, arm64_gcc::x18, gpr_x18 }, NULL, NULL},
|
||||
{ "x19", NULL, 8, GPR_OFFSET(19), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x19, arm64_dwarf::x19, LLDB_INVALID_REGNUM, arm64_gcc::x19, gpr_x19 }, NULL, NULL},
|
||||
{ "x20", NULL, 8, GPR_OFFSET(20), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x20, arm64_dwarf::x20, LLDB_INVALID_REGNUM, arm64_gcc::x20, gpr_x20 }, NULL, NULL},
|
||||
{ "x21", NULL, 8, GPR_OFFSET(21), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x21, arm64_dwarf::x21, LLDB_INVALID_REGNUM, arm64_gcc::x21, gpr_x21 }, NULL, NULL},
|
||||
{ "x22", NULL, 8, GPR_OFFSET(22), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x22, arm64_dwarf::x22, LLDB_INVALID_REGNUM, arm64_gcc::x22, gpr_x22 }, NULL, NULL},
|
||||
{ "x23", NULL, 8, GPR_OFFSET(23), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x23, arm64_dwarf::x23, LLDB_INVALID_REGNUM, arm64_gcc::x23, gpr_x23 }, NULL, NULL},
|
||||
{ "x24", NULL, 8, GPR_OFFSET(24), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x24, arm64_dwarf::x24, LLDB_INVALID_REGNUM, arm64_gcc::x24, gpr_x24 }, NULL, NULL},
|
||||
{ "x25", NULL, 8, GPR_OFFSET(25), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x25, arm64_dwarf::x25, LLDB_INVALID_REGNUM, arm64_gcc::x25, gpr_x25 }, NULL, NULL},
|
||||
{ "x26", NULL, 8, GPR_OFFSET(26), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x26, arm64_dwarf::x26, LLDB_INVALID_REGNUM, arm64_gcc::x26, gpr_x26 }, NULL, NULL},
|
||||
{ "x27", NULL, 8, GPR_OFFSET(27), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x27, arm64_dwarf::x27, LLDB_INVALID_REGNUM, arm64_gcc::x27, gpr_x27 }, NULL, NULL},
|
||||
{ "x28", NULL, 8, GPR_OFFSET(28), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x28, arm64_dwarf::x28, LLDB_INVALID_REGNUM, arm64_gcc::x28, gpr_x28 }, NULL, NULL},
|
||||
|
||||
{ "fp", "x29", 8, GPR_OFFSET(29), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::fp, arm64_dwarf::fp, LLDB_REGNUM_GENERIC_FP, arm64_gcc::fp, gpr_fp }, NULL, NULL},
|
||||
{ "lr", "x30", 8, GPR_OFFSET(30), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::lr, arm64_dwarf::lr, LLDB_REGNUM_GENERIC_RA, arm64_gcc::lr, gpr_lr }, NULL, NULL},
|
||||
{ "sp", "x31", 8, GPR_OFFSET(31), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::sp, arm64_dwarf::sp, LLDB_REGNUM_GENERIC_SP, arm64_gcc::sp, gpr_sp }, NULL, NULL},
|
||||
{ "pc", NULL, 8, GPR_OFFSET(32), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::pc, arm64_dwarf::pc, LLDB_REGNUM_GENERIC_PC, arm64_gcc::pc, gpr_pc }, NULL, NULL},
|
||||
|
||||
{ "cpsr", NULL, 4, GPR_OFFSET_NAME(cpsr), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::cpsr, arm64_dwarf::cpsr, LLDB_REGNUM_GENERIC_FLAGS, arm64_gcc::cpsr, gpr_cpsr }, NULL, NULL},
|
||||
|
||||
{ "v0", NULL, 16, FPU_OFFSET(0), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v0, LLDB_INVALID_REGNUM, arm64_gcc::v0, fpu_v0 }, NULL, NULL},
|
||||
{ "v1", NULL, 16, FPU_OFFSET(1), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v1, LLDB_INVALID_REGNUM, arm64_gcc::v1, fpu_v1 }, NULL, NULL},
|
||||
{ "v2", NULL, 16, FPU_OFFSET(2), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v2, LLDB_INVALID_REGNUM, arm64_gcc::v2, fpu_v2 }, NULL, NULL},
|
||||
{ "v3", NULL, 16, FPU_OFFSET(3), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v3, LLDB_INVALID_REGNUM, arm64_gcc::v3, fpu_v3 }, NULL, NULL},
|
||||
{ "v4", NULL, 16, FPU_OFFSET(4), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v4, LLDB_INVALID_REGNUM, arm64_gcc::v4, fpu_v4 }, NULL, NULL},
|
||||
{ "v5", NULL, 16, FPU_OFFSET(5), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v5, LLDB_INVALID_REGNUM, arm64_gcc::v5, fpu_v5 }, NULL, NULL},
|
||||
{ "v6", NULL, 16, FPU_OFFSET(6), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v6, LLDB_INVALID_REGNUM, arm64_gcc::v6, fpu_v6 }, NULL, NULL},
|
||||
{ "v7", NULL, 16, FPU_OFFSET(7), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v7, LLDB_INVALID_REGNUM, arm64_gcc::v7, fpu_v7 }, NULL, NULL},
|
||||
{ "v8", NULL, 16, FPU_OFFSET(8), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v8, LLDB_INVALID_REGNUM, arm64_gcc::v8, fpu_v8 }, NULL, NULL},
|
||||
{ "v9", NULL, 16, FPU_OFFSET(9), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v9, LLDB_INVALID_REGNUM, arm64_gcc::v9, fpu_v9 }, NULL, NULL},
|
||||
{ "v10", NULL, 16, FPU_OFFSET(10), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v10, LLDB_INVALID_REGNUM, arm64_gcc::v10, fpu_v10 }, NULL, NULL},
|
||||
{ "v11", NULL, 16, FPU_OFFSET(11), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v11, LLDB_INVALID_REGNUM, arm64_gcc::v11, fpu_v11 }, NULL, NULL},
|
||||
{ "v12", NULL, 16, FPU_OFFSET(12), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v12, LLDB_INVALID_REGNUM, arm64_gcc::v12, fpu_v12 }, NULL, NULL},
|
||||
{ "v13", NULL, 16, FPU_OFFSET(13), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v13, LLDB_INVALID_REGNUM, arm64_gcc::v13, fpu_v13 }, NULL, NULL},
|
||||
{ "v14", NULL, 16, FPU_OFFSET(14), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v14, LLDB_INVALID_REGNUM, arm64_gcc::v14, fpu_v14 }, NULL, NULL},
|
||||
{ "v15", NULL, 16, FPU_OFFSET(15), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v15, LLDB_INVALID_REGNUM, arm64_gcc::v15, fpu_v15 }, NULL, NULL},
|
||||
{ "v16", NULL, 16, FPU_OFFSET(16), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v16, LLDB_INVALID_REGNUM, arm64_gcc::v16, fpu_v16 }, NULL, NULL},
|
||||
{ "v17", NULL, 16, FPU_OFFSET(17), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v17, LLDB_INVALID_REGNUM, arm64_gcc::v17, fpu_v17 }, NULL, NULL},
|
||||
{ "v18", NULL, 16, FPU_OFFSET(18), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v18, LLDB_INVALID_REGNUM, arm64_gcc::v18, fpu_v18 }, NULL, NULL},
|
||||
{ "v19", NULL, 16, FPU_OFFSET(19), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v19, LLDB_INVALID_REGNUM, arm64_gcc::v19, fpu_v19 }, NULL, NULL},
|
||||
{ "v20", NULL, 16, FPU_OFFSET(20), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v20, LLDB_INVALID_REGNUM, arm64_gcc::v20, fpu_v20 }, NULL, NULL},
|
||||
{ "v21", NULL, 16, FPU_OFFSET(21), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v21, LLDB_INVALID_REGNUM, arm64_gcc::v21, fpu_v21 }, NULL, NULL},
|
||||
{ "v22", NULL, 16, FPU_OFFSET(22), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v22, LLDB_INVALID_REGNUM, arm64_gcc::v22, fpu_v22 }, NULL, NULL},
|
||||
{ "v23", NULL, 16, FPU_OFFSET(23), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v23, LLDB_INVALID_REGNUM, arm64_gcc::v23, fpu_v23 }, NULL, NULL},
|
||||
{ "v24", NULL, 16, FPU_OFFSET(24), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v24, LLDB_INVALID_REGNUM, arm64_gcc::v24, fpu_v24 }, NULL, NULL},
|
||||
{ "v25", NULL, 16, FPU_OFFSET(25), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v25, LLDB_INVALID_REGNUM, arm64_gcc::v25, fpu_v25 }, NULL, NULL},
|
||||
{ "v26", NULL, 16, FPU_OFFSET(26), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v26, LLDB_INVALID_REGNUM, arm64_gcc::v26, fpu_v26 }, NULL, NULL},
|
||||
{ "v27", NULL, 16, FPU_OFFSET(27), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v27, LLDB_INVALID_REGNUM, arm64_gcc::v27, fpu_v27 }, NULL, NULL},
|
||||
{ "v28", NULL, 16, FPU_OFFSET(28), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v28, LLDB_INVALID_REGNUM, arm64_gcc::v28, fpu_v28 }, NULL, NULL},
|
||||
{ "v29", NULL, 16, FPU_OFFSET(29), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v29, LLDB_INVALID_REGNUM, arm64_gcc::v29, fpu_v29 }, NULL, NULL},
|
||||
{ "v30", NULL, 16, FPU_OFFSET(30), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v30, LLDB_INVALID_REGNUM, arm64_gcc::v30, fpu_v30 }, NULL, NULL},
|
||||
{ "v31", NULL, 16, FPU_OFFSET(31), lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, arm64_dwarf::v31, LLDB_INVALID_REGNUM, arm64_gcc::v31, fpu_v31 }, NULL, NULL},
|
||||
|
||||
{ "fpsr", NULL, 4, FPU_OFFSET_NAME(fpsr), lldb::eEncodingUint, lldb::eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, fpu_fpsr }, NULL, NULL},
|
||||
{ "fpcr", NULL, 4, FPU_OFFSET_NAME(fpcr), lldb::eEncodingUint, lldb::eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, fpu_fpcr }, NULL, NULL},
|
||||
|
||||
{ "far", NULL, 8, EXC_OFFSET_NAME(far), lldb::eEncodingUint, lldb::eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, exc_far }, NULL, NULL},
|
||||
{ "esr", NULL, 4, EXC_OFFSET_NAME(esr), lldb::eEncodingUint, lldb::eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, exc_esr }, NULL, NULL},
|
||||
{ "exception",NULL, 4, EXC_OFFSET_NAME(exception), lldb::eEncodingUint, lldb::eFormatHex, { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, exc_exception }, NULL, NULL},
|
||||
|
||||
{ DEFINE_DBG (bvr, 0) },
|
||||
{ DEFINE_DBG (bvr, 1) },
|
||||
{ DEFINE_DBG (bvr, 2) },
|
||||
{ DEFINE_DBG (bvr, 3) },
|
||||
{ DEFINE_DBG (bvr, 4) },
|
||||
{ DEFINE_DBG (bvr, 5) },
|
||||
{ DEFINE_DBG (bvr, 6) },
|
||||
{ DEFINE_DBG (bvr, 7) },
|
||||
{ DEFINE_DBG (bvr, 8) },
|
||||
{ DEFINE_DBG (bvr, 9) },
|
||||
{ DEFINE_DBG (bvr, 10) },
|
||||
{ DEFINE_DBG (bvr, 11) },
|
||||
{ DEFINE_DBG (bvr, 12) },
|
||||
{ DEFINE_DBG (bvr, 13) },
|
||||
{ DEFINE_DBG (bvr, 14) },
|
||||
{ DEFINE_DBG (bvr, 15) },
|
||||
|
||||
{ DEFINE_DBG (bcr, 0) },
|
||||
{ DEFINE_DBG (bcr, 1) },
|
||||
{ DEFINE_DBG (bcr, 2) },
|
||||
{ DEFINE_DBG (bcr, 3) },
|
||||
{ DEFINE_DBG (bcr, 4) },
|
||||
{ DEFINE_DBG (bcr, 5) },
|
||||
{ DEFINE_DBG (bcr, 6) },
|
||||
{ DEFINE_DBG (bcr, 7) },
|
||||
{ DEFINE_DBG (bcr, 8) },
|
||||
{ DEFINE_DBG (bcr, 9) },
|
||||
{ DEFINE_DBG (bcr, 10) },
|
||||
{ DEFINE_DBG (bcr, 11) },
|
||||
{ DEFINE_DBG (bcr, 12) },
|
||||
{ DEFINE_DBG (bcr, 13) },
|
||||
{ DEFINE_DBG (bcr, 14) },
|
||||
{ DEFINE_DBG (bcr, 15) },
|
||||
|
||||
{ DEFINE_DBG (wvr, 0) },
|
||||
{ DEFINE_DBG (wvr, 1) },
|
||||
{ DEFINE_DBG (wvr, 2) },
|
||||
{ DEFINE_DBG (wvr, 3) },
|
||||
{ DEFINE_DBG (wvr, 4) },
|
||||
{ DEFINE_DBG (wvr, 5) },
|
||||
{ DEFINE_DBG (wvr, 6) },
|
||||
{ DEFINE_DBG (wvr, 7) },
|
||||
{ DEFINE_DBG (wvr, 8) },
|
||||
{ DEFINE_DBG (wvr, 9) },
|
||||
{ DEFINE_DBG (wvr, 10) },
|
||||
{ DEFINE_DBG (wvr, 11) },
|
||||
{ DEFINE_DBG (wvr, 12) },
|
||||
{ DEFINE_DBG (wvr, 13) },
|
||||
{ DEFINE_DBG (wvr, 14) },
|
||||
{ DEFINE_DBG (wvr, 15) },
|
||||
|
||||
{ DEFINE_DBG (wcr, 0) },
|
||||
{ DEFINE_DBG (wcr, 1) },
|
||||
{ DEFINE_DBG (wcr, 2) },
|
||||
{ DEFINE_DBG (wcr, 3) },
|
||||
{ DEFINE_DBG (wcr, 4) },
|
||||
{ DEFINE_DBG (wcr, 5) },
|
||||
{ DEFINE_DBG (wcr, 6) },
|
||||
{ DEFINE_DBG (wcr, 7) },
|
||||
{ DEFINE_DBG (wcr, 8) },
|
||||
{ DEFINE_DBG (wcr, 9) },
|
||||
{ DEFINE_DBG (wcr, 10) },
|
||||
{ DEFINE_DBG (wcr, 11) },
|
||||
{ DEFINE_DBG (wcr, 12) },
|
||||
{ DEFINE_DBG (wcr, 13) },
|
||||
{ DEFINE_DBG (wcr, 14) },
|
||||
{ DEFINE_DBG (wcr, 15) }
|
||||
};
|
||||
|
||||
#endif // DECLARE_REGISTER_INFOS_ARM64_STRUCT
|
|
@ -86,7 +86,7 @@ enum
|
|||
v31 // 95
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif // utility_ARM64_gdb_Registers_h_
|
||||
|
||||
|
|
Loading…
Reference in New Issue