GDBserver
Classes | Macros | Enumerations | Functions | Variables
linux-aarch64-low.c File Reference
#include "server.h"
#include "linux-low.h"
#include "nat/aarch64-linux.h"
#include "nat/aarch64-linux-hw-point.h"
#include "arch/aarch64-insn.h"
#include "linux-aarch32-low.h"
#include "elf/common.h"
#include "ax.h"
#include "tracepoint.h"
#include <signal.h>
#include <sys/user.h>
#include "nat/gdb_ptrace.h"
#include <asm/ptrace.h>
#include <inttypes.h>
#include <endian.h>
#include <sys/uio.h>
#include "gdb_proc_service.h"
#include "arch/aarch64.h"
#include "linux-aarch64-tdesc.h"

Go to the source code of this file.

Classes

struct  arch_process_info
 
struct  aarch64_operand
 
struct  aarch64_insn_relocation_data
 

Macros

#define aarch64_breakpoint_len   4
 

Enumerations

enum  aarch64_condition_codes {
  EQ = 0x0, NE = 0x1, LO = 0x3, GE = 0xa,
  LT = 0xb, GT = 0xc, LE = 0xd
}
 
enum  aarch64_operand_type { OPERAND_IMMEDIATE, OPERAND_REGISTER }
 
enum  aarch64_system_control_registers { NZCV = (0x1 << 14) | (0x3 << 11) | (0x4 << 7) | (0x2 << 3) | 0x0, FPSR = (0x1 << 14) | (0x3 << 11) | (0x4 << 7) | (0x4 << 3) | 0x1, FPCR = (0x1 << 14) | (0x3 << 11) | (0x4 << 7) | (0x4 << 3) | 0x0, TPIDR_EL0 = (0x1 << 14) | (0x3 << 11) | (0xd << 7) | (0x0 << 3) | 0x2 }
 

Functions

static int is_64bit_tdesc (void)
 
static int aarch64_cannot_store_register (int regno)
 
static int aarch64_cannot_fetch_register (int regno)
 
static void aarch64_fill_gregset (struct regcache *regcache, void *buf)
 
static void aarch64_store_gregset (struct regcache *regcache, const void *buf)
 
static void aarch64_fill_fpregset (struct regcache *regcache, void *buf)
 
static void aarch64_store_fpregset (struct regcache *regcache, const void *buf)
 
static CORE_ADDR aarch64_get_pc (struct regcache *regcache)
 
static void aarch64_set_pc (struct regcache *regcache, CORE_ADDR pc)
 
static int aarch64_breakpoint_at (CORE_ADDR where)
 
static void aarch64_init_debug_reg_state (struct aarch64_debug_reg_state *state)
 
struct aarch64_debug_reg_stateaarch64_get_debug_reg_state (pid_t pid)
 
static int aarch64_supports_z_point_type (char z_type)
 
static int aarch64_insert_point (enum raw_bkpt_type type, CORE_ADDR addr, int len, struct raw_breakpoint *bp)
 
static int aarch64_remove_point (enum raw_bkpt_type type, CORE_ADDR addr, int len, struct raw_breakpoint *bp)
 
static CORE_ADDR aarch64_stopped_data_address (void)
 
static int aarch64_stopped_by_watchpoint (void)
 
ps_err_e ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
 
static int aarch64_linux_siginfo_fixup (siginfo_t *native, gdb_byte *inf, int direction)
 
static struct arch_process_infoaarch64_linux_new_process (void)
 
static void aarch64_linux_delete_process (struct arch_process_info *info)
 
static void aarch64_linux_new_fork (struct process_info *parent, struct process_info *child)
 
static void aarch64_arch_setup (void)
 
static const struct regs_infoaarch64_regs_info (void)
 
static int aarch64_supports_tracepoints (void)
 
static int aarch64_get_thread_area (int lwpid, CORE_ADDR *addrp)
 
static void aarch64_get_syscall_trapinfo (struct regcache *regcache, int *sysno)
 
static struct aarch64_register aarch64_register (unsigned num, int is64)
 
static struct aarch64_operand register_operand (struct aarch64_register reg)
 
static struct aarch64_operand immediate_operand (uint32_t imm)
 
static struct aarch64_memory_operand offset_memory_operand (int32_t offset)
 
static struct aarch64_memory_operand preindex_memory_operand (int32_t index)
 
static struct aarch64_memory_operand postindex_memory_operand (int32_t index)
 
static int emit_blr (uint32_t *buf, struct aarch64_register rn)
 
static int emit_ret (uint32_t *buf, struct aarch64_register rn)
 
static int emit_load_store_pair (uint32_t *buf, enum aarch64_opcodes opcode, struct aarch64_register rt, struct aarch64_register rt2, struct aarch64_register rn, struct aarch64_memory_operand operand)
 
static int emit_stp (uint32_t *buf, struct aarch64_register rt, struct aarch64_register rt2, struct aarch64_register rn, struct aarch64_memory_operand operand)
 
static int emit_ldp (uint32_t *buf, struct aarch64_register rt, struct aarch64_register rt2, struct aarch64_register rn, struct aarch64_memory_operand operand)
 
static int emit_ldp_q_offset (uint32_t *buf, unsigned rt, unsigned rt2, struct aarch64_register rn, int32_t offset)
 
static int emit_stp_q_offset (uint32_t *buf, unsigned rt, unsigned rt2, struct aarch64_register rn, int32_t offset)
 
static int emit_ldrh (uint32_t *buf, struct aarch64_register rt, struct aarch64_register rn, struct aarch64_memory_operand operand)
 
static int emit_ldrb (uint32_t *buf, struct aarch64_register rt, struct aarch64_register rn, struct aarch64_memory_operand operand)
 
static int emit_str (uint32_t *buf, struct aarch64_register rt, struct aarch64_register rn, struct aarch64_memory_operand operand)
 
static int emit_load_store_exclusive (uint32_t *buf, uint32_t size, enum aarch64_opcodes opcode, struct aarch64_register rs, struct aarch64_register rt, struct aarch64_register rt2, struct aarch64_register rn)
 
