GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions | Variables
arm-tdep.c File Reference
#include "defs.h"
#include <ctype.h>
#include "frame.h"
#include "language.h"
#include "inferior.h"
#include "infrun.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "dis-asm.h"
#include "disasm.h"
#include "regcache.h"
#include "reggroups.h"
#include "target-float.h"
#include "value.h"
#include "arch-utils.h"
#include "osabi.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "objfiles.h"
#include "dwarf2.h"
#include "dwarf2/frame.h"
#include "gdbtypes.h"
#include "prologue-value.h"
#include "remote.h"
#include "target-descriptions.h"
#include "user-regs.h"
#include "observable.h"
#include "count-one-bits.h"
#include "arch/arm.h"
#include "arch/arm-get-next-pcs.h"
#include "arm-tdep.h"
#include "sim/sim-arm.h"
#include "elf-bfd.h"
#include "coff/internal.h"
#include "elf/arm.h"
#include "record.h"
#include "record-full.h"
#include <algorithm>
#include "producer.h"
#include "bfd-in2.h"
#include "libcoff.h"

Go to the source code of this file.

Classes

struct  arm_mapping_symbol
 
struct  arm_per_bfd
 
struct  arm_prologue_cache
 
struct  arm_exidx_entry
 
struct  arm_exidx_data
 
struct  arm_dwarf2_prev_register_cache
 
struct  arm_stack_item
 
struct  arm_mem_r
 
struct  arm_insn_decode_record
 

Macros

#define arm_debug_printf(fmt, ...)    debug_prefixed_printf_cond (arm_debug, "arm", fmt, ##__VA_ARGS__)
 
#define MSYMBOL_SET_SPECIAL(msym)    (msym)->set_target_flag_1 (true)
 
#define MSYMBOL_IS_SPECIAL(msym)    (msym)->target_flag_1 ()
 
#define DISPLACED_STEPPING_ARCH_VERSION   5
 
#define EXTRACT_MOVW_MOVT_IMM_T(insn1, insn2)
 
#define EXTRACT_MOVW_MOVT_IMM_A(insn)
 
#define MAX_IT_BLOCK_PREFIX   14
 
#define IT_SCAN_THRESHOLD   32
 
#define ARM_NOP   0xe1a00000
 
#define THUMB_NOP   0x4600
 
#define ARM_LE_BREAKPOINT   {0xFE,0xDE,0xFF,0xE7}
 
#define ARM_BE_BREAKPOINT   {0xE7,0xFF,0xDE,0xFE}
 
#define THUMB_LE_BREAKPOINT   {0xbe,0xbe}
 
#define THUMB_BE_BREAKPOINT   {0xbe,0xbe}
 
#define ARM_INSN_SIZE_BYTES   4
 
#define THUMB_INSN_SIZE_BYTES   2
 
#define THUMB2_INSN_SIZE_BYTES   4
 
#define INSN_S_L_BIT_NUM   20
 
#define REG_ALLOC(REGS, LENGTH, RECORD_BUF)
 
#define MEM_ALLOC(MEMS, LENGTH, RECORD_BUF)
 
#define INSN_RECORDED(ARM_RECORD)    (0 != (ARM_RECORD)->reg_rec_count || 0 != (ARM_RECORD)->mem_rec_count)
 

Typedefs

typedef std::vector< arm_mapping_symbolarm_mapping_symbol_vec
 
typedef int(* sti_arm_hdl_fp_t) (arm_insn_decode_record *)
 

Enumerations

enum  arm_vfp_cprc_base_type {
  VFP_CPRC_UNKNOWN , VFP_CPRC_SINGLE , VFP_CPRC_DOUBLE , VFP_CPRC_VEC64 ,
  VFP_CPRC_VEC128
}
 
enum  arm_record_result { ARM_RECORD_SUCCESS = 0 , ARM_RECORD_FAILURE = 1 }
 
enum  arm_record_strx_t { ARM_RECORD_STRH =1 , ARM_RECORD_STRD }
 
enum  record_type_t { ARM_RECORD =1 , THUMB_RECORD , THUMB2_RECORD }
 

Functions

static void set_disassembly_style_sfunc (const char *, int, struct cmd_list_element *)
 
static void show_disassembly_style_sfunc (struct ui_file *, int, struct cmd_list_element *, const char *)
 
static enum register_status arm_neon_quad_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buf)
 
static void arm_neon_quad_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf)
 
static CORE_ADDR arm_get_next_pcs_syscall_next_pc (struct arm_get_next_pcs *self)
 
static ULONGEST reconstruct_t_bit (struct gdbarch *gdbarch, CORE_ADDR lr, ULONGEST psr)
 
static void arm_cache_init (struct arm_prologue_cache *cache, struct gdbarch *gdbarch)
 
static void arm_cache_init (struct arm_prologue_cache *cache, frame_info_ptr frame)
 
static CORE_ADDR arm_cache_get_sp_register (struct arm_prologue_cache *cache, arm_gdbarch_tdep *tdep, int regnum)
 
static CORE_ADDR arm_cache_get_prev_sp_value (struct arm_prologue_cache *cache, arm_gdbarch_tdep *tdep)
 
static void arm_cache_set_active_sp_value (struct arm_prologue_cache *cache, arm_gdbarch_tdep *tdep, CORE_ADDR val)
 
static bool arm_is_alternative_sp_register (arm_gdbarch_tdep *tdep, int regnum)
 
static void arm_cache_switch_prev_sp (struct arm_prologue_cache *cache, arm_gdbarch_tdep *tdep, int sp_regnum)
 
static CORE_ADDR arm_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR prologue_start, CORE_ADDR prologue_end, struct arm_prologue_cache *cache, const arm_instruction_reader &insn_reader)
 
int arm_psr_thumb_bit (struct gdbarch *gdbarch)
 
int arm_is_thumb (struct regcache *regcache)
 
int arm_frame_is_thumb (frame_info_ptr frame)
 
static char arm_find_mapping_symbol (CORE_ADDR memaddr, CORE_ADDR *start)
 
int arm_pc_is_thumb (struct gdbarch *gdbarch, CORE_ADDR memaddr)
 
static bool arm_m_addr_is_lockup (CORE_ADDR addr)
 
static int arm_m_addr_is_magic (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static CORE_ADDR arm_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR val)
 
static int skip_prologue_function (struct gdbarch *gdbarch, CORE_ADDR pc, int is_thumb)
 
static unsigned int thumb_expand_immediate (unsigned int imm)
 
static int thumb_instruction_restores_sp (unsigned short insn)
 
static CORE_ADDR thumb_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR start, CORE_ADDR limit, struct arm_prologue_cache *cache)
 
static CORE_ADDR arm_analyze_load_stack_chk_guard (CORE_ADDR pc, struct gdbarch *gdbarch, unsigned int *destreg, int *offset)
 
static CORE_ADDR arm_skip_stack_protector (CORE_ADDR pc, struct gdbarch *gdbarch)
 
static CORE_ADDR arm_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static void thumb_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR prev_pc, CORE_ADDR block_addr, struct arm_prologue_cache *cache)
 
static int arm_instruction_restores_sp (unsigned int insn)
 
static uint32_t arm_expand_immediate (uint32_t imm)
 
static void arm_scan_prologue (frame_info_ptr this_frame, struct arm_prologue_cache *cache)
 
static struct arm_prologue_cachearm_make_prologue_cache (frame_info_ptr this_frame)
 
static enum unwind_stop_reason arm_prologue_unwind_stop_reason (frame_info_ptr this_frame, void **this_cache)
 
static void arm_prologue_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuearm_prologue_prev_register (frame_info_ptr this_frame, void **this_cache, int prev_regnum)
 
static struct obj_sectionarm_obj_section_from_vma (struct objfile *objfile, bfd_vma vma)
 
static void arm_exidx_new_objfile (struct objfile *objfile)
 
static gdb_byte * arm_find_exidx_entry (CORE_ADDR memaddr, CORE_ADDR *start)
 
static struct arm_prologue_cachearm_exidx_fill_cache (frame_info_ptr this_frame, gdb_byte *entry)
 
static int arm_exidx_unwind_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
 
static struct arm_prologue_cachearm_make_epilogue_frame_cache (frame_info_ptr this_frame)
 
static void arm_epilogue_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuearm_epilogue_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static int arm_stack_frame_destroyed_p_1 (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int thumb_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int arm_epilogue_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
 
static CORE_ADDR arm_skip_bx_reg (frame_info_ptr frame, CORE_ADDR pc)
 
static struct arm_prologue_cachearm_make_stub_cache (frame_info_ptr this_frame)
 
static void arm_stub_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static int arm_stub_unwind_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
 
static struct arm_prologue_cachearm_m_exception_cache (frame_info_ptr this_frame)
 
static enum unwind_stop_reason arm_m_exception_frame_unwind_stop_reason (frame_info_ptr this_frame, void **this_cache)
 
static void arm_m_exception_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuearm_m_exception_prev_register (frame_info_ptr this_frame, void **this_cache, int prev_regnum)
 
static int arm_m_exception_unwind_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
 
static CORE_ADDR arm_normal_frame_base (frame_info_ptr this_frame, void **this_cache)
 
static struct valuearm_dwarf2_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static int arm_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static struct arm_stack_itempush_stack_item (struct arm_stack_item *prev, const gdb_byte *contents, int len)
 
static struct arm_stack_itempop_stack_item (struct arm_stack_item *si)
 
static ULONGEST arm_type_align (gdbarch *gdbarch, struct type *t)
 
static unsigned arm_vfp_cprc_unit_length (enum arm_vfp_cprc_base_type b)
 
static int arm_vfp_cprc_reg_char (enum arm_vfp_cprc_base_type b)
 
static int arm_vfp_cprc_sub_candidate (struct type *t, enum arm_vfp_cprc_base_type *base_type)
 
static int arm_vfp_call_candidate (struct type *t, enum arm_vfp_cprc_base_type *base_type, int *count)
 
static int arm_vfp_abi_for_function (struct gdbarch *gdbarch, struct type *func_type)
 
static CORE_ADDR arm_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr)
 
static CORE_ADDR arm_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
 
static void print_fpu_flags (struct ui_file *file, int flags)
 
static void arm_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, frame_info_ptr frame, const char *args)
 
static struct typearm_ext_type (struct gdbarch *gdbarch)
 
static struct typearm_neon_double_type (struct gdbarch *gdbarch)
 
static struct typearm_neon_quad_type (struct gdbarch *gdbarch)
 
static bool is_q_pseudo (struct gdbarch *gdbarch, int regnum)
 
static bool is_s_pseudo (struct gdbarch *gdbarch, int regnum)
 
static bool is_mve_pseudo (struct gdbarch *gdbarch, int regnum)
 
