LLDB  mainline
Macros | Enumerations | Variables
RegisterContextMinidump_ARM64.cpp File Reference
#include "RegisterContextMinidump_ARM64.h"
#include "Utility/ARM64_DWARF_Registers.h"
#include "lldb/Utility/RegisterValue.h"
#include "lldb/Utility/DataExtractor.h"
#include "lldb/lldb-enumerations.h"
#include <cassert>
Include dependency graph for RegisterContextMinidump_ARM64.cpp:

Go to the source code of this file.

Macros

#define INV   LLDB_INVALID_REGNUM
 
#define OFFSET(r)   (offsetof(RegisterContextMinidump_ARM64::Context, r))
 
#define DEF_X(i)
 
#define DEF_W(i)
 
#define DEF_X_ARG(i, n)
 
#define DEF_V(i)
 
#define DEF_D(i)
 
#define DEF_S(i)
 
#define DEF_H(i)
 

Enumerations

enum  {
  reg_x0 = 0, reg_x1, reg_x2, reg_x3,
  reg_x4, reg_x5, reg_x6, reg_x7,
  reg_x8, reg_x9, reg_x10, reg_x11,
  reg_x12, reg_x13, reg_x14, reg_x15,
  reg_x16, reg_x17, reg_x18, reg_x19,
  reg_x20, reg_x21, reg_x22, reg_x23,
  reg_x24, reg_x25, reg_x26, reg_x27,
  reg_x28, reg_fp, reg_lr, reg_sp,
  reg_pc, reg_w0, reg_w1, reg_w2,
  reg_w3, reg_w4, reg_w5, reg_w6,
  reg_w7, reg_w8, reg_w9, reg_w10,
  reg_w11, reg_w12, reg_w13, reg_w14,
  reg_w15, reg_w16, reg_w17, reg_w18,
  reg_w19, reg_w20, reg_w21, reg_w22,
  reg_w23, reg_w24, reg_w25, reg_w26,
  reg_w27, reg_w28, reg_w29, reg_w30,
  reg_w31, reg_cpsr, reg_fpsr, reg_fpcr,
  reg_v0, reg_v1, reg_v2, reg_v3,
  reg_v4, reg_v5, reg_v6, reg_v7,
  reg_v8, reg_v9, reg_v10, reg_v11,
  reg_v12, reg_v13, reg_v14, reg_v15,
  reg_v16, reg_v17, reg_v18, reg_v19,
  reg_v20, reg_v21, reg_v22, reg_v23,
  reg_v24, reg_v25, reg_v26, reg_v27,
  reg_v28, reg_v29, reg_v30, reg_v31,
  reg_d0, reg_d1, reg_d2, reg_d3,
  reg_d4, reg_d5, reg_d6, reg_d7,
  reg_d8, reg_d9, reg_d10, reg_d11,
  reg_d12, reg_d13, reg_d14, reg_d15,
  reg_d16, reg_d17, reg_d18, reg_d19,
  reg_d20, reg_d21, reg_d22, reg_d23,
  reg_d24, reg_d25, reg_d26, reg_d27,
  reg_d28, reg_d29, reg_d30, reg_d31,
  reg_s0, reg_s1, reg_s2, reg_s3,
  reg_s4, reg_s5, reg_s6, reg_s7,
  reg_s8, reg_s9, reg_s10, reg_s11,
  reg_s12, reg_s13, reg_s14, reg_s15,
  reg_s16, reg_s17, reg_s18, reg_s19,
  reg_s20, reg_s21, reg_s22, reg_s23,
  reg_s24, reg_s25, reg_s26, reg_s27,
  reg_s28, reg_s29, reg_s30, reg_s31,
  reg_h0, reg_h1, reg_h2, reg_h3,
  reg_h4, reg_h5, reg_h6, reg_h7,
  reg_h8, reg_h9, reg_h10, reg_h11,
  reg_h12, reg_h13, reg_h14, reg_h15,
  reg_h16, reg_h17, reg_h18, reg_h19,
  reg_h20, reg_h21, reg_h22, reg_h23,
  reg_h24, reg_h25, reg_h26, reg_h27,
  reg_h28, reg_h29, reg_h30, reg_h31,
  k_num_regs
}
 

Variables

static RegisterInfo g_reg_infos []
 
constexpr size_t k_num_reg_infos = llvm::array_lengthof(g_reg_infos)
 
const uint32_t g_gpr_regnums []
 
const uint32_t g_fpu_regnums []
 
constexpr size_t k_num_gpr_regs = llvm::array_lengthof(g_gpr_regnums) - 1
 
constexpr size_t k_num_fpu_regs = llvm::array_lengthof(g_fpu_regnums) - 1
 
static RegisterSet g_reg_sets []
 
constexpr size_t k_num_reg_sets = llvm::array_lengthof(g_reg_sets)
 