static int emit_ldaxr (uint32_t *buf, struct aarch64_register rt, struct aarch64_register rn)
 
static int emit_stxr (uint32_t *buf, struct aarch64_register rs, struct aarch64_register rt, struct aarch64_register rn)
 
static int emit_stlr (uint32_t *buf, struct aarch64_register rt, struct aarch64_register rn)
 
static int emit_data_processing_reg (uint32_t *buf, uint32_t opcode, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_register rm)
 
static int emit_data_processing (uint32_t *buf, enum aarch64_opcodes opcode, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_operand operand)
 
static int emit_add (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_operand operand)
 
static int emit_sub (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_operand operand)
 
static int emit_mov (uint32_t *buf, struct aarch64_register rd, struct aarch64_operand operand)
 
static int emit_movk (uint32_t *buf, struct aarch64_register rd, uint32_t imm, unsigned shift)
 
static int emit_mov_addr (uint32_t *buf, struct aarch64_register rd, CORE_ADDR addr)
 
static int emit_subs (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_operand operand)
 
static int emit_cmp (uint32_t *buf, struct aarch64_register rn, struct aarch64_operand operand)
 
static int emit_and (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_register rm)
 
static int emit_orr (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_register rm)
 
static int emit_orn (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_register rm)
 
static int emit_eor (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_register rm)
 
static int emit_mvn (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rm)
 
static int emit_lslv (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_register rm)
 
static int emit_lsrv (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_register rm)
 
static int emit_asrv (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_register rm)
 
static int emit_mul (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_register rm)
 
static int emit_mrs (uint32_t *buf, struct aarch64_register rt, enum aarch64_system_control_registers system_reg)
 
static int emit_msr (uint32_t *buf, enum aarch64_system_control_registers system_reg, struct aarch64_register rt)
 
static int emit_sevl (uint32_t *buf)
 
static int emit_wfe (uint32_t *buf)
 
static int emit_sbfm (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, uint32_t immr, uint32_t imms)
 
static int emit_sbfx (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, uint32_t lsb, uint32_t width)
 
static int emit_ubfm (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, uint32_t immr, uint32_t imms)
 
static int emit_ubfx (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, uint32_t lsb, uint32_t width)
 
static int emit_csinc (uint32_t *buf, struct aarch64_register rd, struct aarch64_register rn, struct aarch64_register rm, unsigned cond)
 
static int emit_cset (uint32_t *buf, struct aarch64_register rd, unsigned cond)
 
static void append_insns (CORE_ADDR *to, size_t len, const uint32_t *buf)
 
static void aarch64_ftrace_insn_reloc_b (const int is_bl, const int32_t offset, struct aarch64_insn_data *data)
 
static void aarch64_ftrace_insn_reloc_b_cond (const unsigned cond, const int32_t offset, struct aarch64_insn_data *data)
 
static void aarch64_ftrace_insn_reloc_cb (const int32_t offset, const int is_cbnz, const unsigned rn, int is64, struct aarch64_insn_data *data)
 
static void aarch64_ftrace_insn_reloc_tb (const int32_t offset, int is_tbnz, const unsigned rt, unsigned bit, struct aarch64_insn_data *data)
 
static void aarch64_ftrace_insn_reloc_adr (const int32_t offset, const unsigned rd, const int is_adrp, struct aarch64_insn_data *data)
 
static void aarch64_ftrace_insn_reloc_ldr_literal (const int32_t offset, const int is_sw, const unsigned rt, const int is64, struct aarch64_insn_data *data)
 
static void aarch64_ftrace_insn_reloc_others (const uint32_t insn, struct aarch64_insn_data *data)
 
static int aarch64_install_fast_tracepoint_jump_pad (CORE_ADDR tpoint, CORE_ADDR tpaddr, CORE_ADDR collector, CORE_ADDR lockaddr, ULONGEST orig_size, CORE_ADDR *jump_entry, CORE_ADDR *trampoline, ULONGEST *trampoline_size, unsigned char *jjump_pad_insn, ULONGEST *jjump_pad_insn_size, CORE_ADDR *adjusted_insn_addr, CORE_ADDR *adjusted_insn_addr_end, char *err)
 
static void emit_ops_insns (const uint32_t *start, int len)
 
static int emit_pop (uint32_t *buf, struct aarch64_register rt)
 
static int emit_push (uint32_t *buf, struct aarch64_register rt)
 
static void aarch64_emit_prologue (void)
 
static void aarch64_emit_epilogue (void)
 
static void aarch64_emit_add (void)
 
static void aarch64_emit_sub (void)
 
static void aarch64_emit_mul (void)
 
static void aarch64_emit_lsh (void)
 
static void aarch64_emit_rsh_signed (void)
 
static void aarch64_emit_rsh_unsigned (void)
 
static void aarch64_emit_ext (int arg)
 
static void aarch64_emit_log_not (void)
 
static void aarch64_emit_bit_and (void)
 
static void aarch64_emit_bit_or (void)
 
static void aarch64_emit_bit_xor (void)
 
static void aarch64_emit_bit_not (void)
 
static void aarch64_emit_equal (void)
 
static void aarch64_emit_less_signed (void)
 
static void aarch64_emit_less_unsigned (void)
 
static void aarch64_emit_ref (int size)
 
static void aarch64_emit_if_goto (int *offset_p, int *size_p)
 
static void aarch64_emit_goto (int *offset_p, int *size_p)
 
void aarch64_write_goto_address (CORE_ADDR from, CORE_ADDR to, int size)
 
static void aarch64_emit_const (LONGEST num)
 
static void aarch64_emit_call (CORE_ADDR fn)
 
static void aarch64_emit_reg (int reg)
 
static void aarch64_emit_pop (void)
 
static void aarch64_emit_stack_flush (void)
 
static void aarch64_emit_zero_ext (int arg)
 
static void aarch64_emit_swap (void)
 
static void aarch64_emit_stack_adjust (int n)
 
static void aarch64_emit_int_call_1 (CORE_ADDR fn, int arg1)
 
static void aarch64_emit_void_call_2 (CORE_ADDR fn, int arg1)
 