static bool is_pacbti_pseudo (struct gdbarch *gdbarch, int regnum)
 
static struct typearm_register_type (struct gdbarch *gdbarch, int regnum)
 
static int arm_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
 
static int arm_register_sim_regno (struct gdbarch *gdbarch, int regnum)
 
static void arm_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, frame_info_ptr this_frame)
 
static gdb_byte * extend_buffer_earlier (gdb_byte *buf, CORE_ADDR endaddr, int old_len, int new_len)
 
static CORE_ADDR arm_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
 
ULONGEST displaced_read_reg (regcache *regs, arm_displaced_step_copy_insn_closure *dsc, int regno)
 
static int displaced_in_arm_mode (struct regcache *regs)
 
static void branch_write_pc (regcache *regs, arm_displaced_step_copy_insn_closure *dsc, ULONGEST val)
 
static void bx_write_pc (struct regcache *regs, ULONGEST val)
 
static void load_write_pc (regcache *regs, arm_displaced_step_copy_insn_closure *dsc, ULONGEST val)
 
static void alu_write_pc (regcache *regs, arm_displaced_step_copy_insn_closure *dsc, ULONGEST val)
 
void displaced_write_reg (regcache *regs, arm_displaced_step_copy_insn_closure *dsc, int regno, ULONGEST val, enum pc_write_style write_pc)
 
static int insn_references_pc (uint32_t insn, uint32_t bitmask)
 
