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 "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 "gdb/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)
 
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, gdb_byte *readbuf, 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 8751 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 74 of file arm-tdep.c.

◆ ARM_INSN_SIZE_BYTES

#define ARM_INSN_SIZE_BYTES   4

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

◆ ARM_LE_BREAKPOINT

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

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

◆ ARM_NOP

#define ARM_NOP   0xe1a00000

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

◆ DISPLACED_STEPPING_ARCH_VERSION

#define DISPLACED_STEPPING_ARCH_VERSION   5

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

◆ 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 972 of file arm-tdep.c.

◆ 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 964 of file arm-tdep.c.

◆ INSN_RECORDED

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

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

◆ INSN_S_L_BIT_NUM

#define INSN_S_L_BIT_NUM   20

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

◆ IT_SCAN_THRESHOLD

#define IT_SCAN_THRESHOLD   32

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

◆ MAX_IT_BLOCK_PREFIX

#define MAX_IT_BLOCK_PREFIX   14

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

◆ MEM_ALLOC

#define MEM_ALLOC (   MEMS,
  LENGTH,
  RECORD_BUF 
)
Value:
do \
{ \
unsigned int mem_len = LENGTH; \
if (mem_len) \
{ \
MEMS = XNEWVEC (struct arm_mem_r, mem_len); \
memcpy(&MEMS->len, &RECORD_BUF[0], \
sizeof(struct arm_mem_r) * LENGTH); \
} \
} \
while (0)

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

◆ MSYMBOL_IS_SPECIAL

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

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

◆ MSYMBOL_SET_SPECIAL

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

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

◆ REG_ALLOC

#define REG_ALLOC (   REGS,
  LENGTH,
  RECORD_BUF 
)
Value:
do \
{ \
unsigned int reg_len = LENGTH; \
if (reg_len) \
{ \
REGS = XNEWVEC (uint32_t, reg_len); \
memcpy(&REGS[0], &RECORD_BUF[0], sizeof(uint32_t)*LENGTH); \
} \
} \
while (0)

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

◆ THUMB2_INSN_SIZE_BYTES

#define THUMB2_INSN_SIZE_BYTES   4

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

◆ THUMB_BE_BREAKPOINT

#define THUMB_BE_BREAKPOINT   {0xbe,0xbe}

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

◆ THUMB_INSN_SIZE_BYTES

#define THUMB_INSN_SIZE_BYTES   2

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

◆ THUMB_LE_BREAKPOINT

#define THUMB_LE_BREAKPOINT   {0xbe,0xbe}

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

◆ THUMB_NOP

#define THUMB_NOP   0x4600

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

Typedef Documentation

◆ arm_mapping_symbol_vec

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

◆ sti_arm_hdl_fp_t

typedef int(* sti_arm_hdl_fp_t) (arm_insn_decode_record *)

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

Enumeration Type Documentation

◆ arm_record_result

Enumerator
ARM_RECORD_SUCCESS 
ARM_RECORD_FAILURE 

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

◆ arm_record_strx_t

Enumerator
ARM_RECORD_STRH 
ARM_RECORD_STRD 

Definition at line 11161 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 4342 of file arm-tdep.c.

◆ record_type_t

Enumerator
ARM_RECORD 
THUMB_RECORD 
THUMB2_RECORD 

Definition at line 11167 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 9980 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 9651 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 7727 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 7738 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 7634 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 7671 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 7537 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 
)

◆ 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 9641 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 1926 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 4857 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 10024 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_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(), 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 7249 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 7222 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 7241 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 10008 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 9998 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 1901 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 9325 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 777 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 3918 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 9748 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 9834 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 2493 of file arm-tdep.c.

References ALL_OBJFILE_OSECTIONS, size, and obj_section::the_bfd_section.

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,
gdb_byte *  readbuf,
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 9513 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 9523 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 9533 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 4322 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 9421 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 4597 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 4580 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 4376 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 9624 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 14754 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 5260 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 5568 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 4309 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 4864 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 4296 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 11134 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 9547 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 9557 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 7792 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 979 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 1004 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 1871 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 9886 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 158 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 159 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 149 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 126 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 70 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 8756 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 8755 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 8758 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 8757 of file arm-tdep.c.

Referenced by arm_gdbarch_init().

◆ arm_disassembler_options

char* arm_disassembler_options
static

Definition at line 234 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:3260
static void arm_epilogue_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition arm-tdep.c:3214
static struct value * arm_epilogue_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)
Definition arm-tdep.c:3242
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
@ NORMAL_FRAME
Definition frame.h:179

Definition at line 3280 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 2490 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:3082
static struct value * arm_prologue_prev_register(frame_info_ptr this_frame, void **this_cache, int prev_regnum)
Definition arm-tdep.c:2389
static void arm_prologue_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition arm-tdep.c:2361

Definition at line 3171 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 170 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 171 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 145 of file arm-tdep.c.

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

◆ arm_get_next_pcs_ops

Initial value:
= {
NULL,
}
ULONGEST arm_get_next_pcs_read_memory_unsigned_integer(CORE_ADDR memaddr, int len, int byte_order)
Definition arm-tdep.c:7222
static CORE_ADDR arm_get_next_pcs_syscall_next_pc(struct arm_get_next_pcs *self)
Definition arm-tdep.c:7241
CORE_ADDR arm_get_next_pcs_addr_bits_remove(struct arm_get_next_pcs *self, CORE_ADDR val)
Definition arm-tdep.c:7232
int arm_get_next_pcs_is_thumb(struct arm_get_next_pcs *self)
Definition arm-tdep.c:7249

Definition at line 266 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:3854
static enum unwind_stop_reason arm_m_exception_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
Definition arm-tdep.c:3811
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:3918
static void arm_m_exception_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition arm-tdep.c:3833
@ SIGTRAMP_FRAME
Definition frame.h:190

Definition at line 3935 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 162 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:3947
static frame_unwind arm_prologue_unwind
Definition arm-tdep.c:2458

Definition at line 3960 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:2333
int default_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)

Definition at line 2458 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 224 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:3369
static int arm_stub_unwind_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition arm-tdep.c:3386

Definition at line 3410 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 146 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 240 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 134 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 5222 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 129 of file arm-tdep.c.

Referenced by _initialize_arm_tdep().

◆ showarmcmdlist

struct cmd_list_element* showarmcmdlist = NULL
static

Definition at line 130 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 243 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 244 of file arm-tdep.c.

Referenced by arm_read_mprofile_description().

◆ valid_disassembly_styles

const char** valid_disassembly_styles
static

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

Referenced by _initialize_arm_tdep().