static void aarch64_emit_eq_goto (int *offset_p, int *size_p)
 
static void aarch64_emit_ne_goto (int *offset_p, int *size_p)
 
static void aarch64_emit_lt_goto (int *offset_p, int *size_p)
 
static void aarch64_emit_le_goto (int *offset_p, int *size_p)
 
static void aarch64_emit_gt_goto (int *offset_p, int *size_p)
 
static void aarch64_emit_ge_got (int *offset_p, int *size_p)
 
static struct emit_opsaarch64_emit_ops (void)
 
static int aarch64_get_min_fast_tracepoint_insn_len (void)
 
static int aarch64_supports_range_stepping (void)
 
static const gdb_byteaarch64_sw_breakpoint_from_kind (int kind, int *size)
 
static int aarch64_breakpoint_kind_from_pc (CORE_ADDR *pcptr)
 
static int aarch64_breakpoint_kind_from_current_state (CORE_ADDR *pcptr)
 
static int aarch64_supports_hardware_single_step (void)
 
void initialize_low_arch (void)
 

Variables

int debug_threads
 
static const gdb_byte aarch64_breakpoint [] = {0x00, 0x00, 0x20, 0xd4}
 
static struct regset_info aarch64_regsets []
 
static struct regsets_info aarch64_regsets_info
 
static struct regs_info regs_info_aarch64
 
static const struct aarch64_register x0 = { 0, 1 }
 
static const struct aarch64_register x1 = { 1, 1 }
 
static const struct aarch64_register x2 = { 2, 1 }
 
static const struct aarch64_register x3 = { 3, 1 }
 
static const struct aarch64_register x4 = { 4, 1 }
 
static const struct aarch64_register w0 = { 0, 0 }
 
static const struct aarch64_register w2 = { 2, 0 }
 
static const struct aarch64_register ip0 = { 16, 1 }
 
static const struct aarch64_register fp = { 29, 1 }
 
static const struct aarch64_register lr = { 30, 1 }
 
static const struct aarch64_register sp = { 31, 1 }
 
static const struct aarch64_register xzr = { 31, 1 }
 
static const struct aarch64_insn_visitor visitor
 
static struct emit_ops aarch64_emit_ops_impl
 
struct linux_target_ops the_low_target
 

Macro Definition Documentation

◆ aarch64_breakpoint_len

#define aarch64_breakpoint_len   4

Enumeration Type Documentation

◆ aarch64_condition_codes

Enumerator
EQ 
NE 
LO 
GE 
LT 
GT 
LE 

Definition at line 578 of file linux-aarch64-low.c.

◆ aarch64_operand_type

Enumerator
OPERAND_IMMEDIATE 
OPERAND_REGISTER 

Definition at line 589 of file linux-aarch64-low.c.

◆ aarch64_system_control_registers

Enumerator
NZCV 
FPSR 
FPCR 
TPIDR_EL0 

Definition at line 720 of file linux-aarch64-low.c.

Function Documentation

◆ aarch64_arch_setup()

static void aarch64_arch_setup ( void  )
static

◆ aarch64_breakpoint_at()

static int aarch64_breakpoint_at ( CORE_ADDR  where)
static

◆ aarch64_breakpoint_kind_from_current_state()

static int aarch64_breakpoint_kind_from_current_state ( CORE_ADDR pcptr)
static

◆ aarch64_breakpoint_kind_from_pc()

static int aarch64_breakpoint_kind_from_pc ( CORE_ADDR pcptr)
static

◆ aarch64_cannot_fetch_register()

static int aarch64_cannot_fetch_register ( int  regno)
static

Definition at line 86 of file linux-aarch64-low.c.

◆ aarch64_cannot_store_register()

static int aarch64_cannot_store_register ( int  regno)
static

Definition at line 78 of file linux-aarch64-low.c.

◆ aarch64_emit_add()

static void aarch64_emit_add ( void  )
static

Definition at line 2258 of file linux-aarch64-low.c.

References emit_add(), emit_ops_insns(), emit_pop(), register_operand(), x0, and x1.

◆ aarch64_emit_bit_and()

static void aarch64_emit_bit_and ( void  )
static

Definition at line 2372 of file linux-aarch64-low.c.

References emit_and(), emit_ops_insns(), emit_pop(), x0, and x1.

◆ aarch64_emit_bit_not()

static void aarch64_emit_bit_not ( void  )
static

Definition at line 2414 of file linux-aarch64-low.c.

References emit_mvn(), emit_ops_insns(), and x0.

◆ aarch64_emit_bit_or()

static void aarch64_emit_bit_or ( void  )
static

Definition at line 2386 of file linux-aarch64-low.c.

References emit_ops_insns(), emit_orr(), emit_pop(), x0, and x1.

◆ aarch64_emit_bit_xor()

static void aarch64_emit_bit_xor ( void  )
static

Definition at line 2400 of file linux-aarch64-low.c.

References emit_eor(), emit_ops_insns(), emit_pop(), x0, and x1.

◆ aarch64_emit_call()

static void aarch64_emit_call ( CORE_ADDR  fn)
static

◆ aarch64_emit_const()

static void aarch64_emit_const ( LONGEST  num)
static

Definition at line 2557 of file linux-aarch64-low.c.

References emit_mov_addr(), emit_ops_insns(), and x0.

◆ aarch64_emit_epilogue()

static void aarch64_emit_epilogue ( void  )
static

◆ aarch64_emit_eq_goto()

static void aarch64_emit_eq_goto ( int *  offset_p,
int *  size_p 
)
static

Definition at line 2715 of file linux-aarch64-low.c.

References emit_cmp(), emit_ops_insns(), emit_pop(), NE, register_operand(), x0, and x1.

◆ aarch64_emit_equal()

static void aarch64_emit_equal ( void  )
static

◆ aarch64_emit_ext()

static void aarch64_emit_ext ( int  arg)
static

Definition at line 2342 of file linux-aarch64-low.c.

References emit_ops_insns(), emit_sbfx(), and x0.

◆ aarch64_emit_ge_got()