static int arm_copy_unmodified (struct gdbarch *gdbarch, uint32_t insn, const char *iname, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_copy_unmodified_32bit (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, const char *iname, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_copy_unmodified_16bit (struct gdbarch *gdbarch, uint16_t insn, const char *iname, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_preload (struct gdbarch *gdbarch, regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void install_preload (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, unsigned int rn)
 
static int arm_copy_preload (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb2_copy_preload (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void install_preload_reg (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, unsigned int rn, unsigned int rm)
 
static int arm_copy_preload_reg (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_copro_load_store (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void install_copro_load_store (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, int writeback, unsigned int rn)
 
static int arm_copy_copro_load_store (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb2_copy_copro_load_store (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_branch (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void install_b_bl_blx (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, unsigned int cond, int exchange, int link, long offset)
 
static int arm_copy_b_bl_blx (struct gdbarch *gdbarch, uint32_t insn, regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb2_copy_b_bl_blx (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_copy_b (struct gdbarch *gdbarch, uint16_t insn, arm_displaced_step_copy_insn_closure *dsc)
 
static void install_bx_blx_reg (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, int link, unsigned int cond, unsigned int rm)
 
static int arm_copy_bx_blx_reg (struct gdbarch *gdbarch, uint32_t insn, regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_copy_bx_blx_reg (struct gdbarch *gdbarch, uint16_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_alu_imm (struct gdbarch *gdbarch, regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_copy_alu_imm (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb2_copy_alu_imm (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_alu_reg (struct gdbarch *gdbarch, regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void install_alu_reg (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, unsigned int rd, unsigned int rn, unsigned int rm)
 
static int arm_copy_alu_reg (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_copy_alu_reg (struct gdbarch *gdbarch, uint16_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_alu_shifted_reg (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void install_alu_shifted_reg (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, unsigned int rd, unsigned int rn, unsigned int rm, unsigned rs)
 
static int arm_copy_alu_shifted_reg (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_load (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_store (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_copy_extra_ld_st (struct gdbarch *gdbarch, uint32_t insn, int unprivileged, regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void install_load_store (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, int load, int immed, int writeback, int size, int usermode, int rt, int rm, int rn)
 
static int thumb2_copy_load_literal (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, int size)
 
static int thumb2_copy_load_reg_imm (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, int writeback, int immed)
 
static int arm_copy_ldr_str_ldrb_strb (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, int load, int size, int usermode)
 
static void cleanup_block_load_all (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_block_store_pc (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_block_load_pc (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_copy_block_xfer (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb2_copy_block_xfer (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
ULONGEST arm_get_next_pcs_read_memory_unsigned_integer (CORE_ADDR memaddr, int len, int byte_order)
 
CORE_ADDR arm_get_next_pcs_addr_bits_remove (struct arm_get_next_pcs *self, CORE_ADDR val)
 
int arm_get_next_pcs_is_thumb (struct arm_get_next_pcs *self)
 
std::vector< CORE_ADDR > arm_software_single_step (struct regcache *regcache)
 
static void cleanup_svc (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int install_svc (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_copy_svc (struct gdbarch *gdbarch, uint32_t insn, regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_copy_svc (struct gdbarch *gdbarch, uint16_t insn, regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_copy_undef (struct gdbarch *gdbarch, uint32_t insn, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_32bit_copy_undef (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_copy_unpred (struct gdbarch *gdbarch, uint32_t insn, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_decode_misc_memhint_neon (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_decode_unconditional (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_decode_miscellaneous (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_decode_dp_misc (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_decode_ld_st_word_ubyte (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_decode_media (struct gdbarch *gdbarch, uint32_t insn, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_decode_b_bl_ldmstm (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_decode_ext_reg_ld_st (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb2_decode_dp_shift_reg (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb2_decode_ext_reg_ld_st (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int arm_decode_svc_copro (struct gdbarch *gdbarch, uint32_t insn, regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb2_decode_svc_copro (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void install_pc_relative (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, int rd)
 
static int thumb_copy_pc_relative_16bit (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc, int rd, unsigned int imm)
 
static int thumb_decode_pc_relative_16bit (struct gdbarch *gdbarch, uint16_t insn, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_copy_pc_relative_32bit (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_copy_16bit_ldr_literal (struct gdbarch *gdbarch, uint16_t insn1, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_copy_cbnz_cbz (struct gdbarch *gdbarch, uint16_t insn1, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb2_copy_table_branch (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void cleanup_pop_pc_16bit_all (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int thumb_copy_pop_pc_16bit (struct gdbarch *gdbarch, uint16_t insn1, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void thumb_process_displaced_16bit_insn (struct gdbarch *gdbarch, uint16_t insn1, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static int decode_thumb_32bit_ld_mem_hints (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void thumb_process_displaced_32bit_insn (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
static void thumb_process_displaced_insn (struct gdbarch *gdbarch, CORE_ADDR from, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
void arm_process_displaced_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs, arm_displaced_step_copy_insn_closure *dsc)
 
void arm_displaced_init_closure (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, arm_displaced_step_copy_insn_closure *dsc)
 
void arm_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_copy_insn_closure *dsc_, CORE_ADDR from, CORE_ADDR to, struct regcache *regs, bool completed_p)
 
static int gdb_print_insn_arm (bfd_vma memaddr, disassemble_info *info)
 
static int arm_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
 
static const gdb_byte * arm_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
 
static int arm_breakpoint_kind_from_current_state (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR *pcptr)
 
static void arm_extract_return_value (struct type *type, struct regcache *regs, gdb_byte *valbuf)
 
static int arm_return_in_memory (struct gdbarch *gdbarch, struct type *type)
 
static void arm_store_return_value (struct type *type, struct regcache *regs, const gdb_byte *valbuf)
 
static enum return_value_convention arm_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, struct value **read_value, const gdb_byte *writebuf)
 
static int arm_get_longjmp_target (frame_info_ptr frame, CORE_ADDR *pc)
 
static CORE_ADDR arm_skip_cmse_entry (CORE_ADDR pc, const char *name, struct objfile *objfile)
 
static bool arm_is_sgstubs_section (struct obj_section *sec)
 
CORE_ADDR arm_skip_stub (frame_info_ptr frame, CORE_ADDR pc)
 
static void arm_update_current_architecture (void)
 
static void set_fp_model_sfunc (const char *args, int from_tty, struct cmd_list_element *c)
 
static void show_fp_model (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static void arm_set_abi (const char *args, int from_tty, struct cmd_list_element *c)
 
static void arm_show_abi (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static void arm_show_fallback_mode (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static void arm_show_force_mode (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static void arm_show_unwind_secure_frames (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static const char * arm_register_name (struct gdbarch *gdbarch, int i)
 
static int coff_sym_is_thumb (int val)
 
static void arm_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
 
static void arm_coff_make_msymbol_special (int val, struct minimal_symbol *msym)
 
static void arm_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile, asymbol *sym)
 
static void arm_write_pc (struct regcache *regcache, CORE_ADDR pc)
 
static enum register_status arm_mve_pseudo_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buf)
 
static enum register_status arm_pseudo_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buf)
 
static void arm_mve_pseudo_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf)
 
static void arm_pseudo_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf)
 
static struct valuevalue_of_arm_user_reg (frame_info_ptr frame, const void *baton)
 
static enum gdb_osabi arm_elf_osabi_sniffer (bfd *abfd)
 
static int arm_register_reggroup_p (struct gdbarch *gdbarch, int regnum, const struct reggroup *group)
 
static void arm_register_g_packet_guesses (struct gdbarch *gdbarch)
 
static int arm_code_of_frame_writable (struct gdbarch *gdbarch, frame_info_ptr frame)
 
static const char * arm_gnu_triplet_regexp (struct gdbarch *gdbarch)
 
static std::string arm_get_pc_address_flags (frame_info_ptr frame, CORE_ADDR pc)
 
static struct gdbarcharm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
static void arm_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file)
 
void _initialize_arm_tdep ()
 
static int sbo_sbz (uint32_t insn, uint32_t bit_num, uint32_t len, uint32_t sbo)
 
static int arm_record_strx (arm_insn_decode_record *arm_insn_r, uint32_t *record_buf, uint32_t *record_buf_mem, arm_record_strx_t str_type)
 
static int arm_record_extension_space (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_data_proc_misc_ld_str (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_data_proc_imm (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_media (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_ld_st_imm_offset (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_ld_st_reg_offset (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_ld_st_multiple (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_b_bl (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_unsupported_insn (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_vdata_transfer_insn (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_exreg_ld_st_insn (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_vfp_data_proc_insn (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_asimd_vfp_coproc (arm_insn_decode_record *arm_insn_r)
 
static int arm_record_coproc_data_proc (arm_insn_decode_record *arm_insn_r)
 
static int thumb_record_shift_add_sub (arm_insn_decode_record *thumb_insn_r)
 
static int thumb_record_add_sub_cmp_mov (arm_insn_decode_record *thumb_insn_r)
 
static int thumb_record_ld_st_reg_offset (arm_insn_decode_record *thumb_insn_r)
 
static int thumb_record_ld_st_imm_offset (arm_insn_decode_record *thumb_insn_r)
 
static int thumb_record_ld_st_stack (arm_insn_decode_record *thumb_insn_r)
 
static int thumb_record_misc (arm_insn_decode_record *thumb_insn_r)
 
static int thumb_record_ldm_stm_swi (arm_insn_decode_record *thumb_insn_r)
 
static int thumb_record_branch (arm_insn_decode_record *thumb_insn_r)
 
static int thumb2_record_ld_st_multiple (arm_insn_decode_record *thumb2_insn_r)
 
static int thumb2_record_ld_st_dual_ex_tbb (arm_insn_decode_record *thumb2_insn_r)
 
static int thumb2_record_data_proc_sreg_mimm (arm_insn_decode_record *thumb2_insn_r)
 
static int thumb2_record_ps_dest_generic (arm_insn_decode_record *thumb2_insn_r)
 
static int thumb2_record_branch_misc_cntrl (arm_insn_decode_record *thumb2_insn_r)
 
static int thumb2_record_str_single_data (arm_insn_decode_record *thumb2_insn_r)
 
static int thumb2_record_ld_mem_hints (arm_insn_decode_record *thumb2_insn_r)
 
static int thumb2_record_ld_word (arm_insn_decode_record *thumb2_insn_r)
 
static int thumb2_record_lmul_lmla_div (arm_insn_decode_record *thumb2_insn_r)
 
static int thumb2_record_coproc_insn (arm_insn_decode_record *thumb2_insn_r)
 
static int thumb2_record_asimd_struct_ld_st (arm_insn_decode_record *thumb2_insn_r)
 
static unsigned int thumb2_record_decode_insn_handler (arm_insn_decode_record *thumb2_insn_r)
 
static int decode_insn (abstract_instruction_reader &reader, arm_insn_decode_record *arm_record, record_type_t record_type, uint32_t insn_size)
 
static void deallocate_reg_mem (arm_insn_decode_record *record)
 
int arm_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR insn_addr)
 
const target_descarm_read_description (arm_fp_type fp_type, bool tls)
 
const target_descarm_read_mprofile_description (arm_m_profile_type m_type)
 

Variables

static bool arm_debug
 
static const registry< bfd >::key< arm_per_bfdarm_bfd_data_key
 
static struct cmd_list_elementsetarmcmdlist = NULL
 
static struct cmd_list_elementshowarmcmdlist = NULL
 
static const char *const fp_model_strings []
 
static enum arm_float_model arm_fp_model = ARM_FLOAT_AUTO
 
static const char * current_fp_model = "auto"
 
static const char *const arm_abi_strings []
 
static enum arm_abi_kind arm_abi_global = ARM_ABI_AUTO
 
static const char * arm_abi_string = "auto"
 
static const char *const arm_mode_strings []
 
static const char * arm_fallback_mode_string = "auto"
 
static const char * arm_force_mode_string = "auto"
 
struct { 
 
   const char *   name 
 
   int   regnum 
 
arm_register_aliases [] 
 
static const char *const arm_register_names []
 
static char * arm_disassembler_options
 
static const char ** valid_disassembly_styles
 
static const char * disassembly_style
 
static struct target_desctdesc_arm_list [ARM_FP_TYPE_INVALID][2]
 
static struct target_desctdesc_arm_mprofile_list [ARM_M_TYPE_INVALID]
 
static struct arm_get_next_pcs_ops arm_get_next_pcs_ops
 
bool arm_apcs_32 = true
 
bool arm_unwind_secure_frames = true
 
static frame_unwind arm_prologue_unwind
 
static const registry< bfd >::key< arm_exidx_dataarm_exidx_data_key
 
struct frame_unwind arm_exidx_unwind
 
static const struct frame_unwind arm_epilogue_frame_unwind
 
struct frame_unwind arm_stub_unwind
 
struct frame_unwind arm_m_exception_unwind
 
struct frame_base arm_normal_base
 
static const unsigned char op_lit0 = DW_OP_lit0
 
static const gdb_byte arm_default_arm_le_breakpoint [] = ARM_LE_BREAKPOINT
 
static const gdb_byte arm_default_arm_be_breakpoint [] = ARM_BE_BREAKPOINT
 
static const gdb_byte arm_default_thumb_le_breakpoint [] = THUMB_LE_BREAKPOINT
 
static const gdb_byte arm_default_thumb_be_breakpoint [] = THUMB_BE_BREAKPOINT
 

Macro Definition Documentation

◆ ARM_BE_BREAKPOINT

#define ARM_BE_BREAKPOINT   {0xE7,0xFF,0xDE,0xFE}

Definition at line 8798 of file arm-tdep.c.

◆ arm_debug_printf

#define arm_debug_printf ( fmt,
... )    debug_prefixed_printf_cond (arm_debug, "arm", fmt, ##__VA_ARGS__)

Definition at line 75 of file arm-tdep.c.

Referenced by arm_analyze_prologue(), arm_push_dummy_call(), and thumb_analyze_prologue().

◆ ARM_INSN_SIZE_BYTES

#define ARM_INSN_SIZE_BYTES   4

Definition at line 11129 of file arm-tdep.c.

Referenced by arm_process_record().

◆ ARM_LE_BREAKPOINT

#define ARM_LE_BREAKPOINT   {0xFE,0xDE,0xFF,0xE7}

Definition at line 8797 of file arm-tdep.c.

◆ ARM_NOP

#define ARM_NOP   0xe1a00000

Definition at line 5489 of file arm-tdep.c.

Referenced by arm_copy_b_bl_blx(), arm_copy_block_xfer(), and arm_copy_bx_blx_reg().

◆ DISPLACED_STEPPING_ARCH_VERSION

#define DISPLACED_STEPPING_ARCH_VERSION   5

Definition at line 594 of file arm-tdep.c.

Referenced by alu_write_pc(), and load_write_pc().

◆ EXTRACT_MOVW_MOVT_IMM_A

#define EXTRACT_MOVW_MOVT_IMM_A ( insn)
Value:
((bits ((insn), 16, 19) << 12) \
| bits ((insn), 0, 11))
#define bits(obj, st, fn)

Definition at line 973 of file arm-tdep.c.

Referenced by arm_analyze_load_stack_chk_guard().

◆ EXTRACT_MOVW_MOVT_IMM_T

#define EXTRACT_MOVW_MOVT_IMM_T ( insn1,
insn2 )
Value:
((bits ((insn1), 0, 3) << 12) \
| (bits ((insn1), 10, 10) << 11) \
| (bits ((insn2), 12, 14) << 8) \
| bits ((insn2), 0, 7))

Definition at line 965 of file arm-tdep.c.

Referenced by arm_analyze_load_stack_chk_guard(), and thumb_analyze_prologue().

◆ INSN_RECORDED

#define INSN_RECORDED ( ARM_RECORD)     (0 != (ARM_RECORD)->reg_rec_count || 0 != (ARM_RECORD)->mem_rec_count)

Definition at line 11164 of file arm-tdep.c.

Referenced by arm_record_extension_space().

◆ INSN_S_L_BIT_NUM

#define INSN_S_L_BIT_NUM   20

◆ IT_SCAN_THRESHOLD

#define IT_SCAN_THRESHOLD   32

Definition at line 5308 of file arm-tdep.c.

Referenced by arm_adjust_breakpoint_address().

◆ MAX_IT_BLOCK_PREFIX

#define MAX_IT_BLOCK_PREFIX   14

Definition at line 5304 of file arm-tdep.c.

Referenced by arm_adjust_breakpoint_address().

◆ MEM_ALLOC

#define MEM_ALLOC ( MEMS,
LENGTH,
RECORD_BUF )

◆ MSYMBOL_IS_SPECIAL

#define MSYMBOL_IS_SPECIAL ( msym)     (msym)->target_flag_1 ()

Definition at line 88 of file arm-tdep.c.

Referenced by arm_pc_is_thumb().

◆ MSYMBOL_SET_SPECIAL

#define MSYMBOL_SET_SPECIAL ( msym)     (msym)->set_target_flag_1 (true)

Definition at line 85 of file arm-tdep.c.

Referenced by arm_coff_make_msymbol_special(), and arm_elf_make_msymbol_special().

◆ REG_ALLOC

#define REG_ALLOC ( REGS,
LENGTH,
RECORD_BUF )

◆ THUMB2_INSN_SIZE_BYTES

#define THUMB2_INSN_SIZE_BYTES   4

Definition at line 11131 of file arm-tdep.c.

Referenced by arm_process_record().

◆ THUMB_BE_BREAKPOINT

#define THUMB_BE_BREAKPOINT   {0xbe,0xbe}

Definition at line 8800 of file arm-tdep.c.

◆ THUMB_INSN_SIZE_BYTES

#define THUMB_INSN_SIZE_BYTES   2

Definition at line 11130 of file arm-tdep.c.

Referenced by arm_process_record().

◆ THUMB_LE_BREAKPOINT

#define THUMB_LE_BREAKPOINT   {0xbe,0xbe}

Definition at line 8799 of file arm-tdep.c.

◆ THUMB_NOP

#define THUMB_NOP   0x4600

Typedef Documentation

◆ arm_mapping_symbol_vec

Definition at line 100 of file arm-tdep.c.

◆ sti_arm_hdl_fp_t

typedef int(* sti_arm_hdl_fp_t) (arm_insn_decode_record *)

Definition at line 14531 of file arm-tdep.c.

Enumeration Type Documentation

◆ arm_record_result

Enumerator
ARM_RECORD_SUCCESS 
ARM_RECORD_FAILURE 

Definition at line 11219 of file arm-tdep.c.

◆ arm_record_strx_t

Enumerator
ARM_RECORD_STRH 
ARM_RECORD_STRD 

Definition at line 11225 of file arm-tdep.c.

◆ arm_vfp_cprc_base_type

Enumerator
VFP_CPRC_UNKNOWN 
VFP_CPRC_SINGLE 
VFP_CPRC_DOUBLE 
VFP_CPRC_VEC64 
VFP_CPRC_VEC128 

Definition at line 4362 of file arm-tdep.c.

◆ record_type_t

Enumerator
ARM_RECORD 
THUMB_RECORD 
THUMB2_RECORD 

Definition at line 11231 of file arm-tdep.c.

Function Documentation

◆ _initialize_arm_tdep()

void _initialize_arm_tdep ( )

◆ alu_write_pc()

static void alu_write_pc ( regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
ULONGEST val )
static

◆ arm_addr_bits_remove()

static CORE_ADDR arm_addr_bits_remove ( struct gdbarch * gdbarch,
CORE_ADDR val )
static

◆ arm_adjust_breakpoint_address()

static CORE_ADDR arm_adjust_breakpoint_address ( struct gdbarch * gdbarch,
CORE_ADDR bpaddr )
static

◆ arm_analyze_load_stack_chk_guard()

static CORE_ADDR arm_analyze_load_stack_chk_guard ( CORE_ADDR pc,
struct gdbarch * gdbarch,
unsigned int * destreg,
int * offset )
static

◆ arm_analyze_prologue()

static CORE_ADDR arm_analyze_prologue ( struct gdbarch * gdbarch,
CORE_ADDR prologue_start,
CORE_ADDR prologue_end,
struct arm_prologue_cache * cache,
const arm_instruction_reader & insn_reader )
static

◆ arm_breakpoint_kind_from_current_state()

static int arm_breakpoint_kind_from_current_state ( struct gdbarch * gdbarch,
struct regcache * regcache,
CORE_ADDR * pcptr )
static

◆ arm_breakpoint_kind_from_pc()

static int arm_breakpoint_kind_from_pc ( struct gdbarch * gdbarch,
CORE_ADDR * pcptr )
static

◆ arm_cache_get_prev_sp_value()

static CORE_ADDR arm_cache_get_prev_sp_value ( struct arm_prologue_cache * cache,
arm_gdbarch_tdep * tdep )
static

◆ arm_cache_get_sp_register()

static CORE_ADDR arm_cache_get_sp_register ( struct arm_prologue_cache * cache,
arm_gdbarch_tdep * tdep,
int regnum )
static

◆ arm_cache_init() [1/2]

static void arm_cache_init ( struct arm_prologue_cache * cache,
frame_info_ptr frame )
static

◆ arm_cache_init() [2/2]

static void arm_cache_init ( struct arm_prologue_cache * cache,
struct gdbarch * gdbarch )
static

◆ arm_cache_set_active_sp_value()

static void arm_cache_set_active_sp_value ( struct arm_prologue_cache * cache,
arm_gdbarch_tdep * tdep,
CORE_ADDR val )
static

◆ arm_cache_switch_prev_sp()

static void arm_cache_switch_prev_sp ( struct arm_prologue_cache * cache,
arm_gdbarch_tdep * tdep,
int sp_regnum )
static

◆ arm_code_of_frame_writable()

static int arm_code_of_frame_writable ( struct gdbarch * gdbarch,
frame_info_ptr frame )
static

Definition at line 10042 of file arm-tdep.c.

References get_frame_type(), arm_gdbarch_tdep::is_m, and SIGTRAMP_FRAME.

Referenced by arm_gdbarch_init().

◆ arm_coff_make_msymbol_special()

static void arm_coff_make_msymbol_special ( int val,
struct minimal_symbol * msym )
static

Definition at line 9713 of file arm-tdep.c.

References coff_sym_is_thumb(), and MSYMBOL_SET_SPECIAL.

Referenced by arm_gdbarch_init().

◆ arm_copy_alu_imm()

static int arm_copy_alu_imm ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_alu_reg()

static int arm_copy_alu_reg ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_alu_shifted_reg()

static int arm_copy_alu_shifted_reg ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_b_bl_blx()

static int arm_copy_b_bl_blx ( struct gdbarch * gdbarch,
uint32_t insn,
regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_block_xfer()

static int arm_copy_block_xfer ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_bx_blx_reg()

static int arm_copy_bx_blx_reg ( struct gdbarch * gdbarch,
uint32_t insn,
regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_copro_load_store()

static int arm_copy_copro_load_store ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_extra_ld_st()

static int arm_copy_extra_ld_st ( struct gdbarch * gdbarch,
uint32_t insn,
int unprivileged,
regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_ldr_str_ldrb_strb()

static int arm_copy_ldr_str_ldrb_strb ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
int load,
int size,
int usermode )
static

◆ arm_copy_preload()

static int arm_copy_preload ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_preload_reg()

static int arm_copy_preload_reg ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_svc()

static int arm_copy_svc ( struct gdbarch * gdbarch,
uint32_t insn,
regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_undef()

static int arm_copy_undef ( struct gdbarch * gdbarch,
uint32_t insn,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_unmodified()

static int arm_copy_unmodified ( struct gdbarch * gdbarch,
uint32_t insn,
const char * iname,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_copy_unpred()

static int arm_copy_unpred ( struct gdbarch * gdbarch,
uint32_t insn,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_decode_b_bl_ldmstm()

static int arm_decode_b_bl_ldmstm ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

Definition at line 7750 of file arm-tdep.c.

References arm_copy_b_bl_blx(), arm_copy_block_xfer(), and bit.

Referenced by arm_process_displaced_insn().

◆ arm_decode_dp_misc()

static int arm_decode_dp_misc ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_decode_ext_reg_ld_st()

static int arm_decode_ext_reg_ld_st ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

Definition at line 7761 of file arm-tdep.c.

References arm_copy_copro_load_store(), arm_copy_unmodified(), and bits.

Referenced by arm_decode_svc_copro().

◆ arm_decode_ld_st_word_ubyte()

static int arm_decode_ld_st_word_ubyte ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

Definition at line 7657 of file arm-tdep.c.

References arm_copy_ldr_str_ldrb_strb(), bit, and bits.

Referenced by arm_process_displaced_insn().

◆ arm_decode_media()

static int arm_decode_media ( struct gdbarch * gdbarch,
uint32_t insn,
arm_displaced_step_copy_insn_closure * dsc )
static

Definition at line 7694 of file arm-tdep.c.

References arm_copy_undef(), arm_copy_unmodified(), and bits.

Referenced by arm_process_displaced_insn().

◆ arm_decode_misc_memhint_neon()

static int arm_decode_misc_memhint_neon ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_decode_miscellaneous()

static int arm_decode_miscellaneous ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

Definition at line 7560 of file arm-tdep.c.

References arm_copy_bx_blx_reg(), arm_copy_undef(), arm_copy_unmodified(), and bits.

Referenced by arm_decode_dp_misc().

◆ arm_decode_svc_copro()

static int arm_decode_svc_copro ( struct gdbarch * gdbarch,
uint32_t insn,
regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_decode_unconditional()

static int arm_decode_unconditional ( struct gdbarch * gdbarch,
uint32_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ arm_displaced_init_closure()

void arm_displaced_init_closure ( struct gdbarch * gdbarch,
CORE_ADDR from,
CORE_ADDR to,
arm_displaced_step_copy_insn_closure * dsc )

◆ arm_displaced_step_fixup()

void arm_displaced_step_fixup ( struct gdbarch * gdbarch,
struct displaced_step_copy_insn_closure * dsc_,
CORE_ADDR from,
CORE_ADDR to,
struct regcache * regs,
bool completed_p )

◆ arm_dump_tdep()

static void arm_dump_tdep ( struct gdbarch * gdbarch,
struct ui_file * file )
static

◆ arm_dwarf2_frame_init_reg()

static void arm_dwarf2_frame_init_reg ( struct gdbarch * gdbarch,
int regnum,
struct dwarf2_frame_state_reg * reg,
frame_info_ptr this_frame )
static

◆ arm_dwarf2_prev_register()

static struct value * arm_dwarf2_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

◆ arm_dwarf_reg_to_regnum()

static int arm_dwarf_reg_to_regnum ( struct gdbarch * gdbarch,
int reg )
static

◆ arm_elf_make_msymbol_special()

static void arm_elf_make_msymbol_special ( asymbol * sym,
struct minimal_symbol * msym )
static

Definition at line 9703 of file arm-tdep.c.

References MSYMBOL_SET_SPECIAL.

Referenced by arm_gdbarch_init().

◆ arm_elf_osabi_sniffer()

static enum gdb_osabi arm_elf_osabi_sniffer ( bfd * abfd)
static

◆ arm_epilogue_frame_prev_register()

static struct value * arm_epilogue_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

◆ arm_epilogue_frame_sniffer()

static int arm_epilogue_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_prologue_cache )
static

◆ arm_epilogue_frame_this_id()

static void arm_epilogue_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ arm_exidx_fill_cache()

static struct arm_prologue_cache * arm_exidx_fill_cache ( frame_info_ptr this_frame,
gdb_byte * entry )
static

◆ arm_exidx_new_objfile()

static void arm_exidx_new_objfile ( struct objfile * objfile)
static

◆ arm_exidx_unwind_sniffer()

static int arm_exidx_unwind_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_prologue_cache )
static

◆ arm_expand_immediate()

static uint32_t arm_expand_immediate ( uint32_t imm)
static

Definition at line 1940 of file arm-tdep.c.

Referenced by arm_analyze_prologue().

◆ arm_ext_type()

static struct type * arm_ext_type ( struct gdbarch * gdbarch)
static

◆ arm_extract_return_value()

static void arm_extract_return_value ( struct type * type,
struct regcache * regs,
gdb_byte * valbuf )
static

◆ arm_find_exidx_entry()

static gdb_byte * arm_find_exidx_entry ( CORE_ADDR memaddr,
CORE_ADDR * start )
static

◆ arm_find_mapping_symbol()

static char arm_find_mapping_symbol ( CORE_ADDR memaddr,
CORE_ADDR * start )
static

◆ arm_frame_align()

static CORE_ADDR arm_frame_align ( struct gdbarch * gdbarch,
CORE_ADDR sp )
static

Definition at line 4877 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_frame_is_thumb()

int arm_frame_is_thumb ( frame_info_ptr frame)

◆ arm_gdbarch_init()

static struct gdbarch * arm_gdbarch_init ( struct gdbarch_info info,
struct gdbarch_list * arches )
static

Definition at line 10086 of file arm-tdep.c.

References arches, ARM_ABI_AAPCS, ARM_ABI_APCS, ARM_ABI_AUTO, arm_abi_global, arm_addr_bits_remove(), arm_adjust_breakpoint_address(), arm_gdbarch_tdep::arm_breakpoint, arm_breakpoint_kind_from_current_state(), arm_breakpoint_kind_from_pc(), arm_gdbarch_tdep::arm_breakpoint_size, arm_code_of_frame_writable(), arm_coff_make_msymbol_special(), ARM_D0_REGNUM, arm_default_arm_be_breakpoint, arm_default_arm_le_breakpoint, arm_default_thumb_be_breakpoint, arm_default_thumb_le_breakpoint, arm_disassembler_options, ARM_DISPLACED_MODIFIED_INSNS, arm_dwarf2_frame_init_reg(), arm_dwarf_reg_to_regnum(), arm_elf_make_msymbol_special(), arm_epilogue_frame_unwind, arm_exidx_unwind, ARM_F0_REGNUM, ARM_FLOAT_AUTO, ARM_FLOAT_FPA, ARM_FLOAT_SOFT_FPA, ARM_FLOAT_SOFT_VFP, ARM_FLOAT_VFP, arm_fp_model, ARM_FPS_REGNUM, ARM_FPSCR_REGNUM, arm_frame_align(), arm_get_longjmp_target(), arm_get_pc_address_flags(), arm_gnu_triplet_regexp(), ARM_LR_REGNUM, arm_m_exception_unwind, ARM_MVE_NUM_Q_REGS, arm_normal_base, ARM_NUM_REGS, ARM_PC_REGNUM, arm_print_float_info(), arm_prologue_unwind, ARM_PS_REGNUM, arm_pseudo_read(), arm_pseudo_write(), arm_push_dummy_call(), arm_record_special_symbol(), arm_register_aliases, arm_register_g_packet_guesses(), arm_register_name(), arm_register_names, arm_register_reggroup_p(), arm_register_sim_regno(), arm_register_type(), arm_return_value(), arm_skip_prologue(), arm_skip_stub(), ARM_SP_REGNUM, arm_stack_frame_destroyed_p(), arm_stub_unwind, arm_sw_breakpoint_from_kind(), arm_type_align(), ARM_WC0_REGNUM, ARM_WCASF_REGNUM, ARM_WCGR0_REGNUM, ARM_WCGR3_REGNUM, ARM_WR0_REGNUM, ARM_WR15_REGNUM, arm_write_pc(), core_addr_lessthan(), dwarf2_append_unwinders(), dwarf2_frame_set_init_reg(), floatformats_ieee_double, floatformats_ieee_double_littlebyte_bigword, floatformats_ieee_single, frame_base_set_default(), frame_unwind_append_unwinder(), gdb_print_insn_arm(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_num_regs(), registry< T >::get(), arm_gdbarch_tdep::have_fpa_registers, arm_gdbarch_tdep::have_mve, arm_gdbarch_tdep::have_neon, arm_gdbarch_tdep::have_pacbti, arm_gdbarch_tdep::have_q_pseudos, arm_gdbarch_tdep::have_s_pseudos, arm_gdbarch_tdep::have_sec_ext, arm_gdbarch_tdep::have_wmmx_registers, arm_gdbarch_tdep::is_m, arm_gdbarch_tdep::jb_pc, arm_gdbarch_tdep::lowest_pc, arm_gdbarch_tdep::m_profile_msp_ns_regnum, arm_gdbarch_tdep::m_profile_msp_regnum, arm_gdbarch_tdep::m_profile_msp_s_regnum, arm_gdbarch_tdep::m_profile_psp_ns_regnum, arm_gdbarch_tdep::m_profile_psp_regnum, arm_gdbarch_tdep::m_profile_psp_s_regnum, arm_gdbarch_tdep::mve_pseudo_base, arm_gdbarch_tdep::mve_pseudo_count, arm_gdbarch_tdep::mve_vpr_regnum, name, gdbarch_list::next, arm_gdbarch_tdep::pacbti_pseudo_base, arm_gdbarch_tdep::pacbti_pseudo_count, arm_gdbarch_tdep::q_pseudo_base, arm_gdbarch_tdep::q_pseudo_count, reg_struct_return, regnum, arm_gdbarch_tdep::s_pseudo_base, arm_gdbarch_tdep::s_pseudo_count, set_gdbarch_addr_bits_remove(), set_gdbarch_adjust_breakpoint_address(), set_gdbarch_breakpoint_kind_from_current_state(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_char_signed(), set_gdbarch_code_of_frame_writable(), set_gdbarch_coff_make_msymbol_special(), set_gdbarch_disassembler_options(), set_gdbarch_displaced_step_buffer_length(), set_gdbarch_double_format(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_elf_make_msymbol_special(), set_gdbarch_float_format(), set_gdbarch_frame_align(), set_gdbarch_get_longjmp_target(), set_gdbarch_get_pc_address_flags(), set_gdbarch_gnu_triplet_regexp(), set_gdbarch_have_nonsteppable_watchpoint(), set_gdbarch_inner_than(), set_gdbarch_long_double_format(), set_gdbarch_max_insn_length(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_float_info(), set_gdbarch_print_insn(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_push_dummy_call(), set_gdbarch_record_special_symbol(), set_gdbarch_register_name(), set_gdbarch_register_reggroup_p(), set_gdbarch_register_sim_regno(), set_gdbarch_register_type(), set_gdbarch_return_value_as_value(), set_gdbarch_skip_prologue(), set_gdbarch_skip_trampoline_code(), set_gdbarch_sp_regnum(), set_gdbarch_stack_frame_destroyed_p(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_type_align(), set_gdbarch_valid_disassembler_options(), set_gdbarch_vbit_in_delta(), set_gdbarch_wchar_signed(), set_gdbarch_write_pc(), set_tdesc_pseudo_register_name(), tdesc_data, tdesc_data_alloc(), tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), tdesc_numbered_register_choices(), tdesc_unnumbered_register(), tdesc_use_registers(), arm_gdbarch_tdep::thumb_breakpoint, arm_gdbarch_tdep::thumb_breakpoint_size, arm_gdbarch_tdep::tls_regnum, user_reg_add(), value_of_arm_user_reg(), and arm_gdbarch_tdep::vfp_register_count.

Referenced by _initialize_arm_tdep().

◆ arm_get_longjmp_target()

static int arm_get_longjmp_target ( frame_info_ptr frame,
CORE_ADDR * pc )
static

◆ arm_get_next_pcs_addr_bits_remove()

CORE_ADDR arm_get_next_pcs_addr_bits_remove ( struct arm_get_next_pcs * self,
CORE_ADDR val )

◆ arm_get_next_pcs_is_thumb()

int arm_get_next_pcs_is_thumb ( struct arm_get_next_pcs * self)

Definition at line 7272 of file arm-tdep.c.

References arm_is_thumb(), and arm_get_next_pcs::regcache.

◆ arm_get_next_pcs_read_memory_unsigned_integer()

ULONGEST arm_get_next_pcs_read_memory_unsigned_integer ( CORE_ADDR memaddr,
int len,
int byte_order )

Definition at line 7245 of file arm-tdep.c.

References read_memory_unsigned_integer().

◆ arm_get_next_pcs_syscall_next_pc()

static CORE_ADDR arm_get_next_pcs_syscall_next_pc ( struct arm_get_next_pcs * self)
static

Definition at line 7264 of file arm-tdep.c.

◆ arm_get_pc_address_flags()

static std::string arm_get_pc_address_flags ( frame_info_ptr frame,
CORE_ADDR pc )
static

Definition at line 10070 of file arm-tdep.c.

References get_frame_pc_masked().

Referenced by arm_gdbarch_init().

◆ arm_gnu_triplet_regexp()

static const char * arm_gnu_triplet_regexp ( struct gdbarch * gdbarch)
static

Definition at line 10060 of file arm-tdep.c.

References gdbarch_bfd_arch_info().

Referenced by arm_gdbarch_init().

◆ arm_instruction_restores_sp()

static int arm_instruction_restores_sp ( unsigned int insn)
static

Definition at line 1915 of file arm-tdep.c.

References bits, and INST_NV.

Referenced by arm_analyze_prologue(), and arm_stack_frame_destroyed_p_1().

◆ arm_is_alternative_sp_register()

static bool arm_is_alternative_sp_register ( arm_gdbarch_tdep * tdep,
int regnum )
static

◆ arm_is_sgstubs_section()

static bool arm_is_sgstubs_section ( struct obj_section * sec)
static

Definition at line 9387 of file arm-tdep.c.

References obj_section::the_bfd_section.

Referenced by arm_skip_stub().

◆ arm_is_thumb()

int arm_is_thumb ( struct regcache * regcache)

◆ arm_m_addr_is_lockup()

static bool arm_m_addr_is_lockup ( CORE_ADDR addr)
inlinestatic

Definition at line 778 of file arm-tdep.c.

Referenced by arm_m_addr_is_magic(), and arm_m_exception_cache().

◆ arm_m_addr_is_magic()

static int arm_m_addr_is_magic ( struct gdbarch * gdbarch,
CORE_ADDR addr )
static

◆ arm_m_exception_cache()

static struct arm_prologue_cache * arm_m_exception_cache ( frame_info_ptr this_frame)
static

◆ arm_m_exception_frame_unwind_stop_reason()

static enum unwind_stop_reason arm_m_exception_frame_unwind_stop_reason ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ arm_m_exception_prev_register()

static struct value * arm_m_exception_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int prev_regnum )
static

◆ arm_m_exception_this_id()

static void arm_m_exception_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ arm_m_exception_unwind_sniffer()

static int arm_m_exception_unwind_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_prologue_cache )
static

Definition at line 3938 of file arm-tdep.c.

References arm_m_addr_is_magic(), get_frame_arch(), and get_frame_pc().

◆ arm_make_epilogue_frame_cache()

static struct arm_prologue_cache * arm_make_epilogue_frame_cache ( frame_info_ptr this_frame)
static

◆ arm_make_prologue_cache()

static struct arm_prologue_cache * arm_make_prologue_cache ( frame_info_ptr this_frame)
static

◆ arm_make_stub_cache()

static struct arm_prologue_cache * arm_make_stub_cache ( frame_info_ptr this_frame)
static

◆ arm_mve_pseudo_read()

static enum register_status arm_mve_pseudo_read ( struct gdbarch * gdbarch,
readable_regcache * regcache,
int regnum,
gdb_byte * buf )
static

Definition at line 9810 of file arm-tdep.c.

References arm_gdbarch_tdep::mve_vpr_regnum, and readable_regcache::raw_read_part().

Referenced by arm_pseudo_read().

◆ arm_mve_pseudo_write()

static void arm_mve_pseudo_write ( struct gdbarch * gdbarch,
struct regcache * regcache,
int regnum,
const gdb_byte * buf )
static

Definition at line 9896 of file arm-tdep.c.

References arm_gdbarch_tdep::mve_vpr_regnum, and regcache::raw_write_part().

Referenced by arm_pseudo_write().

◆ arm_neon_double_type()

static struct type * arm_neon_double_type ( struct gdbarch * gdbarch)
static

◆ arm_neon_quad_read()

static enum register_status arm_neon_quad_read ( struct gdbarch * gdbarch,
readable_regcache * regcache,
int regnum,
gdb_byte * buf )
static

◆ arm_neon_quad_type()

static struct type * arm_neon_quad_type ( struct gdbarch * gdbarch)
static

◆ arm_neon_quad_write()

static void arm_neon_quad_write ( struct gdbarch * gdbarch,
struct regcache * regcache,
int regnum,
const gdb_byte * buf )
static

◆ arm_normal_frame_base()

static CORE_ADDR arm_normal_frame_base ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ arm_obj_section_from_vma()

static struct obj_section * arm_obj_section_from_vma ( struct objfile * objfile,
bfd_vma vma )
static

Definition at line 2507 of file arm-tdep.c.

References objfile::sections(), and size.

Referenced by arm_exidx_new_objfile().

◆ arm_pc_is_thumb()

int arm_pc_is_thumb ( struct gdbarch * gdbarch,
CORE_ADDR memaddr )

◆ arm_print_float_info()

static void arm_print_float_info ( struct gdbarch * gdbarch,
struct ui_file * file,
frame_info_ptr frame,
const char * args )
static

◆ arm_process_displaced_insn()

void arm_process_displaced_insn ( struct gdbarch * gdbarch,
CORE_ADDR from,
CORE_ADDR to,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )

◆ arm_process_record()

int arm_process_record ( struct gdbarch * gdbarch,
struct regcache * regcache,
CORE_ADDR insn_addr )

◆ arm_prologue_prev_register()

static struct value * arm_prologue_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int prev_regnum )
static

◆ arm_prologue_this_id()

static void arm_prologue_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ arm_prologue_unwind_stop_reason()

static enum unwind_stop_reason arm_prologue_unwind_stop_reason ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ arm_pseudo_read()

static enum register_status arm_pseudo_read ( struct gdbarch * gdbarch,
readable_regcache * regcache,
int regnum,
gdb_byte * buf )
static

◆ arm_pseudo_write()

static void arm_pseudo_write ( struct gdbarch * gdbarch,
struct regcache * regcache,
int regnum,
const gdb_byte * buf )
static

◆ arm_psr_thumb_bit()

int arm_psr_thumb_bit ( struct gdbarch * gdbarch)

◆ arm_push_dummy_call()

static CORE_ADDR arm_push_dummy_call ( struct gdbarch * gdbarch,
struct value * function,
struct regcache * regcache,
CORE_ADDR bp_addr,
int nargs,
struct value ** args,
CORE_ADDR sp,
function_call_return_method return_method,
CORE_ADDR struct_addr )
static

◆ arm_read_description()

const target_desc * arm_read_description ( arm_fp_type fp_type,
bool tls )

◆ arm_read_mprofile_description()

const target_desc * arm_read_mprofile_description ( arm_m_profile_type m_type)

◆ arm_record_asimd_vfp_coproc()

static int arm_record_asimd_vfp_coproc ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_b_bl()

static int arm_record_b_bl ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_coproc_data_proc()

static int arm_record_coproc_data_proc ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_data_proc_imm()

static int arm_record_data_proc_imm ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_data_proc_misc_ld_str()

static int arm_record_data_proc_misc_ld_str ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_exreg_ld_st_insn()

static int arm_record_exreg_ld_st_insn ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_extension_space()

static int arm_record_extension_space ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_ld_st_imm_offset()

static int arm_record_ld_st_imm_offset ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_ld_st_multiple()

static int arm_record_ld_st_multiple ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_ld_st_reg_offset()

static int arm_record_ld_st_reg_offset ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_media()

static int arm_record_media ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_special_symbol()

static void arm_record_special_symbol ( struct gdbarch * gdbarch,
struct objfile * objfile,
asymbol * sym )
static

◆ arm_record_strx()

static int arm_record_strx ( arm_insn_decode_record * arm_insn_r,
uint32_t * record_buf,
uint32_t * record_buf_mem,
arm_record_strx_t str_type )
static

◆ arm_record_unsupported_insn()

static int arm_record_unsupported_insn ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_vdata_transfer_insn()

static int arm_record_vdata_transfer_insn ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_record_vfp_data_proc_insn()

static int arm_record_vfp_data_proc_insn ( arm_insn_decode_record * arm_insn_r)
static

◆ arm_register_g_packet_guesses()

static void arm_register_g_packet_guesses ( struct gdbarch * gdbarch)
static

◆ arm_register_name()

static const char * arm_register_name ( struct gdbarch * gdbarch,
int i )
static

◆ arm_register_reggroup_p()

static int arm_register_reggroup_p ( struct gdbarch * gdbarch,
int regnum,
const struct reggroup * group )
static

◆ arm_register_sim_regno()

static int arm_register_sim_regno ( struct gdbarch * gdbarch,
int regnum )
static

◆ arm_register_type()

static struct type * arm_register_type ( struct gdbarch * gdbarch,
int regnum )
static

◆ arm_return_in_memory()

static int arm_return_in_memory ( struct gdbarch * gdbarch,
struct type * type )
static

◆ arm_return_value()

static enum return_value_convention arm_return_value ( struct gdbarch * gdbarch,
struct value * function,
struct type * valtype,
struct regcache * regcache,
struct value ** read_value,
const gdb_byte * writebuf )
static

◆ arm_scan_prologue()

static void arm_scan_prologue ( frame_info_ptr this_frame,
struct arm_prologue_cache * cache )
static

◆ arm_set_abi()

static void arm_set_abi ( const char * args,
int from_tty,
struct cmd_list_element * c )
static

◆ arm_show_abi()

static void arm_show_abi ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

◆ arm_show_fallback_mode()

static void arm_show_fallback_mode ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 9575 of file arm-tdep.c.

References arm_fallback_mode_string, and gdb_printf().

Referenced by _initialize_arm_tdep().

◆ arm_show_force_mode()

static void arm_show_force_mode ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 9585 of file arm-tdep.c.

References arm_force_mode_string, and gdb_printf().

Referenced by _initialize_arm_tdep().

◆ arm_show_unwind_secure_frames()

static void arm_show_unwind_secure_frames ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 9595 of file arm-tdep.c.

References arm_unwind_secure_frames, and gdb_printf().

Referenced by _initialize_arm_tdep().

◆ arm_skip_bx_reg()

static CORE_ADDR arm_skip_bx_reg ( frame_info_ptr frame,
CORE_ADDR pc )
static

◆ arm_skip_cmse_entry()

static CORE_ADDR arm_skip_cmse_entry ( CORE_ADDR pc,
const char * name,
struct objfile * objfile )
static

◆ arm_skip_prologue()

static CORE_ADDR arm_skip_prologue ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ arm_skip_stack_protector()

static CORE_ADDR arm_skip_stack_protector ( CORE_ADDR pc,
struct gdbarch * gdbarch )
static

◆ arm_skip_stub()

CORE_ADDR arm_skip_stub ( frame_info_ptr frame,
CORE_ADDR pc )

◆ arm_software_single_step()

std::vector< CORE_ADDR > arm_software_single_step ( struct regcache * regcache)

◆ arm_stack_frame_destroyed_p()

static int arm_stack_frame_destroyed_p ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ arm_stack_frame_destroyed_p_1()

static int arm_stack_frame_destroyed_p_1 ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ arm_store_return_value()

static void arm_store_return_value ( struct type * type,
struct regcache * regs,
const gdb_byte * valbuf )
static

◆ arm_stub_this_id()

static void arm_stub_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ arm_stub_unwind_sniffer()

static int arm_stub_unwind_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_prologue_cache )
static

◆ arm_sw_breakpoint_from_kind()

static const gdb_byte * arm_sw_breakpoint_from_kind ( struct gdbarch * gdbarch,
int kind,
int * size )
static

◆ arm_type_align()

static ULONGEST arm_type_align ( gdbarch * gdbarch,
struct type * t )
static

Definition at line 4342 of file arm-tdep.c.

References check_typedef(), type::code(), type::is_vector(), and type::length().

Referenced by arm_gdbarch_init().

◆ arm_update_current_architecture()

static void arm_update_current_architecture ( void )
static

Definition at line 9483 of file arm-tdep.c.

References gdbarch_bfd_arch_info(), gdbarch_update_p(), and target_gdbarch().

Referenced by arm_set_abi(), and set_fp_model_sfunc().

◆ arm_vfp_abi_for_function()

static int arm_vfp_abi_for_function ( struct gdbarch * gdbarch,
struct type * func_type )
static

Definition at line 4617 of file arm-tdep.c.

References ARM_ABI_AAPCS, ARM_FLOAT_VFP, and check_typedef().

Referenced by arm_push_dummy_call(), and arm_return_value().

◆ arm_vfp_call_candidate()

static int arm_vfp_call_candidate ( struct type * t,
enum arm_vfp_cprc_base_type * base_type,
int * count )
static

Definition at line 4600 of file arm-tdep.c.

References arm_vfp_cprc_sub_candidate(), and VFP_CPRC_UNKNOWN.

Referenced by arm_push_dummy_call(), and arm_return_value().

◆ arm_vfp_cprc_reg_char()

static int arm_vfp_cprc_reg_char ( enum arm_vfp_cprc_base_type b)
static

Definition at line 4396 of file arm-tdep.c.

References VFP_CPRC_DOUBLE, VFP_CPRC_SINGLE, VFP_CPRC_VEC128, and VFP_CPRC_VEC64.

Referenced by arm_push_dummy_call(), and arm_return_value().

◆ arm_vfp_cprc_sub_candidate()

static int arm_vfp_cprc_sub_candidate ( struct type * t,
enum arm_vfp_cprc_base_type * base_type )
static

◆ arm_vfp_cprc_unit_length()

static unsigned arm_vfp_cprc_unit_length ( enum arm_vfp_cprc_base_type b)
static

◆ arm_write_pc()

static void arm_write_pc ( struct regcache * regcache,
CORE_ADDR pc )
static

◆ branch_write_pc()

static void branch_write_pc ( regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
ULONGEST val )
static

◆ bx_write_pc()

static void bx_write_pc ( struct regcache * regs,
ULONGEST val )
static

◆ cleanup_alu_imm()

static void cleanup_alu_imm ( struct gdbarch * gdbarch,
regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_alu_reg()

static void cleanup_alu_reg ( struct gdbarch * gdbarch,
regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_alu_shifted_reg()

static void cleanup_alu_shifted_reg ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_block_load_all()

static void cleanup_block_load_all ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_block_load_pc()

static void cleanup_block_load_pc ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_block_store_pc()

static void cleanup_block_store_pc ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_branch()

static void cleanup_branch ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_copro_load_store()

static void cleanup_copro_load_store ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_load()

static void cleanup_load ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_pop_pc_16bit_all()

static void cleanup_pop_pc_16bit_all ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_preload()

static void cleanup_preload ( struct gdbarch * gdbarch,
regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_store()

static void cleanup_store ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ cleanup_svc()

static void cleanup_svc ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ coff_sym_is_thumb()

static int coff_sym_is_thumb ( int val)
static

Definition at line 9686 of file arm-tdep.c.

Referenced by arm_coff_make_msymbol_special().

◆ deallocate_reg_mem()

static void deallocate_reg_mem ( arm_insn_decode_record * record)
static

Definition at line 14818 of file arm-tdep.c.

References xfree().

Referenced by arm_process_record().

◆ decode_insn()

static int decode_insn ( abstract_instruction_reader & reader,
arm_insn_decode_record * arm_record,
record_type_t record_type,
uint32_t insn_size )
static

◆ decode_thumb_32bit_ld_mem_hints()

static int decode_thumb_32bit_ld_mem_hints ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ displaced_in_arm_mode()

static int displaced_in_arm_mode ( struct regcache * regs)
static

◆ displaced_read_reg()

ULONGEST displaced_read_reg ( regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
int regno )

◆ displaced_write_reg()

void displaced_write_reg ( regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
int regno,
ULONGEST val,
enum pc_write_style write_pc )

◆ extend_buffer_earlier()

static gdb_byte * extend_buffer_earlier ( gdb_byte * buf,
CORE_ADDR endaddr,
int old_len,
int new_len )
static

Definition at line 5283 of file arm-tdep.c.

References target_read_code(), xfree(), and xmalloc().

Referenced by arm_adjust_breakpoint_address().

◆ gdb_print_insn_arm()

static int gdb_print_insn_arm ( bfd_vma memaddr,
disassemble_info * info )
static

◆ insn_references_pc()

static int insn_references_pc ( uint32_t insn,
uint32_t bitmask )
static

◆ install_alu_reg()

static void install_alu_reg ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
unsigned int rd,
unsigned int rn,
unsigned int rm )
static

◆ install_alu_shifted_reg()

static void install_alu_shifted_reg ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
unsigned int rd,
unsigned int rn,
unsigned int rm,
unsigned rs )
static

◆ install_b_bl_blx()

static void install_b_bl_blx ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
unsigned int cond,
int exchange,
int link,
long offset )
static

◆ install_bx_blx_reg()

static void install_bx_blx_reg ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
int link,
unsigned int cond,
unsigned int rm )
static

◆ install_copro_load_store()

static void install_copro_load_store ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
int writeback,
unsigned int rn )
static

◆ install_load_store()

static void install_load_store ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
int load,
int immed,
int writeback,
int size,
int usermode,
int rt,
int rm,
int rn )
static

◆ install_pc_relative()

static void install_pc_relative ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
int rd )
static

◆ install_preload()

static void install_preload ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
unsigned int rn )
static

◆ install_preload_reg()

static void install_preload_reg ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
unsigned int rn,
unsigned int rm )
static

◆ install_svc()

static int install_svc ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ is_mve_pseudo()

static bool is_mve_pseudo ( struct gdbarch * gdbarch,
int regnum )
static

◆ is_pacbti_pseudo()

static bool is_pacbti_pseudo ( struct gdbarch * gdbarch,
int regnum )
static

◆ is_q_pseudo()

static bool is_q_pseudo ( struct gdbarch * gdbarch,
int regnum )
static

◆ is_s_pseudo()

static bool is_s_pseudo ( struct gdbarch * gdbarch,
int regnum )
static

◆ load_write_pc()

static void load_write_pc ( regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
ULONGEST val )
static

Definition at line 5591 of file arm-tdep.c.

References branch_write_pc(), bx_write_pc(), and DISPLACED_STEPPING_ARCH_VERSION.

Referenced by displaced_write_reg().

◆ pop_stack_item()

static struct arm_stack_item * pop_stack_item ( struct arm_stack_item * si)
static

Definition at line 4329 of file arm-tdep.c.

References arm_stack_item::data, arm_stack_item::prev, and xfree().

Referenced by arm_push_dummy_call().

◆ print_fpu_flags()

static void print_fpu_flags ( struct ui_file * file,
int flags )
static

Definition at line 4884 of file arm-tdep.c.

References flags, gdb_putc(), and gdb_puts().

Referenced by arm_print_float_info().

◆ push_stack_item()

static struct arm_stack_item * push_stack_item ( struct arm_stack_item * prev,
const gdb_byte * contents,
int len )
static

Definition at line 4316 of file arm-tdep.c.

References arm_stack_item::data, arm_stack_item::len, arm_stack_item::prev, and xmalloc().

Referenced by arm_push_dummy_call().

◆ reconstruct_t_bit()

static ULONGEST reconstruct_t_bit ( struct gdbarch * gdbarch,
CORE_ADDR lr,
ULONGEST psr )
inlinestatic

◆ sbo_sbz()

static int sbo_sbz ( uint32_t insn,
uint32_t bit_num,
uint32_t len,
uint32_t sbo )
static

Definition at line 11198 of file arm-tdep.c.

References bits, and arm_mem_r::len.

Referenced by arm_record_data_proc_imm(), and arm_record_data_proc_misc_ld_str().

◆ set_disassembly_style_sfunc()

static void set_disassembly_style_sfunc ( const char * args,
int from_tty,
struct cmd_list_element * c )
static

Definition at line 9609 of file arm-tdep.c.

References disassembly_style, and set_disassembler_options().

Referenced by _initialize_arm_tdep().

◆ set_fp_model_sfunc()

static void set_fp_model_sfunc ( const char * args,
int from_tty,
struct cmd_list_element * c )
static

◆ show_disassembly_style_sfunc()

static void show_disassembly_style_sfunc ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 9619 of file arm-tdep.c.

References gdb_printf(), get_current_arch(), and get_disassembler_options().

Referenced by _initialize_arm_tdep().

◆ show_fp_model()

static void show_fp_model ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

◆ skip_prologue_function()

static int skip_prologue_function ( struct gdbarch * gdbarch,
CORE_ADDR pc,
int is_thumb )
static

◆ thumb2_copy_alu_imm()

static int thumb2_copy_alu_imm ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb2_copy_b_bl_blx()

static int thumb2_copy_b_bl_blx ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb2_copy_block_xfer()

static int thumb2_copy_block_xfer ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb2_copy_copro_load_store()

static int thumb2_copy_copro_load_store ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb2_copy_load_literal()

static int thumb2_copy_load_literal ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
int size )
static

◆ thumb2_copy_load_reg_imm()

static int thumb2_copy_load_reg_imm ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
int writeback,
int immed )
static

◆ thumb2_copy_preload()

static int thumb2_copy_preload ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb2_copy_table_branch()

static int thumb2_copy_table_branch ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb2_decode_dp_shift_reg()

static int thumb2_decode_dp_shift_reg ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb2_decode_ext_reg_ld_st()

static int thumb2_decode_ext_reg_ld_st ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

Definition at line 7815 of file arm-tdep.c.

References bits, thumb2_copy_copro_load_store(), and thumb_copy_unmodified_32bit().

Referenced by thumb2_decode_svc_copro().

◆ thumb2_decode_svc_copro()

static int thumb2_decode_svc_copro ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb2_record_asimd_struct_ld_st()

static int thumb2_record_asimd_struct_ld_st ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_branch_misc_cntrl()

static int thumb2_record_branch_misc_cntrl ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_coproc_insn()

static int thumb2_record_coproc_insn ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_data_proc_sreg_mimm()

static int thumb2_record_data_proc_sreg_mimm ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_decode_insn_handler()

static unsigned int thumb2_record_decode_insn_handler ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_ld_mem_hints()

static int thumb2_record_ld_mem_hints ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_ld_st_dual_ex_tbb()

static int thumb2_record_ld_st_dual_ex_tbb ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_ld_st_multiple()

static int thumb2_record_ld_st_multiple ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_ld_word()

static int thumb2_record_ld_word ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_lmul_lmla_div()

static int thumb2_record_lmul_lmla_div ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_ps_dest_generic()

static int thumb2_record_ps_dest_generic ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb2_record_str_single_data()

static int thumb2_record_str_single_data ( arm_insn_decode_record * thumb2_insn_r)
static

◆ thumb_32bit_copy_undef()

static int thumb_32bit_copy_undef ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_analyze_prologue()

static CORE_ADDR thumb_analyze_prologue ( struct gdbarch * gdbarch,
CORE_ADDR start,
CORE_ADDR limit,
struct arm_prologue_cache * cache )
static

◆ thumb_copy_16bit_ldr_literal()

static int thumb_copy_16bit_ldr_literal ( struct gdbarch * gdbarch,
uint16_t insn1,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_copy_alu_reg()

static int thumb_copy_alu_reg ( struct gdbarch * gdbarch,
uint16_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_copy_b()

static int thumb_copy_b ( struct gdbarch * gdbarch,
uint16_t insn,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_copy_bx_blx_reg()

static int thumb_copy_bx_blx_reg ( struct gdbarch * gdbarch,
uint16_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_copy_cbnz_cbz()

static int thumb_copy_cbnz_cbz ( struct gdbarch * gdbarch,
uint16_t insn1,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_copy_pc_relative_16bit()

static int thumb_copy_pc_relative_16bit ( struct gdbarch * gdbarch,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc,
int rd,
unsigned int imm )
static

◆ thumb_copy_pc_relative_32bit()

static int thumb_copy_pc_relative_32bit ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_copy_pop_pc_16bit()

static int thumb_copy_pop_pc_16bit ( struct gdbarch * gdbarch,
uint16_t insn1,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_copy_svc()

static int thumb_copy_svc ( struct gdbarch * gdbarch,
uint16_t insn,
regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_copy_unmodified_16bit()

static int thumb_copy_unmodified_16bit ( struct gdbarch * gdbarch,
uint16_t insn,
const char * iname,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_copy_unmodified_32bit()

static int thumb_copy_unmodified_32bit ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
const char * iname,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_decode_pc_relative_16bit()

static int thumb_decode_pc_relative_16bit ( struct gdbarch * gdbarch,
uint16_t insn,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_expand_immediate()

static unsigned int thumb_expand_immediate ( unsigned int imm)
static

Definition at line 980 of file arm-tdep.c.

Referenced by thumb_analyze_prologue().

◆ thumb_instruction_restores_sp()

static int thumb_instruction_restores_sp ( unsigned short insn)
static

Definition at line 1005 of file arm-tdep.c.

Referenced by thumb_analyze_prologue(), and thumb_stack_frame_destroyed_p().

◆ thumb_process_displaced_16bit_insn()

static void thumb_process_displaced_16bit_insn ( struct gdbarch * gdbarch,
uint16_t insn1,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_process_displaced_32bit_insn()

static void thumb_process_displaced_32bit_insn ( struct gdbarch * gdbarch,
uint16_t insn1,
uint16_t insn2,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_process_displaced_insn()

static void thumb_process_displaced_insn ( struct gdbarch * gdbarch,
CORE_ADDR from,
struct regcache * regs,
arm_displaced_step_copy_insn_closure * dsc )
static

◆ thumb_record_add_sub_cmp_mov()

static int thumb_record_add_sub_cmp_mov ( arm_insn_decode_record * thumb_insn_r)
static

◆ thumb_record_branch()

static int thumb_record_branch ( arm_insn_decode_record * thumb_insn_r)
static

◆ thumb_record_ld_st_imm_offset()

static int thumb_record_ld_st_imm_offset ( arm_insn_decode_record * thumb_insn_r)
static

◆ thumb_record_ld_st_reg_offset()

static int thumb_record_ld_st_reg_offset ( arm_insn_decode_record * thumb_insn_r)
static

◆ thumb_record_ld_st_stack()

static int thumb_record_ld_st_stack ( arm_insn_decode_record * thumb_insn_r)
static

◆ thumb_record_ldm_stm_swi()

static int thumb_record_ldm_stm_swi ( arm_insn_decode_record * thumb_insn_r)
static

◆ thumb_record_misc()

static int thumb_record_misc ( arm_insn_decode_record * thumb_insn_r)
static

◆ thumb_record_shift_add_sub()

static int thumb_record_shift_add_sub ( arm_insn_decode_record * thumb_insn_r)
static

◆ thumb_scan_prologue()

static void thumb_scan_prologue ( struct gdbarch * gdbarch,
CORE_ADDR prev_pc,
CORE_ADDR block_addr,
struct arm_prologue_cache * cache )
static

Definition at line 1885 of file arm-tdep.c.

References find_pc_partial_function(), and thumb_analyze_prologue().

Referenced by arm_scan_prologue().

◆ thumb_stack_frame_destroyed_p()

static int thumb_stack_frame_destroyed_p ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ value_of_arm_user_reg()

static struct value * value_of_arm_user_reg ( frame_info_ptr frame,
const void * baton )
static

Definition at line 9948 of file arm-tdep.c.

References value_of_register().

Referenced by arm_gdbarch_init().

Variable Documentation

◆ arm_abi_global

enum arm_abi_kind arm_abi_global = ARM_ABI_AUTO
static

Definition at line 159 of file arm-tdep.c.

Referenced by arm_gdbarch_init(), arm_set_abi(), and arm_show_abi().

◆ arm_abi_string

const char* arm_abi_string = "auto"
static

Definition at line 160 of file arm-tdep.c.

Referenced by _initialize_arm_tdep(), arm_set_abi(), and arm_show_abi().

◆ arm_abi_strings

const char* const arm_abi_strings[]
static
Initial value:
=
{
"auto",
"APCS",
"AAPCS",
NULL
}

Definition at line 150 of file arm-tdep.c.

Referenced by _initialize_arm_tdep(), arm_set_abi(), and arm_show_abi().

◆ arm_apcs_32

bool arm_apcs_32 = true

◆ arm_bfd_data_key

const registry<bfd>::key<arm_per_bfd> arm_bfd_data_key
static

Definition at line 127 of file arm-tdep.c.

Referenced by arm_find_mapping_symbol(), and arm_record_special_symbol().

◆ arm_debug

bool arm_debug
static

Definition at line 71 of file arm-tdep.c.

Referenced by _initialize_arm_tdep().

◆ arm_default_arm_be_breakpoint

const gdb_byte arm_default_arm_be_breakpoint[] = ARM_BE_BREAKPOINT
static

Definition at line 8803 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_default_arm_le_breakpoint

const gdb_byte arm_default_arm_le_breakpoint[] = ARM_LE_BREAKPOINT
static

Definition at line 8802 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_default_thumb_be_breakpoint

const gdb_byte arm_default_thumb_be_breakpoint[] = THUMB_BE_BREAKPOINT
static

Definition at line 8805 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_default_thumb_le_breakpoint

const gdb_byte arm_default_thumb_le_breakpoint[] = THUMB_LE_BREAKPOINT
static

Definition at line 8804 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_disassembler_options

char* arm_disassembler_options
static

Definition at line 235 of file arm-tdep.c.

Referenced by _initialize_arm_tdep(), and arm_gdbarch_init().

◆ arm_epilogue_frame_unwind

const struct frame_unwind arm_epilogue_frame_unwind
static
Initial value:
=
{
"arm epilogue",
NULL,
}
static int arm_epilogue_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition arm-tdep.c:3280
static void arm_epilogue_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition arm-tdep.c:3234
static struct value * arm_epilogue_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)
Definition arm-tdep.c:3262
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
@ NORMAL_FRAME
Definition frame.h:187

Definition at line 3300 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_exidx_data_key

const registry<bfd>::key<arm_exidx_data> arm_exidx_data_key
static

Definition at line 2504 of file arm-tdep.c.

Referenced by arm_exidx_new_objfile(), and arm_find_exidx_entry().

◆ arm_exidx_unwind

struct frame_unwind arm_exidx_unwind
Initial value:
= {
"arm exidx",
NULL,
}
static int arm_exidx_unwind_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition arm-tdep.c:3094
static struct value * arm_prologue_prev_register(frame_info_ptr this_frame, void **this_cache, int prev_regnum)
Definition arm-tdep.c:2403
static void arm_prologue_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition arm-tdep.c:2375

Definition at line 3191 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_fallback_mode_string

const char* arm_fallback_mode_string = "auto"
static

Definition at line 171 of file arm-tdep.c.

Referenced by _initialize_arm_tdep(), arm_pc_is_thumb(), and arm_show_fallback_mode().

◆ arm_force_mode_string

const char* arm_force_mode_string = "auto"
static

Definition at line 172 of file arm-tdep.c.

Referenced by _initialize_arm_tdep(), arm_pc_is_thumb(), and arm_show_force_mode().

◆ arm_fp_model

enum arm_float_model arm_fp_model = ARM_FLOAT_AUTO
static

Definition at line 146 of file arm-tdep.c.

Referenced by arm_gdbarch_init(), set_fp_model_sfunc(), and show_fp_model().

◆ arm_get_next_pcs_ops

struct arm_get_next_pcs_ops arm_get_next_pcs_ops
static
Initial value:
= {
NULL,
}
ULONGEST arm_get_next_pcs_read_memory_unsigned_integer(CORE_ADDR memaddr, int len, int byte_order)
Definition arm-tdep.c:7245
static CORE_ADDR arm_get_next_pcs_syscall_next_pc(struct arm_get_next_pcs *self)
Definition arm-tdep.c:7264
CORE_ADDR arm_get_next_pcs_addr_bits_remove(struct arm_get_next_pcs *self, CORE_ADDR val)
Definition arm-tdep.c:7255
int arm_get_next_pcs_is_thumb(struct arm_get_next_pcs *self)
Definition arm-tdep.c:7272

Definition at line 267 of file arm-tdep.c.

◆ arm_m_exception_unwind

struct frame_unwind arm_m_exception_unwind
Initial value:
=
{
"arm m exception lockup sec_fnc",
NULL,
}
static struct value * arm_m_exception_prev_register(frame_info_ptr this_frame, void **this_cache, int prev_regnum)
Definition arm-tdep.c:3874
static enum unwind_stop_reason arm_m_exception_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
Definition arm-tdep.c:3831
static int arm_m_exception_unwind_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition arm-tdep.c:3938
static void arm_m_exception_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition arm-tdep.c:3853
@ SIGTRAMP_FRAME
Definition frame.h:198

Definition at line 3955 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_mode_strings

const char* const arm_mode_strings[]
static
Initial value:
=
{
"auto",
"arm",
"thumb",
NULL
}

Definition at line 163 of file arm-tdep.c.

Referenced by _initialize_arm_tdep().

◆ arm_normal_base

struct frame_base arm_normal_base
Initial value:
= {
}
static CORE_ADDR arm_normal_frame_base(frame_info_ptr this_frame, void **this_cache)
Definition arm-tdep.c:3967
static frame_unwind arm_prologue_unwind
Definition arm-tdep.c:2472

Definition at line 3980 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_prologue_unwind

frame_unwind arm_prologue_unwind
static
Initial value:
= {
"arm prologue",
NULL,
}
static enum unwind_stop_reason arm_prologue_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
Definition arm-tdep.c:2347
int default_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)

Definition at line 2472 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ [struct]

const struct { ... } arm_register_aliases[]

Referenced by arm_gdbarch_init().

◆ arm_register_names

const char* const arm_register_names[]
static
Initial value:
=
{"r0", "r1", "r2", "r3",
"r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11",
"r12", "sp", "lr", "pc",
"f0", "f1", "f2", "f3",
"f4", "f5", "f6", "f7",
"fps", "cpsr" }

Definition at line 225 of file arm-tdep.c.

Referenced by arm_gdbarch_init(), arm_register_name(), and arm_register_type().

◆ arm_stub_unwind

struct frame_unwind arm_stub_unwind
Initial value:
= {
"arm stub",
NULL,
}
static void arm_stub_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition arm-tdep.c:3389
static int arm_stub_unwind_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition arm-tdep.c:3406

Definition at line 3430 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_unwind_secure_frames

bool arm_unwind_secure_frames = true

◆ current_fp_model

const char* current_fp_model = "auto"
static

Definition at line 147 of file arm-tdep.c.

Referenced by _initialize_arm_tdep(), and set_fp_model_sfunc().

◆ disassembly_style

const char* disassembly_style
static

Definition at line 241 of file arm-tdep.c.

Referenced by _initialize_arm_tdep(), and set_disassembly_style_sfunc().

◆ fp_model_strings

const char* const fp_model_strings[]
static
Initial value:
=
{
"auto",
"softfpa",
"fpa",
"softvfp",
"vfp",
NULL
}

Definition at line 135 of file arm-tdep.c.

Referenced by _initialize_arm_tdep(), set_fp_model_sfunc(), and show_fp_model().

◆ name

const char* name

◆ op_lit0

const unsigned char op_lit0 = DW_OP_lit0
static

Definition at line 5245 of file arm-tdep.c.

Referenced by arm_dwarf2_frame_init_reg().

◆ regnum

int regnum

◆ setarmcmdlist

struct cmd_list_element* setarmcmdlist = NULL
static

Definition at line 130 of file arm-tdep.c.

Referenced by _initialize_arm_tdep().

◆ showarmcmdlist

struct cmd_list_element* showarmcmdlist = NULL
static

Definition at line 131 of file arm-tdep.c.

Referenced by _initialize_arm_tdep().

◆ tdesc_arm_list

struct target_desc* tdesc_arm_list[ARM_FP_TYPE_INVALID][2]
static

Definition at line 244 of file arm-tdep.c.

Referenced by arm_read_description().

◆ tdesc_arm_mprofile_list

struct target_desc* tdesc_arm_mprofile_list[ARM_M_TYPE_INVALID]
static

Definition at line 245 of file arm-tdep.c.

Referenced by arm_read_mprofile_description().

◆ valid_disassembly_styles

const char** valid_disassembly_styles
static

Definition at line 238 of file arm-tdep.c.

Referenced by _initialize_arm_tdep().