LLDB  mainline
Macros | Enumerations | Variables
RegisterInfoPOSIX_arm64.cpp File Reference
#include <cassert>
#include <cstddef>
#include <vector>
#include "lldb/lldb-defines.h"
#include "llvm/Support/Compiler.h"
#include "RegisterInfoPOSIX_arm64.h"
#include "RegisterInfos_arm64.h"
#include "RegisterInfos_arm64_sve.h"
Include dependency graph for RegisterInfoPOSIX_arm64.cpp:

Go to the source code of this file.

Macros

#define GPR_OFFSET(idx)   ((idx)*8)
 
#define GPR_OFFSET_NAME(reg)   (LLVM_EXTENSION offsetof(RegisterInfoPOSIX_arm64::GPR, reg))
 
#define FPU_OFFSET(idx)   ((idx)*16 + sizeof(RegisterInfoPOSIX_arm64::GPR))
 
#define FPU_OFFSET_NAME(reg)
 
#define SVE_QUAD_WORD_BYTES   16
 
#define SVE_REGS_DEFAULT_OFFSET_LINUX   sizeof(RegisterInfoPOSIX_arm64::GPR)
 
#define SVE_OFFSET_VG   SVE_REGS_DEFAULT_OFFSET_LINUX
 
#define EXC_OFFSET_NAME(reg)
 
#define DBG_OFFSET_NAME(reg)
 
#define DEFINE_DBG(reg, i)
 
#define REG_CONTEXT_SIZE
 
#define DECLARE_REGISTER_INFOS_ARM64_STRUCT
 

Enumerations

enum  {
  k_num_gpr_registers = gpr_w28 - gpr_x0 + 1, k_num_fpr_registers = fpu_fpcr - fpu_v0 + 1, k_num_sve_registers = sve_ffr - sve_vg + 1, k_num_mte_register = 1,
  k_num_pauth_register = 2, k_num_register_sets_default = 2, k_num_register_sets = 3
}
 

Variables

static const uint32_t g_gpr_regnums_arm64 []
 
static const uint32_t g_fpu_regnums_arm64 []
 
static const uint32_t g_sve_regnums_arm64 []
 
static const lldb_private::RegisterSet g_reg_sets_arm64 [k_num_register_sets]
 
static const lldb_private::RegisterSet g_reg_set_pauth_arm64
 
static const lldb_private::RegisterSet g_reg_set_mte_arm64
 

Macro Definition Documentation

◆ DBG_OFFSET_NAME

#define DBG_OFFSET_NAME (   reg)
Value:

Definition at line 50 of file RegisterInfoPOSIX_arm64.cpp.

◆ DECLARE_REGISTER_INFOS_ARM64_STRUCT

#define DECLARE_REGISTER_INFOS_ARM64_STRUCT

Definition at line 70 of file RegisterInfoPOSIX_arm64.cpp.

◆ DEFINE_DBG