static void aarch64_emit_ge_got ( int *  offset_p,
int *  size_p 
)
static

Definition at line 2825 of file linux-aarch64-low.c.

References emit_cmp(), emit_ops_insns(), emit_pop(), LT, register_operand(), x0, and x1.

◆ aarch64_emit_goto()

static void aarch64_emit_goto ( int *  offset_p,
int *  size_p 
)
static

Definition at line 2528 of file linux-aarch64-low.c.

References emit_ops_insns().

◆ aarch64_emit_gt_goto()

static void aarch64_emit_gt_goto ( int *  offset_p,
int *  size_p 
)
static

Definition at line 2803 of file linux-aarch64-low.c.

References emit_cmp(), emit_ops_insns(), emit_pop(), LE, register_operand(), x0, and x1.

◆ aarch64_emit_if_goto()

static void aarch64_emit_if_goto ( int *  offset_p,
int *  size_p 
)
static

Definition at line 2503 of file linux-aarch64-low.c.

References emit_cmp(), emit_ops_insns(), emit_pop(), EQ, immediate_operand(), and x0.

◆ aarch64_emit_int_call_1()

static void aarch64_emit_int_call_1 ( CORE_ADDR  fn,
int  arg1 
)
static

◆ aarch64_emit_le_goto()

static void aarch64_emit_le_goto ( int *  offset_p,
int *  size_p 
)
static

Definition at line 2781 of file linux-aarch64-low.c.

References emit_cmp(), emit_ops_insns(), emit_pop(), GT, register_operand(), x0, and x1.

◆ aarch64_emit_less_signed()

static void aarch64_emit_less_signed ( void  )
static

◆ aarch64_emit_less_unsigned()

static void aarch64_emit_less_unsigned ( void  )
static

◆ aarch64_emit_log_not()

static void aarch64_emit_log_not ( void  )
static

Definition at line 2355 of file linux-aarch64-low.c.

References emit_cmp(), emit_cset(), emit_ops_insns(), EQ, immediate_operand(), and x0.

◆ aarch64_emit_lsh()

static void aarch64_emit_lsh ( void  )
static

Definition at line 2300 of file linux-aarch64-low.c.

References emit_lslv(), emit_ops_insns(), emit_pop(), x0, and x1.

◆ aarch64_emit_lt_goto()

static void aarch64_emit_lt_goto ( int *  offset_p,
int *  size_p 
)
static

Definition at line 2759 of file linux-aarch64-low.c.

References emit_cmp(), emit_ops_insns(), emit_pop(), GE, register_operand(), x0, and x1.

◆ aarch64_emit_mul()

static void aarch64_emit_mul ( void  )
static

Definition at line 2286 of file linux-aarch64-low.c.

References emit_mul(), emit_ops_insns(), emit_pop(), x0, and x1.

◆ aarch64_emit_ne_goto()

static void aarch64_emit_ne_goto ( int *  offset_p,
int *  size_p 
)
static

Definition at line 2737 of file linux-aarch64-low.c.

References emit_cmp(), emit_ops_insns(), emit_pop(), EQ, register_operand(), x0, and x1.

◆ aarch64_emit_ops()

static struct emit_ops* aarch64_emit_ops ( void  )
static

Definition at line 2888 of file linux-aarch64-low.c.

References aarch64_emit_ops_impl.

◆ aarch64_emit_pop()

static void aarch64_emit_pop ( void  )
static

Definition at line 2602 of file linux-aarch64-low.c.

References emit_ops_insns(), emit_pop(), and x0.

Referenced by aarch64_emit_void_call_2().

◆ aarch64_emit_prologue()

static void aarch64_emit_prologue ( void  )
static

◆ aarch64_emit_ref()

static void aarch64_emit_ref ( int  size)
static

◆ aarch64_emit_reg()

static void aarch64_emit_reg ( int  reg)
static

◆ aarch64_emit_rsh_signed()

static void aarch64_emit_rsh_signed ( void  )
static

Definition at line 2314 of file linux-aarch64-low.c.

References emit_asrv(), emit_ops_insns(), emit_pop(), x0, and x1.

◆ aarch64_emit_rsh_unsigned()

static void aarch64_emit_rsh_unsigned ( void  )
static

Definition at line 2328 of file linux-aarch64-low.c.

References emit_lsrv(), emit_ops_insns(), emit_pop(), x0, and x1.

◆ aarch64_emit_stack_adjust()

static void aarch64_emit_stack_adjust ( int  n)
static

Definition at line 2656 of file linux-aarch64-low.c.

References emit_add(), emit_ops_insns(), immediate_operand(), and sp.

◆ aarch64_emit_stack_flush()

static void aarch64_emit_stack_flush ( void  )
static

Definition at line 2615 of file linux-aarch64-low.c.

References emit_ops_insns(), emit_push(), and x0.

Referenced by aarch64_emit_void_call_2().

◆ aarch64_emit_sub()

static void aarch64_emit_sub ( void  )
static

Definition at line 2272 of file linux-aarch64-low.c.

References emit_ops_insns(), emit_pop(), emit_sub(), register_operand(), x0, and x1.

◆ aarch64_emit_swap()

static void aarch64_emit_swap ( void  )
static

◆ aarch64_emit_void_call_2()

static void aarch64_emit_void_call_2 ( CORE_ADDR  fn,
int  arg1 
)
static

◆ aarch64_emit_zero_ext()

static void aarch64_emit_zero_ext ( int  arg)
static

Definition at line 2628 of file linux-aarch64-low.c.

References emit_ops_insns(), emit_ubfx(), and x0.

◆ aarch64_fill_fpregset()

static void aarch64_fill_fpregset ( struct regcache regcache,
void *  buf 
)
static

Definition at line 118 of file linux-aarch64-low.c.

References collect_register().

◆ aarch64_fill_gregset()

static void aarch64_fill_gregset ( struct regcache regcache,
void *  buf 
)
static

Definition at line 92 of file linux-aarch64-low.c.

References collect_register().

◆ aarch64_ftrace_insn_reloc_adr()

