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"

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_sme_register = 3 , k_num_register_sets_default = 2 , k_num_register_sets = 3
}
 

Variables

static lldb_private::RegisterInfo g_register_infos_pauth []
 
static lldb_private::RegisterInfo g_register_infos_mte []
 
static lldb_private::RegisterInfo g_register_infos_tls []
 
static lldb_private::RegisterInfo g_register_infos_sme []
 
static lldb_private::RegisterInfo g_register_infos_sme2 []
 
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
 
static const lldb_private::RegisterSet g_reg_set_sme_arm64
 

Macro Definition Documentation

◆ DBG_OFFSET_NAME

#define DBG_OFFSET_NAME (   reg)

◆ 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,

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_sme_register 
k_num_register_sets_default 
k_num_register_sets 

Definition at line 98 of file RegisterInfoPOSIX_arm64.cpp.

Variable Documentation

◆ g_fpu_regnums_arm64

const uint32_t g_fpu_regnums_arm64[]
static

Definition at line 136 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}
#define LLDB_INVALID_REGNUM
Definition: lldb-defines.h:87

Definition at line 113 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, nullptr}

Definition at line 209 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, nullptr}
@ k_num_pauth_register

Definition at line 206 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::AddRegSetPAuth().

◆ g_reg_set_sme_arm64

const lldb_private::RegisterSet g_reg_set_sme_arm64
static
Initial value:
= {
"Scalable Matrix Extension Registers", "sme", k_num_sme_register, nullptr}

Definition at line 214 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::AddRegSetSME().

◆ 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,
static const uint32_t g_fpu_regnums_arm64[]
@ k_num_gpr_registers
static const uint32_t g_gpr_regnums_arm64[]
static const uint32_t g_sve_regnums_arm64[]

Definition at line 198 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::RegisterInfoPOSIX_arm64().

◆ g_register_infos_mte

lldb_private::RegisterInfo g_register_infos_mte[]
static
Initial value:
= {
DEFINE_EXTENSION_REG(mte_ctrl)}

Definition at line 78 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::AddRegSetMTE().

◆ g_register_infos_pauth

lldb_private::RegisterInfo g_register_infos_pauth[]
static
Initial value:
= {
DEFINE_EXTENSION_REG(data_mask), DEFINE_EXTENSION_REG(code_mask)}

Definition at line 75 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::AddRegSetPAuth().

◆ g_register_infos_sme

lldb_private::RegisterInfo g_register_infos_sme[]
static
Initial value:
= {
DEFINE_EXTENSION_REG(svcr),
DEFINE_EXTENSION_REG(svg),
KIND_ALL_INVALID, nullptr, nullptr, nullptr}}
@ eFormatVectorOfUInt8
@ eEncodingVector
vector registers

Definition at line 86 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::AddRegSetSME().

◆ g_register_infos_sme2

lldb_private::RegisterInfo g_register_infos_sme2[]
static
Initial value:
= {
KIND_ALL_INVALID, nullptr, nullptr, nullptr}}

Definition at line 93 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::AddRegSetSME().

◆ g_register_infos_tls

lldb_private::RegisterInfo g_register_infos_tls[]
static
Initial value:
= {
DEFINE_EXTENSION_REG(tpidr),
DEFINE_EXTENSION_REG(tpidr2)}

Definition at line 81 of file RegisterInfoPOSIX_arm64.cpp.

Referenced by RegisterInfoPOSIX_arm64::AddRegSetTLS().

◆ 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 175 of file RegisterInfoPOSIX_arm64.cpp.