#define DEFINE_DBG (   reg,
 
)
Value:
#reg, NULL, \
sizeof(((RegisterInfoPOSIX_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, NULL, 0

Definition at line 56 of file RegisterInfoPOSIX_arm64.cpp.

◆ EXC_OFFSET_NAME

#define EXC_OFFSET_NAME (   reg)
Value:
(LLVM_EXTENSION offsetof(RegisterInfoPOSIX_arm64::EXC, reg) + \

Definition at line 46 of file RegisterInfoPOSIX_arm64.cpp.

◆ FPU_OFFSET

#define FPU_OFFSET (   idx)    ((idx)*16 + sizeof(RegisterInfoPOSIX_arm64::GPR))

Definition at line 23 of file RegisterInfoPOSIX_arm64.cpp.

◆ FPU_OFFSET_NAME

#define FPU_OFFSET_NAME (   reg)
Value:
(LLVM_EXTENSION offsetof(RegisterInfoPOSIX_arm64::FPU, reg) + \

Definition at line 24 of file RegisterInfoPOSIX_arm64.cpp.

◆ GPR_OFFSET

#define GPR_OFFSET (   idx)    ((idx)*8)

Definition at line 19 of file RegisterInfoPOSIX_arm64.cpp.

◆ GPR_OFFSET_NAME

#define GPR_OFFSET_NAME (   reg)    (LLVM_EXTENSION offsetof(RegisterInfoPOSIX_arm64::GPR, reg))

Definition at line 20 of file RegisterInfoPOSIX_arm64.cpp.

◆ REG_CONTEXT_SIZE

#define REG_CONTEXT_SIZE

◆ SVE_OFFSET_VG

#define SVE_OFFSET_VG   SVE_REGS_DEFAULT_OFFSET_LINUX

Definition at line 44 of file RegisterInfoPOSIX_arm64.cpp.

◆ SVE_QUAD_WORD_BYTES

#define SVE_QUAD_WORD_BYTES   16

Definition at line 33 of file RegisterInfoPOSIX_arm64.cpp.

◆ SVE_REGS_DEFAULT_OFFSET_LINUX

#define SVE_REGS_DEFAULT_OFFSET_LINUX   sizeof(RegisterInfoPOSIX_arm64::GPR)

Definition at line 42 of file RegisterInfoPOSIX_arm64.cpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
k_num_gpr_registers 
k_num_fpr_registers 
k_num_sve_registers 
k_num_mte_register 
k_num_pauth_register 
k_num_register_sets_default 
k_num_register_sets 

Definition at line 76 of file RegisterInfoPOSIX_arm64.cpp.

Variable Documentation

◆ g_fpu_regnums_arm64

const uint32_t g_fpu_regnums_arm64[]
static

Definition at line 110 of file RegisterInfoPOSIX_arm64.cpp.

◆ g_gpr_regnums_arm64

const uint32_t g_gpr_regnums_arm64[]
static
Initial value:
= {
gpr_x0, 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_fp, gpr_lr, gpr_sp,
gpr_pc, gpr_cpsr, gpr_w0, gpr_w1,
gpr_w2, gpr_w3, gpr_w4, gpr_w5,
gpr_w6, gpr_w7, gpr_w8, gpr_w9,
gpr_w10, gpr_w11, gpr_w12, gpr_w13,
gpr_w14, gpr_w15, gpr_w16, gpr_w17,
gpr_w18, gpr_w19, gpr_w20, gpr_w21,
gpr_w22, gpr_w23, gpr_w24, gpr_w25,
gpr_w26, gpr_w27, gpr_w28, LLDB_INVALID_REGNUM}

Definition at line 87 of file RegisterInfoPOSIX_arm64.cpp.

◆ g_reg_set_mte_arm64

const lldb_private::RegisterSet g_reg_set_mte_arm64
static
Initial value:
= {
"MTE Control Register", "mte", k_num_mte_register, NULL}

Definition at line 183 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::AddRegSetMTE().

◆ g_reg_set_pauth_arm64

const lldb_private::RegisterSet g_reg_set_pauth_arm64
static
Initial value:
= {
"Pointer Authentication Registers", "pauth", k_num_pauth_register, NULL}

Definition at line 180 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::AddRegSetPAuth().

◆ g_reg_sets_arm64

const lldb_private::RegisterSet g_reg_sets_arm64[k_num_register_sets]
static
Initial value:
= {
{"General Purpose Registers", "gpr", k_num_gpr_registers,
{"Floating Point Registers", "fpu", k_num_fpr_registers,
{"Scalable Vector Extension Registers", "sve", k_num_sve_registers,

Definition at line 172 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::RegisterInfoPOSIX_arm64().

◆ g_sve_regnums_arm64

const uint32_t g_sve_regnums_arm64[]
static
Initial value:
= {
sve_vg, sve_z0, sve_z1,
sve_z2, sve_z3, sve_z4,
sve_z5, sve_z6, sve_z7,
sve_z8, sve_z9, sve_z10,
sve_z11, sve_z12, sve_z13,
sve_z14, sve_z15, sve_z16,
sve_z17, sve_z18, sve_z19,
sve_z20, sve_z21, sve_z22,
sve_z23, sve_z24, sve_z25,
sve_z26, sve_z27, sve_z28,
sve_z29, sve_z30, sve_z31,
sve_p0, sve_p1, sve_p2,
sve_p3, sve_p4, sve_p5,
sve_p6, sve_p7, sve_p8,
sve_p9, sve_p10, sve_p11,
sve_p12, sve_p13, sve_p14,
sve_p15, sve_ffr, LLDB_INVALID_REGNUM}

Definition at line 149 of file RegisterInfoPOSIX_arm64.cpp.

k_num_fpr_registers
@ k_num_fpr_registers
Definition: RegisterInfoPOSIX_arm64.cpp:78
gpr_pc
@ gpr_pc
Definition: RegisterContextDarwin_arm.cpp:51
LLDB_INVALID_REGNUM
#define LLDB_INVALID_REGNUM
Definition: lldb-defines.h:91
RegisterInfoPOSIX_arm64::GPR
Definition: RegisterInfoPOSIX_arm64.h:43
k_num_pauth_register
@ k_num_pauth_register
Definition: RegisterInfoPOSIX_arm64.cpp:81
gpr_cpsr
@ gpr_cpsr
Definition: RegisterContextDarwin_arm.cpp:52
RegisterInfoPOSIX_arm64::FPU
Definition: RegisterInfoPOSIX_arm64.h:59
g_fpu_regnums_arm64
static const uint32_t g_fpu_regnums_arm64[]
Definition: RegisterInfoPOSIX_arm64.cpp:110
gpr_lr
@ gpr_lr
Definition: RegisterContextDarwin_arm.cpp:49
GPR
struct _GPR GPR
RegisterInfoPOSIX_arm64::EXC
Definition: RegisterInfoPOSIX_arm64.h:66
g_gpr_regnums_arm64
static const uint32_t g_gpr_regnums_arm64[]
Definition: RegisterInfoPOSIX_arm64.cpp:87
k_num_gpr_registers
@ k_num_gpr_registers
Definition: RegisterInfoPOSIX_arm64.cpp:77
k_num_sve_registers
@ k_num_sve_registers
Definition: RegisterInfoPOSIX_arm64.cpp:79
g_sve_regnums_arm64
static const uint32_t g_sve_regnums_arm64[]
Definition: RegisterInfoPOSIX_arm64.cpp:149
gpr_sp
@ gpr_sp
Definition: RegisterContextDarwin_arm.cpp:47
RegisterInfoPOSIX_arm64::DBG
Definition: RegisterInfoPOSIX_arm64.h:73
k_num_mte_register
@ k_num_mte_register
Definition: RegisterInfoPOSIX_arm64.cpp:80