static void aarch64_ftrace_insn_reloc_adr ( const int32_t  offset,
const unsigned  rd,
const int  is_adrp,
struct aarch64_insn_data *  data 
)
static

◆ aarch64_ftrace_insn_reloc_b()

static void aarch64_ftrace_insn_reloc_b ( const int  is_bl,
const int32_t  offset,
struct aarch64_insn_data *  data 
)
static

◆ aarch64_ftrace_insn_reloc_b_cond()

static void aarch64_ftrace_insn_reloc_b_cond ( const unsigned  cond,
const int32_t  offset,
struct aarch64_insn_data *  data 
)
static

◆ aarch64_ftrace_insn_reloc_cb()

static void aarch64_ftrace_insn_reloc_cb ( const int32_t  offset,
const int  is_cbnz,
const unsigned  rn,
int  is64,
struct aarch64_insn_data *  data 
)
static

◆ aarch64_ftrace_insn_reloc_ldr_literal()

static void aarch64_ftrace_insn_reloc_ldr_literal ( const int32_t  offset,
const int  is_sw,
const unsigned  rt,
const int  is64,
struct aarch64_insn_data *  data 
)
static

◆ aarch64_ftrace_insn_reloc_others()

static void aarch64_ftrace_insn_reloc_others ( const uint32_t  insn,
struct aarch64_insn_data *  data 
)
static

Definition at line 1746 of file linux-aarch64-low.c.

References aarch64_insn_relocation_data::insn_ptr.

◆ aarch64_ftrace_insn_reloc_tb()

static void aarch64_ftrace_insn_reloc_tb ( const int32_t  offset,
int  is_tbnz,
const unsigned  rt,
unsigned  bit,
struct aarch64_insn_data *  data 
)
static

◆ aarch64_get_debug_reg_state()

struct aarch64_debug_reg_state* aarch64_get_debug_reg_state ( pid_t  pid)

◆ aarch64_get_min_fast_tracepoint_insn_len()

static int aarch64_get_min_fast_tracepoint_insn_len ( void  )
static

Definition at line 2897 of file linux-aarch64-low.c.

◆ aarch64_get_pc()

static CORE_ADDR aarch64_get_pc ( struct regcache regcache)
static

◆ aarch64_get_syscall_trapinfo()

static void aarch64_get_syscall_trapinfo ( struct regcache regcache,
int *  sysno 
)
static

Definition at line 561 of file linux-aarch64-low.c.

References collect_register_by_name(), register_size(), and regcache::tdesc.

◆ aarch64_get_thread_area()

static int aarch64_get_thread_area ( int  lwpid,
CORE_ADDR addrp 
)
static

Definition at line 542 of file linux-aarch64-low.c.

References ptrace(), and PTRACE_GETREGSET.

◆ aarch64_init_debug_reg_state()

static void aarch64_init_debug_reg_state ( struct aarch64_debug_reg_state state)
static

◆ aarch64_insert_point()

static int aarch64_insert_point ( enum raw_bkpt_type  type,
CORE_ADDR  addr,
int  len,
struct raw_breakpoint bp 
)
static

◆ aarch64_install_fast_tracepoint_jump_pad()

static int aarch64_install_fast_tracepoint_jump_pad ( CORE_ADDR  tpoint,
CORE_ADDR  tpaddr,
CORE_ADDR  collector,
CORE_ADDR  lockaddr,
ULONGEST  orig_size,
CORE_ADDR jump_entry,
CORE_ADDR trampoline,
ULONGEST trampoline_size,
unsigned char *  jjump_pad_insn,
ULONGEST jjump_pad_insn_size,
CORE_ADDR adjusted_insn_addr,
CORE_ADDR adjusted_insn_addr_end,
char *  err 
)
static

◆ aarch64_linux_delete_process()

static void aarch64_linux_delete_process ( struct arch_process_info info)
static

Definition at line 433 of file linux-aarch64-low.c.

References xfree().

◆ aarch64_linux_new_fork()

static void aarch64_linux_new_fork ( struct process_info parent,
struct process_info child 
)
static

◆ aarch64_linux_new_process()

static struct arch_process_info* aarch64_linux_new_process ( void  )
static

◆ aarch64_linux_siginfo_fixup()

static int aarch64_linux_siginfo_fixup ( siginfo_t *  native,
gdb_byte inf,
int  direction 
)
static

◆ aarch64_register()

static struct aarch64_register aarch64_register ( unsigned  num,
int  is64 
)
static

◆ aarch64_regs_info()

static const struct regs_info* aarch64_regs_info ( void  )
static

Definition at line 517 of file linux-aarch64-low.c.

References is_64bit_tdesc(), regs_info_aarch32, and regs_info_aarch64.

◆ aarch64_remove_point()

static int aarch64_remove_point ( enum raw_bkpt_type  type,
CORE_ADDR  addr,
int  len,
struct raw_breakpoint bp 
)
static

◆ aarch64_set_pc()

static void aarch64_set_pc ( struct regcache regcache,
CORE_ADDR  pc 
)
static

◆ aarch64_stopped_by_watchpoint()

static int aarch64_stopped_by_watchpoint ( void  )
static

Definition at line 379 of file linux-aarch64-low.c.

References aarch64_stopped_data_address().

◆ aarch64_stopped_data_address()

static CORE_ADDR aarch64_stopped_data_address ( void  )
static

◆ aarch64_store_fpregset()

static void aarch64_store_fpregset ( struct regcache regcache,
const void *  buf 
)
static

Definition at line 130 of file linux-aarch64-low.c.

References supply_register().

◆ aarch64_store_gregset()

static void aarch64_store_gregset ( struct regcache regcache,
const void *  buf 
)
static

Definition at line 105 of file linux-aarch64-low.c.

References supply_register().

◆ aarch64_supports_hardware_single_step()

static int aarch64_supports_hardware_single_step ( void  )
static

Definition at line 2950 of file linux-aarch64-low.c.

◆ aarch64_supports_range_stepping()

static int aarch64_supports_range_stepping ( void  )
static

Definition at line 2905 of file linux-aarch64-low.c.

◆ aarch64_supports_tracepoints()