Macro Definition Documentation

◆ DEF_D

#define DEF_D (   i)
Value:
{ \
"d" #i, nullptr, 8, OFFSET(v) + i * 16, eEncodingVector, \
eFormatVectorOfUInt8, {INV, INV, INV, INV, reg_d##i}, nullptr, \
nullptr, \
}

Definition at line 55 of file RegisterContextMinidump_ARM64.cpp.

◆ DEF_H

#define DEF_H (   i)
Value:
{ \
"h" #i, nullptr, 2, OFFSET(v) + i * 16, eEncodingVector, \
eFormatVectorOfUInt8, {INV, INV, INV, INV, reg_h##i}, nullptr, \
nullptr, \
}

Definition at line 69 of file RegisterContextMinidump_ARM64.cpp.

◆ DEF_S

#define DEF_S (   i)
Value:
{ \
"s" #i, nullptr, 4, OFFSET(v) + i * 16, eEncodingVector, \
eFormatVectorOfUInt8, {INV, INV, INV, INV, reg_s##i}, nullptr, \
nullptr, \
}

Definition at line 62 of file RegisterContextMinidump_ARM64.cpp.

◆ DEF_V

#define DEF_V (   i)
Value:
{ \
"v" #i, nullptr, 16, OFFSET(v) + i * 16, eEncodingVector, \
eFormatVectorOfUInt8, {arm64_dwarf::v##i, arm64_dwarf::v##i, INV, INV, \
reg_v##i}, nullptr, nullptr, \
}

Definition at line 48 of file RegisterContextMinidump_ARM64.cpp.

◆ DEF_W

#define DEF_W (   i)
Value:
{ \
"w" #i, nullptr, 4, OFFSET(x) + i * 8, eEncodingUint, eFormatHex, \
{INV, INV, INV, INV, reg_w##i}, nullptr, nullptr, \
}

Definition at line 35 of file RegisterContextMinidump_ARM64.cpp.

◆ DEF_X

#define DEF_X (   i)
Value:
{ \
"x" #i, nullptr, 8, OFFSET(x) + i * 8, eEncodingUint, eFormatHex, \
{arm64_dwarf::x##i, arm64_dwarf::x##i, INV, INV, reg_x##i}, \
nullptr, nullptr, \
}

Definition at line 28 of file RegisterContextMinidump_ARM64.cpp.

◆ DEF_X_ARG

#define DEF_X_ARG (   i,
 
)
Value:
{ \
"x" #i, "arg" #n, 8, OFFSET(x) + i * 8, eEncodingUint, eFormatHex, \
{arm64_dwarf::x##i, arm64_dwarf::x##i, LLDB_REGNUM_GENERIC_ARG1 + i, \
INV, reg_x##i}, nullptr, nullptr, \
}

Definition at line 41 of file RegisterContextMinidump_ARM64.cpp.

◆ INV

#define INV   LLDB_INVALID_REGNUM

Definition at line 25 of file RegisterContextMinidump_ARM64.cpp.

◆ OFFSET

#define OFFSET (   r)    (offsetof(RegisterContextMinidump_ARM64::Context, r))

Definition at line 26 of file RegisterContextMinidump_ARM64.cpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
reg_x0 
reg_x1 
reg_x2 
reg_x3 
reg_x4 
reg_x5 
reg_x6 
reg_x7 
reg_x8 
reg_x9 
reg_x10 
reg_x11 
reg_x12 
reg_x13 
reg_x14 
reg_x15 
reg_x16 
reg_x17 
reg_x18 
reg_x19 
reg_x20 
reg_x21 
reg_x22 
reg_x23 
reg_x24 
reg_x25 
reg_x26 
reg_x27 
reg_x28 
reg_fp 
reg_lr 
reg_sp 
reg_pc 
reg_w0 
reg_w1 
reg_w2 
reg_w3 
reg_w4 
reg_w5 
reg_w6 
reg_w7 
reg_w8 
reg_w9 
reg_w10 
reg_w11 
reg_w12 
reg_w13 
reg_w14 
reg_w15 
reg_w16 
reg_w17 
reg_w18 
reg_w19 
reg_w20 
reg_w21 
reg_w22 
reg_w23 
reg_w24 
reg_w25 
reg_w26 
reg_w27 
reg_w28 
reg_w29 
reg_w30 
reg_w31 
reg_cpsr 
reg_fpsr 
reg_fpcr 
reg_v0 
reg_v1 
reg_v2 
reg_v3 
reg_v4 
reg_v5 
reg_v6 
reg_v7 
reg_v8 
reg_v9 
reg_v10 
reg_v11 
reg_v12 
reg_v13 
reg_v14 
reg_v15 
reg_v16 
reg_v17 
reg_v18 
reg_v19 
reg_v20 
reg_v21 
reg_v22 
reg_v23 
reg_v24 
reg_v25 
reg_v26 
reg_v27 
reg_v28 
reg_v29 
reg_v30 
reg_v31 
reg_d0 
reg_d1 
reg_d2 
reg_d3 
reg_d4 
reg_d5 
reg_d6 
reg_d7 
reg_d8 
reg_d9 
reg_d10 
reg_d11 
reg_d12 
reg_d13 
reg_d14 
reg_d15 
reg_d16 
reg_d17 
reg_d18 
reg_d19 
reg_d20 
reg_d21 
reg_d22 
reg_d23 
reg_d24 
reg_d25 
reg_d26 
reg_d27 
reg_d28 
reg_d29 
reg_d30 
reg_d31 
reg_s0 
reg_s1 
reg_s2 
reg_s3 
reg_s4 
reg_s5 
reg_s6 
reg_s7 
reg_s8 
reg_s9 
reg_s10 
reg_s11 
reg_s12 
reg_s13 
reg_s14 
reg_s15 
reg_s16 
reg_s17 
reg_s18 
reg_s19 
reg_s20 
reg_s21 
reg_s22 
reg_s23 
reg_s24 
reg_s25 
reg_s26 
reg_s27 
reg_s28 
reg_s29 
reg_s30 
reg_s31 
reg_h0 
reg_h1 
reg_h2 
reg_h3 
reg_h4 
reg_h5 
reg_h6 
reg_h7 
reg_h8 
reg_h9 
reg_h10 
reg_h11 
reg_h12 
reg_h13 
reg_h14 
reg_h15 
reg_h16 
reg_h17 
reg_h18 
reg_h19 
reg_h20 
reg_h21 
reg_h22 
reg_h23 
reg_h24 
reg_h25 
reg_h26 
reg_h27 
reg_h28 
reg_h29 
reg_h30 
reg_h31 
k_num_regs 

Definition at line 77 of file RegisterContextMinidump_ARM64.cpp.

Variable Documentation

◆ g_fpu_regnums

const uint32_t g_fpu_regnums[]

Definition at line 619 of file RegisterContextMinidump_ARM64.cpp.

◆ g_gpr_regnums

const uint32_t g_gpr_regnums[]

Definition at line 550 of file RegisterContextMinidump_ARM64.cpp.

◆ g_reg_infos

RegisterInfo g_reg_infos[]
static

◆ g_reg_sets

RegisterSet g_reg_sets[]
static
Initial value:
= {
{"General Purpose Registers", "gpr", k_num_gpr_regs, g_gpr_regnums},
{"Floating Point Registers", "fpu", k_num_fpu_regs, g_fpu_regnums},
}

Definition at line 757 of file RegisterContextMinidump_ARM64.cpp.

Referenced by lldb_private::minidump::RegisterContextMinidump_ARM64::GetRegisterSet().

◆ k_num_fpu_regs

constexpr size_t k_num_fpu_regs = llvm::array_lengthof(g_fpu_regnums) - 1
constexpr

Definition at line 755 of file RegisterContextMinidump_ARM64.cpp.

◆ k_num_gpr_regs

constexpr size_t k_num_gpr_regs = llvm::array_lengthof(g_gpr_regnums) - 1
constexpr

Definition at line 754 of file RegisterContextMinidump_ARM64.cpp.

◆ k_num_reg_infos

constexpr size_t k_num_reg_infos = llvm::array_lengthof(g_reg_infos)
constexpr

◆ k_num_reg_sets

constexpr size_t k_num_reg_sets = llvm::array_lengthof(g_reg_sets)
constexpr
LLDB_REGNUM_GENERIC_ARG1
#define LLDB_REGNUM_GENERIC_ARG1
Definition: lldb-defines.h:68
k_num_fpu_regs
constexpr size_t k_num_fpu_regs
Definition: RegisterContextMinidump_ARM64.cpp:755
g_fpu_regnums
const uint32_t g_fpu_regnums[]
Definition: RegisterContextMinidump_ARM64.cpp:619
lldb::eEncodingUint
@ eEncodingUint
unsigned integer
Definition: lldb-enumerations.h:148
g_gpr_regnums
const uint32_t g_gpr_regnums[]
Definition: RegisterContextMinidump_ARM64.cpp:550
k_num_gpr_regs
constexpr size_t k_num_gpr_regs
Definition: RegisterContextMinidump_ARM64.cpp:754
lldb::eEncodingVector
@ eEncodingVector
vector registers
Definition: lldb-enumerations.h:151
lldb::eFormatHex
@ eFormatHex
Definition: lldb-enumerations.h:169
INV
#define INV
Definition: RegisterContextMinidump_ARM64.cpp:25
OFFSET
#define OFFSET(r)
Definition: RegisterContextMinidump_ARM64.cpp:26