blob: ace2e5a9f68b02899e22757c1b3bfc48fc1615fc [file] [log] [blame]
//===-- RegisterInfos_arm.h -------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifdef DECLARE_REGISTER_INFOS_ARM_STRUCT
#include <cstddef>
#include "lldb/lldb-defines.h"
#include "lldb/lldb-enumerations.h"
#include "lldb/lldb-private.h"
#include "Utility/ARM_DWARF_Registers.h"
#include "Utility/ARM_ehframe_Registers.h"
using namespace lldb;
using namespace lldb_private;
#ifndef GPR_OFFSET
#error GPR_OFFSET 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 FPSCR_OFFSET
#error FPSCR_OFFSET must be defined before including this header file
#endif
#ifndef EXC_OFFSET
#error EXC_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_r0 = 0,
gpr_r1,
gpr_r2,
gpr_r3,
gpr_r4,
gpr_r5,
gpr_r6,
gpr_r7,
gpr_r8,
gpr_r9,
gpr_r10,
gpr_r11,
gpr_r12,
gpr_r13,
gpr_sp = gpr_r13,
gpr_r14,
gpr_lr = gpr_r14,
gpr_r15,
gpr_pc = gpr_r15,
gpr_cpsr,
fpu_s0,
fpu_s1,
fpu_s2,
fpu_s3,
fpu_s4,
fpu_s5,
fpu_s6,
fpu_s7,
fpu_s8,
fpu_s9,
fpu_s10,
fpu_s11,
fpu_s12,
fpu_s13,
fpu_s14,
fpu_s15,
fpu_s16,
fpu_s17,
fpu_s18,
fpu_s19,
fpu_s20,
fpu_s21,
fpu_s22,
fpu_s23,
fpu_s24,
fpu_s25,
fpu_s26,
fpu_s27,
fpu_s28,
fpu_s29,
fpu_s30,
fpu_s31,
fpu_fpscr,
fpu_d0,
fpu_d1,
fpu_d2,
fpu_d3,
fpu_d4,
fpu_d5,
fpu_d6,
fpu_d7,
fpu_d8,
fpu_d9,
fpu_d10,
fpu_d11,
fpu_d12,
fpu_d13,
fpu_d14,
fpu_d15,
fpu_d16,
fpu_d17,
fpu_d18,
fpu_d19,
fpu_d20,
fpu_d21,
fpu_d22,
fpu_d23,
fpu_d24,
fpu_d25,
fpu_d26,
fpu_d27,
fpu_d28,
fpu_d29,
fpu_d30,
fpu_d31,
fpu_q0,
fpu_q1,
fpu_q2,
fpu_q3,
fpu_q4,
fpu_q5,
fpu_q6,
fpu_q7,
fpu_q8,
fpu_q9,
fpu_q10,
fpu_q11,
fpu_q12,
fpu_q13,
fpu_q14,
fpu_q15,
exc_exception,
exc_fsr,
exc_far,
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 uint32_t g_s0_invalidates[] = {fpu_d0, fpu_q0, LLDB_INVALID_REGNUM};
static uint32_t g_s1_invalidates[] = {fpu_d0, fpu_q0, LLDB_INVALID_REGNUM};
static uint32_t g_s2_invalidates[] = {fpu_d1, fpu_q0, LLDB_INVALID_REGNUM};
static uint32_t g_s3_invalidates[] = {fpu_d1, fpu_q0, LLDB_INVALID_REGNUM};
static uint32_t g_s4_invalidates[] = {fpu_d2, fpu_q1, LLDB_INVALID_REGNUM};
static uint32_t g_s5_invalidates[] = {fpu_d2, fpu_q1, LLDB_INVALID_REGNUM};
static uint32_t g_s6_invalidates[] = {fpu_d3, fpu_q1, LLDB_INVALID_REGNUM};
static uint32_t g_s7_invalidates[] = {fpu_d3, fpu_q1, LLDB_INVALID_REGNUM};
static uint32_t g_s8_invalidates[] = {fpu_d4, fpu_q2, LLDB_INVALID_REGNUM};
static uint32_t g_s9_invalidates[] = {fpu_d4, fpu_q2, LLDB_INVALID_REGNUM};
static uint32_t g_s10_invalidates[] = {fpu_d5, fpu_q2, LLDB_INVALID_REGNUM};
static uint32_t g_s11_invalidates[] = {fpu_d5, fpu_q2, LLDB_INVALID_REGNUM};
static uint32_t g_s12_invalidates[] = {fpu_d6, fpu_q3, LLDB_INVALID_REGNUM};
static uint32_t g_s13_invalidates[] = {fpu_d6, fpu_q3, LLDB_INVALID_REGNUM};
static uint32_t g_s14_invalidates[] = {fpu_d7, fpu_q3, LLDB_INVALID_REGNUM};
static uint32_t g_s15_invalidates[] = {fpu_d7, fpu_q3, LLDB_INVALID_REGNUM};
static uint32_t g_s16_invalidates[] = {fpu_d8, fpu_q4, LLDB_INVALID_REGNUM};
static uint32_t g_s17_invalidates[] = {fpu_d8, fpu_q4, LLDB_INVALID_REGNUM};
static uint32_t g_s18_invalidates[] = {fpu_d9, fpu_q4, LLDB_INVALID_REGNUM};
static uint32_t g_s19_invalidates[] = {fpu_d9, fpu_q4, LLDB_INVALID_REGNUM};
static uint32_t g_s20_invalidates[] = {fpu_d10, fpu_q5, LLDB_INVALID_REGNUM};
static uint32_t g_s21_invalidates[] = {fpu_d10, fpu_q5, LLDB_INVALID_REGNUM};
static uint32_t g_s22_invalidates[] = {fpu_d11, fpu_q5, LLDB_INVALID_REGNUM};
static uint32_t g_s23_invalidates[] = {fpu_d11, fpu_q5, LLDB_INVALID_REGNUM};
static uint32_t g_s24_invalidates[] = {fpu_d12, fpu_q6, LLDB_INVALID_REGNUM};
static uint32_t g_s25_invalidates[] = {fpu_d12, fpu_q6, LLDB_INVALID_REGNUM};
static uint32_t g_s26_invalidates[] = {fpu_d13, fpu_q6, LLDB_INVALID_REGNUM};
static uint32_t g_s27_invalidates[] = {fpu_d13, fpu_q6, LLDB_INVALID_REGNUM};
static uint32_t g_s28_invalidates[] = {fpu_d14, fpu_q7, LLDB_INVALID_REGNUM};
static uint32_t g_s29_invalidates[] = {fpu_d14, fpu_q7, LLDB_INVALID_REGNUM};
static uint32_t g_s30_invalidates[] = {fpu_d15, fpu_q7, LLDB_INVALID_REGNUM};
static uint32_t g_s31_invalidates[] = {fpu_d15, fpu_q7, LLDB_INVALID_REGNUM};
static uint32_t g_d0_invalidates[] = {fpu_q0, fpu_s0, fpu_s1,
LLDB_INVALID_REGNUM};
static uint32_t g_d1_invalidates[] = {fpu_q0, fpu_s2, fpu_s3,
LLDB_INVALID_REGNUM};
static uint32_t g_d2_invalidates[] = {fpu_q1, fpu_s4, fpu_s5,
LLDB_INVALID_REGNUM};
static uint32_t g_d3_invalidates[] = {fpu_q1, fpu_s6, fpu_s7,
LLDB_INVALID_REGNUM};
static uint32_t g_d4_invalidates[] = {fpu_q2, fpu_s8, fpu_s9,
LLDB_INVALID_REGNUM};
static uint32_t g_d5_invalidates[] = {fpu_q2, fpu_s10, fpu_s11,
LLDB_INVALID_REGNUM};
static uint32_t g_d6_invalidates[] = {fpu_q3, fpu_s12, fpu_s13,
LLDB_INVALID_REGNUM};
static uint32_t g_d7_invalidates[] = {fpu_q3, fpu_s14, fpu_s15,
LLDB_INVALID_REGNUM};
static uint32_t g_d8_invalidates[] = {fpu_q4, fpu_s16, fpu_s17,
LLDB_INVALID_REGNUM};
static uint32_t g_d9_invalidates[] = {fpu_q4, fpu_s18, fpu_s19,
LLDB_INVALID_REGNUM};
static uint32_t g_d10_invalidates[] = {fpu_q5, fpu_s20, fpu_s21,
LLDB_INVALID_REGNUM};
static uint32_t g_d11_invalidates[] = {fpu_q5, fpu_s22, fpu_s23,
LLDB_INVALID_REGNUM};
static uint32_t g_d12_invalidates[] = {fpu_q6, fpu_s24, fpu_s25,
LLDB_INVALID_REGNUM};
static uint32_t g_d13_invalidates[] = {fpu_q6, fpu_s26, fpu_s27,
LLDB_INVALID_REGNUM};
static uint32_t g_d14_invalidates[] = {fpu_q7, fpu_s28, fpu_s29,
LLDB_INVALID_REGNUM};
static uint32_t g_d15_invalidates[] = {fpu_q7, fpu_s30, fpu_s31,
LLDB_INVALID_REGNUM};
static uint32_t g_d16_invalidates[] = {fpu_q8, LLDB_INVALID_REGNUM};
static uint32_t g_d17_invalidates[] = {fpu_q8, LLDB_INVALID_REGNUM};
static uint32_t g_d18_invalidates[] = {fpu_q9, LLDB_INVALID_REGNUM};
static uint32_t g_d19_invalidates[] = {fpu_q9, LLDB_INVALID_REGNUM};
static uint32_t g_d20_invalidates[] = {fpu_q10, LLDB_INVALID_REGNUM};
static uint32_t g_d21_invalidates[] = {fpu_q10, LLDB_INVALID_REGNUM};
static uint32_t g_d22_invalidates[] = {fpu_q11, LLDB_INVALID_REGNUM};
static uint32_t g_d23_invalidates[] = {fpu_q11, LLDB_INVALID_REGNUM};
static uint32_t g_d24_invalidates[] = {fpu_q12, LLDB_INVALID_REGNUM};
static uint32_t g_d25_invalidates[] = {fpu_q12, LLDB_INVALID_REGNUM};
static uint32_t g_d26_invalidates[] = {fpu_q13, LLDB_INVALID_REGNUM};
static uint32_t g_d27_invalidates[] = {fpu_q13, LLDB_INVALID_REGNUM};
static uint32_t g_d28_invalidates[] = {fpu_q14, LLDB_INVALID_REGNUM};
static uint32_t g_d29_invalidates[] = {fpu_q14, LLDB_INVALID_REGNUM};
static uint32_t g_d30_invalidates[] = {fpu_q15, LLDB_INVALID_REGNUM};
static uint32_t g_d31_invalidates[] = {fpu_q15, LLDB_INVALID_REGNUM};
static uint32_t g_q0_invalidates[] = {
fpu_d0, fpu_d1, fpu_s0, fpu_s1, fpu_s2, fpu_s3, LLDB_INVALID_REGNUM};
static uint32_t g_q1_invalidates[] = {
fpu_d2, fpu_d3, fpu_s4, fpu_s5, fpu_s6, fpu_s7, LLDB_INVALID_REGNUM};
static uint32_t g_q2_invalidates[] = {
fpu_d4, fpu_d5, fpu_s8, fpu_s9, fpu_s10, fpu_s11, LLDB_INVALID_REGNUM};
static uint32_t g_q3_invalidates[] = {
fpu_d6, fpu_d7, fpu_s12, fpu_s13, fpu_s14, fpu_s15, LLDB_INVALID_REGNUM};
static uint32_t g_q4_invalidates[] = {
fpu_d8, fpu_d9, fpu_s16, fpu_s17, fpu_s18, fpu_s19, LLDB_INVALID_REGNUM};
static uint32_t g_q5_invalidates[] = {
fpu_d10, fpu_d11, fpu_s20, fpu_s21, fpu_s22, fpu_s23, LLDB_INVALID_REGNUM};
static uint32_t g_q6_invalidates[] = {
fpu_d12, fpu_d13, fpu_s24, fpu_s25, fpu_s26, fpu_s27, LLDB_INVALID_REGNUM};
static uint32_t g_q7_invalidates[] = {
fpu_d14, fpu_d15, fpu_s28, fpu_s29, fpu_s30, fpu_s31, LLDB_INVALID_REGNUM};
static uint32_t g_q8_invalidates[] = {fpu_d16, fpu_d17, LLDB_INVALID_REGNUM};
static uint32_t g_q9_invalidates[] = {fpu_d18, fpu_d19, LLDB_INVALID_REGNUM};
static uint32_t g_q10_invalidates[] = {fpu_d20, fpu_d21, LLDB_INVALID_REGNUM};
static uint32_t g_q11_invalidates[] = {fpu_d22, fpu_d23, LLDB_INVALID_REGNUM};
static uint32_t g_q12_invalidates[] = {fpu_d24, fpu_d25, LLDB_INVALID_REGNUM};
static uint32_t g_q13_invalidates[] = {fpu_d26, fpu_d27, LLDB_INVALID_REGNUM};
static uint32_t g_q14_invalidates[] = {fpu_d28, fpu_d29, LLDB_INVALID_REGNUM};
static uint32_t g_q15_invalidates[] = {fpu_d30, fpu_d31, LLDB_INVALID_REGNUM};
static uint32_t g_q0_contained[] = {fpu_q0, LLDB_INVALID_REGNUM};
static uint32_t g_q1_contained[] = {fpu_q1, LLDB_INVALID_REGNUM};
static uint32_t g_q2_contained[] = {fpu_q2, LLDB_INVALID_REGNUM};
static uint32_t g_q3_contained[] = {fpu_q3, LLDB_INVALID_REGNUM};
static uint32_t g_q4_contained[] = {fpu_q4, LLDB_INVALID_REGNUM};
static uint32_t g_q5_contained[] = {fpu_q5, LLDB_INVALID_REGNUM};
static uint32_t g_q6_contained[] = {fpu_q6, LLDB_INVALID_REGNUM};
static uint32_t g_q7_contained[] = {fpu_q7, LLDB_INVALID_REGNUM};
static uint32_t g_q8_contained[] = {fpu_q8, LLDB_INVALID_REGNUM};
static uint32_t g_q9_contained[] = {fpu_q9, LLDB_INVALID_REGNUM};
static uint32_t g_q10_contained[] = {fpu_q10, LLDB_INVALID_REGNUM};
static uint32_t g_q11_contained[] = {fpu_q11, LLDB_INVALID_REGNUM};
static uint32_t g_q12_contained[] = {fpu_q12, LLDB_INVALID_REGNUM};
static uint32_t g_q13_contained[] = {fpu_q13, LLDB_INVALID_REGNUM};
static uint32_t g_q14_contained[] = {fpu_q14, LLDB_INVALID_REGNUM};
static uint32_t g_q15_contained[] = {fpu_q15, LLDB_INVALID_REGNUM};
#define FPU_REG(name, size, offset, qreg) \
{ \
#name, nullptr, size, FPU_OFFSET(offset), eEncodingIEEE754, eFormatFloat, \
{LLDB_INVALID_REGNUM, dwarf_##name, LLDB_INVALID_REGNUM, \
LLDB_INVALID_REGNUM, fpu_##name }, \
g_##qreg##_contained, g_##name##_invalidates, \
}
#define FPU_QREG(name, offset) \
{ \
#name, nullptr, 16, FPU_OFFSET(offset), eEncodingVector, \
eFormatVectorOfUInt8, \
{LLDB_INVALID_REGNUM, dwarf_##name, LLDB_INVALID_REGNUM, \
LLDB_INVALID_REGNUM, fpu_##name }, \
nullptr, g_##name##_invalidates, \
}
static RegisterInfo g_register_infos_arm[] = {
// NAME ALT SZ OFFSET ENCODING FORMAT
// EH_FRAME DWARF GENERIC
// PROCESS PLUGIN LLDB NATIVE VALUE REGS INVALIDATE REGS
// =========== ======= == ============== ================
// ==================== =================== ===================
// ========================== =================== =============
// ============== =================
{
"r0",
nullptr,
4,
GPR_OFFSET(0),
eEncodingUint,
eFormatHex,
{ehframe_r0, dwarf_r0, LLDB_REGNUM_GENERIC_ARG1, LLDB_INVALID_REGNUM,
gpr_r0},
nullptr,
nullptr,
},
{
"r1",
nullptr,
4,
GPR_OFFSET(1),
eEncodingUint,
eFormatHex,
{ehframe_r1, dwarf_r1, LLDB_REGNUM_GENERIC_ARG2, LLDB_INVALID_REGNUM,
gpr_r1},
nullptr,
nullptr,
},
{
"r2",
nullptr,
4,
GPR_OFFSET(2),
eEncodingUint,
eFormatHex,
{ehframe_r2, dwarf_r2, LLDB_REGNUM_GENERIC_ARG3, LLDB_INVALID_REGNUM,
gpr_r2},
nullptr,
nullptr,
},
{
"r3",
nullptr,
4,
GPR_OFFSET(3),
eEncodingUint,
eFormatHex,
{ehframe_r3, dwarf_r3, LLDB_REGNUM_GENERIC_ARG4, LLDB_INVALID_REGNUM,
gpr_r3},
nullptr,
nullptr,
},
{
"r4",
nullptr,
4,
GPR_OFFSET(4),
eEncodingUint,
eFormatHex,
{ehframe_r4, dwarf_r4, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
gpr_r4},
nullptr,
nullptr,
},
{
"r5",
nullptr,
4,
GPR_OFFSET(5),
eEncodingUint,
eFormatHex,
{ehframe_r5, dwarf_r5, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
gpr_r5},
nullptr,
nullptr,
},
{
"r6",
nullptr,
4,
GPR_OFFSET(6),
eEncodingUint,
eFormatHex,
{ehframe_r6, dwarf_r6, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
gpr_r6},
nullptr,
nullptr,
},
{
"r7",
nullptr,
4,
GPR_OFFSET(7),
eEncodingUint,
eFormatHex,
{ehframe_r7, dwarf_r7, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
gpr_r7},
nullptr,
nullptr,
},
{
"r8",
nullptr,
4,
GPR_OFFSET(8),
eEncodingUint,
eFormatHex,
{ehframe_r8, dwarf_r8, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
gpr_r8},
nullptr,
nullptr,
},
{
"r9",
nullptr,
4,
GPR_OFFSET(9),
eEncodingUint,
eFormatHex,
{ehframe_r9, dwarf_r9, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
gpr_r9},
nullptr,
nullptr,
},
{
"r10",
nullptr,
4,
GPR_OFFSET(10),
eEncodingUint,
eFormatHex,
{ehframe_r10, dwarf_r10, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
gpr_r10},
nullptr,
nullptr,
},
{
"r11",
nullptr,
4,
GPR_OFFSET(11),
eEncodingUint,
eFormatHex,
{ehframe_r11, dwarf_r11, LLDB_REGNUM_GENERIC_FP, LLDB_INVALID_REGNUM,
gpr_r11},
nullptr,
nullptr,
},
{
"r12",
nullptr,
4,
GPR_OFFSET(12),
eEncodingUint,
eFormatHex,
{ehframe_r12, dwarf_r12, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
gpr_r12},
nullptr,
nullptr,
},
{
"sp",
"r13",
4,
GPR_OFFSET(13),
eEncodingUint,
eFormatHex,
{ehframe_sp, dwarf_sp, LLDB_REGNUM_GENERIC_SP, LLDB_INVALID_REGNUM,
gpr_sp},
nullptr,
nullptr,
},
{
"lr",
"r14",
4,
GPR_OFFSET(14),
eEncodingUint,
eFormatHex,
{ehframe_lr, dwarf_lr, LLDB_REGNUM_GENERIC_RA, LLDB_INVALID_REGNUM,
gpr_lr},
nullptr,
nullptr,
},
{
"pc",
"r15",
4,
GPR_OFFSET(15),
eEncodingUint,
eFormatHex,
{ehframe_pc, dwarf_pc, LLDB_REGNUM_GENERIC_PC, LLDB_INVALID_REGNUM,
gpr_pc},
nullptr,
nullptr,
},
{
"cpsr",
"psr",
4,
GPR_OFFSET(16),
eEncodingUint,
eFormatHex,
{ehframe_cpsr, dwarf_cpsr, LLDB_REGNUM_GENERIC_FLAGS,
LLDB_INVALID_REGNUM, gpr_cpsr},
nullptr,
nullptr,
},
FPU_REG(s0, 4, 0, q0),
FPU_REG(s1, 4, 1, q0),
FPU_REG(s2, 4, 2, q0),
FPU_REG(s3, 4, 3, q0),
FPU_REG(s4, 4, 4, q1),
FPU_REG(s5, 4, 5, q1),
FPU_REG(s6, 4, 6, q1),
FPU_REG(s7, 4, 7, q1),
FPU_REG(s8, 4, 8, q2),
FPU_REG(s9, 4, 9, q2),
FPU_REG(s10, 4, 10, q2),
FPU_REG(s11, 4, 11, q2),
FPU_REG(s12, 4, 12, q3),
FPU_REG(s13, 4, 13, q3),
FPU_REG(s14, 4, 14, q3),
FPU_REG(s15, 4, 15, q3),
FPU_REG(s16, 4, 16, q4),
FPU_REG(s17, 4, 17, q4),
FPU_REG(s18, 4, 18, q4),
FPU_REG(s19, 4, 19, q4),
FPU_REG(s20, 4, 20, q5),
FPU_REG(s21, 4, 21, q5),
FPU_REG(s22, 4, 22, q5),
FPU_REG(s23, 4, 23, q5),
FPU_REG(s24, 4, 24, q6),
FPU_REG(s25, 4, 25, q6),
FPU_REG(s26, 4, 26, q6),
FPU_REG(s27, 4, 27, q6),
FPU_REG(s28, 4, 28, q7),
FPU_REG(s29, 4, 29, q7),
FPU_REG(s30, 4, 30, q7),
FPU_REG(s31, 4, 31, q7),
{
"fpscr",
nullptr,
4,
FPSCR_OFFSET,
eEncodingUint,
eFormatHex,
{LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
LLDB_INVALID_REGNUM, fpu_fpscr},
nullptr,
nullptr,
},
FPU_REG(d0, 8, 0, q0),
FPU_REG(d1, 8, 2, q0),
FPU_REG(d2, 8, 4, q1),
FPU_REG(d3, 8, 6, q1),
FPU_REG(d4, 8, 8, q2),
FPU_REG(d5, 8, 10, q2),
FPU_REG(d6, 8, 12, q3),
FPU_REG(d7, 8, 14, q3),
FPU_REG(d8, 8, 16, q4),
FPU_REG(d9, 8, 18, q4),
FPU_REG(d10, 8, 20, q5),
FPU_REG(d11, 8, 22, q5),
FPU_REG(d12, 8, 24, q6),
FPU_REG(d13, 8, 26, q6),
FPU_REG(d14, 8, 28, q7),
FPU_REG(d15, 8, 30, q7),
FPU_REG(d16, 8, 32, q8),
FPU_REG(d17, 8, 34, q8),
FPU_REG(d18, 8, 36, q9),
FPU_REG(d19, 8, 38, q9),
FPU_REG(d20, 8, 40, q10),
FPU_REG(d21, 8, 42, q10),
FPU_REG(d22, 8, 44, q11),
FPU_REG(d23, 8, 46, q11),
FPU_REG(d24, 8, 48, q12),
FPU_REG(d25, 8, 50, q12),
FPU_REG(d26, 8, 52, q13),
FPU_REG(d27, 8, 54, q13),
FPU_REG(d28, 8, 56, q14),
FPU_REG(d29, 8, 58, q14),
FPU_REG(d30, 8, 60, q15),
FPU_REG(d31, 8, 62, q15),
FPU_QREG(q0, 0),
FPU_QREG(q1, 4),
FPU_QREG(q2, 8),
FPU_QREG(q3, 12),
FPU_QREG(q4, 16),
FPU_QREG(q5, 20),
FPU_QREG(q6, 24),
FPU_QREG(q7, 28),
FPU_QREG(q8, 32),
FPU_QREG(q9, 36),
FPU_QREG(q10, 40),
FPU_QREG(q11, 44),
FPU_QREG(q12, 48),
FPU_QREG(q13, 52),
FPU_QREG(q14, 56),
FPU_QREG(q15, 60),
{
"exception",
nullptr,
4,
EXC_OFFSET(0),
eEncodingUint,
eFormatHex,
{LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
LLDB_INVALID_REGNUM, exc_exception},
nullptr,
nullptr,
},
{
"fsr",
nullptr,
4,
EXC_OFFSET(1),
eEncodingUint,
eFormatHex,
{LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
LLDB_INVALID_REGNUM, exc_fsr},
nullptr,
nullptr,
},
{
"far",
nullptr,
4,
EXC_OFFSET(2),
eEncodingUint,
eFormatHex,
{LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
LLDB_INVALID_REGNUM, exc_far},
nullptr,
nullptr,
},
{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_ARM_STRUCT