static int aarch64_supports_tracepoints ( void  )
static

Definition at line 528 of file linux-aarch64-low.c.

References current_thread, and is_64bit_tdesc().

◆ aarch64_supports_z_point_type()

static int aarch64_supports_z_point_type ( char  z_type)
static

◆ aarch64_sw_breakpoint_from_kind()

static const gdb_byte* aarch64_sw_breakpoint_from_kind ( int  kind,
int *  size 
)
static

◆ aarch64_write_goto_address()

void aarch64_write_goto_address ( CORE_ADDR  from,
CORE_ADDR  to,
int  size 
)

Definition at line 2546 of file linux-aarch64-low.c.

References append_insns().

◆ append_insns()

static void append_insns ( CORE_ADDR to,
size_t  len,
const uint32_t *  buf 
)
static

◆ emit_add()

static int emit_add ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_operand  operand 
)
static

◆ emit_and()

static int emit_and ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_register  rm 
)
static

Definition at line 1209 of file linux-aarch64-low.c.

References emit_data_processing_reg().

Referenced by aarch64_emit_bit_and().

◆ emit_asrv()

static int emit_asrv ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_register  rm 
)
static

Definition at line 1309 of file linux-aarch64-low.c.

References emit_data_processing_reg().

Referenced by aarch64_emit_rsh_signed().

◆ emit_blr()

static int emit_blr ( uint32_t *  buf,
struct aarch64_register  rn 
)
static

◆ emit_cmp()

static int emit_cmp ( uint32_t *  buf,
struct aarch64_register  rn,
struct aarch64_operand  operand 
)
static

◆ emit_cset()

static int emit_cset ( uint32_t *  buf,
struct aarch64_register  rd,
unsigned  cond 
)
static

◆ emit_csinc()

static int emit_csinc ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_register  rm,
unsigned  cond 
)
static

Definition at line 1481 of file linux-aarch64-low.c.

Referenced by emit_cset().

◆ emit_data_processing()

static int emit_data_processing ( uint32_t *  buf,
enum aarch64_opcodes  opcode,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_operand  operand 
)
static

◆ emit_data_processing_reg()

static int emit_data_processing_reg ( uint32_t *  buf,
uint32_t  opcode,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_register  rm 
)
static

◆ emit_eor()

static int emit_eor ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_register  rm 
)
static

Definition at line 1251 of file linux-aarch64-low.c.

References emit_data_processing_reg().

Referenced by aarch64_emit_bit_xor().

◆ emit_ldaxr()

static int emit_ldaxr ( uint32_t *  buf,
struct aarch64_register  rt,
struct aarch64_register  rn 
)
static

Definition at line 963 of file linux-aarch64-low.c.

References emit_load_store_exclusive(), and xzr.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ emit_ldp()

static int emit_ldp ( uint32_t *  buf,
struct aarch64_register  rt,
struct aarch64_register  rt2,
struct aarch64_register  rn,
struct aarch64_memory_operand  operand 
)
static

Definition at line 830 of file linux-aarch64-low.c.

References emit_load_store_pair().

Referenced by aarch64_emit_epilogue().

◆ emit_ldp_q_offset()

static int emit_ldp_q_offset ( uint32_t *  buf,
unsigned  rt,
unsigned  rt2,
struct aarch64_register  rn,
int32_t  offset 
)
static

Definition at line 847 of file linux-aarch64-low.c.

References offset.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ emit_ldrb()

static int emit_ldrb ( uint32_t *  buf,
struct aarch64_register  rt,
struct aarch64_register  rn,
struct aarch64_memory_operand  operand 
)
static

Definition at line 912 of file linux-aarch64-low.c.

Referenced by aarch64_emit_ref().

◆ emit_ldrh()

static int emit_ldrh ( uint32_t *  buf,
struct aarch64_register  rt,
struct aarch64_register  rn,
struct aarch64_memory_operand  operand 
)
static

Definition at line 893 of file linux-aarch64-low.c.

Referenced by aarch64_emit_ref().

◆ emit_load_store_exclusive()

static int emit_load_store_exclusive ( uint32_t *  buf,
uint32_t  size,
enum aarch64_opcodes  opcode,
struct aarch64_register  rs,
struct aarch64_register  rt,
struct aarch64_register  rt2,
struct aarch64_register  rn 
)
static

Definition at line 943 of file linux-aarch64-low.c.

Referenced by emit_ldaxr(), emit_stlr(), and emit_stxr().

◆ emit_load_store_pair()

static int emit_load_store_pair ( uint32_t *  buf,
enum aarch64_opcodes  opcode,
struct aarch64_register  rt,
struct aarch64_register  rt2,
struct aarch64_register  rn,
struct aarch64_memory_operand  operand 
)
static

Definition at line 754 of file linux-aarch64-low.c.

Referenced by emit_ldp(), and emit_stp().

◆ emit_lslv()

static int emit_lslv ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_register  rm 
)
static

Definition at line 1281 of file linux-aarch64-low.c.

References emit_data_processing_reg().

Referenced by aarch64_emit_lsh().

◆ emit_lsrv()

static int emit_lsrv ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_register  rm 
)
static

Definition at line 1295 of file linux-aarch64-low.c.

References emit_data_processing_reg().

Referenced by aarch64_emit_rsh_unsigned().

◆ emit_mov()

static int emit_mov ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_operand  operand 
)
static

◆ emit_mov_addr()

static int emit_mov_addr ( uint32_t *  buf,
struct aarch64_register  rd,
CORE_ADDR  addr 
)
static

◆ emit_movk()

static int emit_movk ( uint32_t *  buf,
struct aarch64_register  rd,
uint32_t  imm,
unsigned  shift 
)
static

Definition at line 1126 of file linux-aarch64-low.c.

Referenced by emit_mov_addr().

◆ emit_mrs()

static int emit_mrs ( uint32_t *  buf,
struct aarch64_register  rt,
enum aarch64_system_control_registers  system_reg 
)
static

Definition at line 1337 of file linux-aarch64-low.c.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ emit_msr()

static int emit_msr ( uint32_t *  buf,
enum aarch64_system_control_registers  system_reg,
struct aarch64_register  rt 
)
static

Definition at line 1352 of file linux-aarch64-low.c.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ emit_mul()

static int emit_mul ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_register  rm 
)
static

Definition at line 1323 of file linux-aarch64-low.c.

References emit_data_processing_reg().

Referenced by aarch64_emit_mul().

◆ emit_mvn()

static int emit_mvn ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rm 
)
static

Definition at line 1267 of file linux-aarch64-low.c.

References emit_orn(), and xzr.

Referenced by aarch64_emit_bit_not().

◆ emit_ops_insns()

static void emit_ops_insns ( const uint32_t *  start,
int  len 
)
static

◆ emit_orn()

static int emit_orn ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_register  rm 
)
static

Definition at line 1237 of file linux-aarch64-low.c.

References emit_data_processing_reg().

Referenced by emit_mvn().

◆ emit_orr()

static int emit_orr ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_register  rm 
)
static

Definition at line 1223 of file linux-aarch64-low.c.

References emit_data_processing_reg().

Referenced by aarch64_emit_bit_or().

◆ emit_pop()

static int emit_pop ( uint32_t *  buf,
struct aarch64_register  rt 
)
static

◆ emit_push()

static int emit_push ( uint32_t *  buf,
struct aarch64_register  rt 
)
static

Definition at line 2180 of file linux-aarch64-low.c.

References emit_str(), preindex_memory_operand(), and sp.

Referenced by aarch64_emit_stack_flush().

◆ emit_ret()

static int emit_ret ( uint32_t *  buf,
struct aarch64_register  rn 
)
static

Definition at line 748 of file linux-aarch64-low.c.

Referenced by aarch64_emit_epilogue().

◆ emit_sbfm()

static int emit_sbfm ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
uint32_t  immr,
uint32_t  imms 
)
static

Definition at line 1392 of file linux-aarch64-low.c.

Referenced by emit_sbfx().

◆ emit_sbfx()

static int emit_sbfx ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
uint32_t  lsb,
uint32_t  width 
)
static

Definition at line 1418 of file linux-aarch64-low.c.

References emit_sbfm().

Referenced by aarch64_emit_ext().

◆ emit_sevl()

static int emit_sevl ( uint32_t *  buf)
static

Definition at line 1364 of file linux-aarch64-low.c.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ emit_stlr()

static int emit_stlr ( uint32_t *  buf,
struct aarch64_register  rt,
struct aarch64_register  rn 
)
static

Definition at line 994 of file linux-aarch64-low.c.

References emit_load_store_exclusive(), and xzr.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ emit_stp()

static int emit_stp ( uint32_t *  buf,
struct aarch64_register  rt,
struct aarch64_register  rt2,
struct aarch64_register  rn,
struct aarch64_memory_operand  operand 
)
static

◆ emit_stp_q_offset()

static int emit_stp_q_offset ( uint32_t *  buf,
unsigned  rt,
unsigned  rt2,
struct aarch64_register  rn,
int32_t  offset 
)
static

Definition at line 869 of file linux-aarch64-low.c.

References offset.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ emit_str()

static int emit_str ( uint32_t *  buf,
struct aarch64_register  rt,
struct aarch64_register  rn,
struct aarch64_memory_operand  operand 
)
static

◆ emit_stxr()

static int emit_stxr ( uint32_t *  buf,
struct aarch64_register  rs,
struct aarch64_register  rt,
struct aarch64_register  rn 
)
static

Definition at line 979 of file linux-aarch64-low.c.

References emit_load_store_exclusive(), and xzr.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ emit_sub()

static int emit_sub ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_operand  operand 
)
static

◆ emit_subs()

static int emit_subs ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
struct aarch64_operand  operand 
)
static

Definition at line 1180 of file linux-aarch64-low.c.

References emit_data_processing().

Referenced by emit_cmp().

◆ emit_ubfm()

static int emit_ubfm ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
uint32_t  immr,
uint32_t  imms 
)
static

Definition at line 1437 of file linux-aarch64-low.c.

Referenced by emit_ubfx().

◆ emit_ubfx()

static int emit_ubfx ( uint32_t *  buf,
struct aarch64_register  rd,
struct aarch64_register  rn,
uint32_t  lsb,
uint32_t  width 
)
static

Definition at line 1463 of file linux-aarch64-low.c.

References emit_ubfm().

Referenced by aarch64_emit_zero_ext().

◆ emit_wfe()

static int emit_wfe ( uint32_t *  buf)
static

Definition at line 1374 of file linux-aarch64-low.c.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ immediate_operand()

static struct aarch64_operand immediate_operand ( uint32_t  imm)
static

◆ initialize_low_arch()

void initialize_low_arch ( void  )

Definition at line 2996 of file linux-aarch64-low.c.

Referenced by initialize_low().

◆ is_64bit_tdesc()

static int is_64bit_tdesc ( void  )
static

◆ offset_memory_operand()

static struct aarch64_memory_operand offset_memory_operand ( int32_t  offset)
static

◆ postindex_memory_operand()

static struct aarch64_memory_operand postindex_memory_operand ( int32_t  index)
static

Definition at line 706 of file linux-aarch64-low.c.

Referenced by emit_pop().

◆ preindex_memory_operand()

static struct aarch64_memory_operand preindex_memory_operand ( int32_t  index)
static

◆ ps_get_thread_area()

ps_err_e ps_get_thread_area ( struct ps_prochandle ph,
lwpid_t  lwpid,
int  idx,
void **  base 
)

Definition at line 390 of file linux-aarch64-low.c.

References aarch64_ps_get_thread_area(), and is_64bit_tdesc().

◆ register_operand()

static struct aarch64_operand register_operand ( struct aarch64_register  reg)
static

Variable Documentation

◆ aarch64_breakpoint

const gdb_byte aarch64_breakpoint[] = {0x00, 0x00, 0x20, 0xd4}
static

Definition at line 173 of file linux-aarch64-low.c.

Referenced by aarch64_breakpoint_at(), and aarch64_sw_breakpoint_from_kind().

◆ aarch64_emit_ops_impl

struct emit_ops aarch64_emit_ops_impl
static

Definition at line 2844 of file linux-aarch64-low.c.

Referenced by aarch64_emit_ops().

◆ aarch64_regsets

struct regset_info aarch64_regsets[]
static
Initial value:
=
{
sizeof (struct user_pt_regs), GENERAL_REGS,
sizeof (struct user_fpsimd_state), FP_REGS,
},
NULL_REGSET
}
static void aarch64_store_gregset(struct regcache *regcache, const void *buf)
static void aarch64_fill_gregset(struct regcache *regcache, void *buf)
static void aarch64_fill_fpregset(struct regcache *regcache, void *buf)
#define PTRACE_SETREGSET
Definition: linux-ptrace.h:51
#define PTRACE_GETREGSET
Definition: linux-ptrace.h:47
static void aarch64_store_fpregset(struct regcache *regcache, const void *buf)

Definition at line 488 of file linux-aarch64-low.c.

◆ aarch64_regsets_info

struct regsets_info aarch64_regsets_info
static
Initial value:
=
{
0,
NULL,
}
static struct regset_info aarch64_regsets[]

Definition at line 500 of file linux-aarch64-low.c.

Referenced by initialize_low_arch().

◆ debug_threads

int debug_threads

Definition at line 24 of file debug.c.

Referenced by emit_ops_insns().

◆ fp

const struct aarch64_register fp = { 29, 1 }
static

◆ ip0

const struct aarch64_register ip0 = { 16, 1 }
static

◆ lr

const struct aarch64_register lr = { 30, 1 }
static

Definition at line 630 of file linux-aarch64-low.c.

Referenced by aarch64_emit_epilogue(), and aarch64_emit_prologue().

◆ regs_info_aarch64

struct regs_info regs_info_aarch64
static
Initial value:
=
{
NULL,
NULL,
}
static struct regsets_info aarch64_regsets_info

Definition at line 507 of file linux-aarch64-low.c.

Referenced by aarch64_regs_info().

◆ sp

const struct aarch64_register sp = { 31, 1 }
static

◆ the_low_target

struct linux_target_ops the_low_target

Definition at line 2955 of file linux-aarch64-low.c.

Referenced by add_lwp(), can_hardware_single_step(), can_software_single_step(), check_stopped_by_watchpoint(), child_add_thread(), child_fetch_inferior_registers(), child_store_inferior_registers(), delete_lwp(), do_attach(), do_initial_child_stuff(), get_pc(), get_syscall_trapinfo(), handle_extended_wait(), initialize_low(), install_software_single_step_breakpoints(), linux_add_process(), linux_arch_setup(), linux_breakpoint_kind_from_current_state(), linux_breakpoint_kind_from_pc(), linux_detach_one_lwp(), linux_emit_ops(), linux_fast_tracepoint_collecting(), linux_fetch_registers(), linux_get_ipa_tdesc_idx(), linux_get_min_fast_tracepoint_insn_len(), linux_insert_point(), linux_install_fast_tracepoint_jump_pad(), linux_mourn(), linux_process_qsupported(), linux_read_pc(), linux_remove_point(), linux_resume_one_lwp_throw(), linux_store_registers(), linux_supports_catch_syscall(), linux_supports_range_stepping(), linux_supports_tracepoints(), linux_supports_z_point_type(), linux_sw_breakpoint_from_kind(), linux_wait_1(), linux_write_pc(), maybe_move_out_of_jump_pad(), nto_fetch_registers(), nto_store_registers(), nto_sw_breakpoint_from_kind(), save_stop_reason(), siginfo_fixup(), supports_breakpoints(), supports_fast_tracepoints(), thread_still_has_status_pending_p(), win32_get_thread_context(), win32_insert_point(), win32_prepare_to_resume(), win32_remove_point(), win32_resume(), win32_stopped_by_watchpoint(), win32_stopped_data_address(), win32_supports_z_point_type(), and win32_sw_breakpoint_from_kind().

◆ visitor

const struct aarch64_insn_visitor visitor
static
Initial value:
=
{
}
static void aarch64_ftrace_insn_reloc_b(const int is_bl, const int32_t offset, struct aarch64_insn_data *data)
static void aarch64_ftrace_insn_reloc_ldr_literal(const int32_t offset, const int is_sw, const unsigned rt, const int is64, struct aarch64_insn_data *data)
static void aarch64_ftrace_insn_reloc_others(const uint32_t insn, struct aarch64_insn_data *data)
static void aarch64_ftrace_insn_reloc_b_cond(const unsigned cond, const int32_t offset, struct aarch64_insn_data *data)
static void aarch64_ftrace_insn_reloc_tb(const int32_t offset, int is_tbnz, const unsigned rt, unsigned bit, struct aarch64_insn_data *data)
static void aarch64_ftrace_insn_reloc_adr(const int32_t offset, const unsigned rd, const int is_adrp, struct aarch64_insn_data *data)
static void aarch64_ftrace_insn_reloc_cb(const int32_t offset, const int is_cbnz, const unsigned rn, int is64, struct aarch64_insn_data *data)

Definition at line 1757 of file linux-aarch64-low.c.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ w0

const struct aarch64_register w0 = { 0, 0 }
static

Definition at line 622 of file linux-aarch64-low.c.

Referenced by aarch64_emit_ref().

◆ w2

const struct aarch64_register w2 = { 2, 0 }
static

Definition at line 623 of file linux-aarch64-low.c.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ x0

const struct aarch64_register x0 = { 0, 1 }
static

◆ x1

const struct aarch64_register x1 = { 1, 1 }
static

◆ x2

const struct aarch64_register x2 = { 2, 1 }
static

Definition at line 617 of file linux-aarch64-low.c.

Referenced by aarch64_install_fast_tracepoint_jump_pad().

◆ x3

const struct aarch64_register x3 = { 3, 1 }
static

◆ x4

const struct aarch64_register x4 = { 4, 1 }
static

◆ xzr

const struct aarch64_register xzr = { 31, 1 }
static