GDB (xrefs)
Classes | Defines | Typedefs | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/arm-tdep.c File Reference
#include "defs.h"
#include <ctype.h>
#include "frame.h"
#include "inferior.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "gdb_string.h"
#include "dis-asm.h"
#include "regcache.h"
#include "reggroups.h"
#include "doublest.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-frame.h"
#include "gdbtypes.h"
#include "prologue-value.h"
#include "remote.h"
#include "target-descriptions.h"
#include "user-regs.h"
#include "observer.h"
#include "arm-tdep.h"
#include "gdb/sim-arm.h"
#include "elf-bfd.h"
#include "coff/internal.h"
#include "elf/arm.h"
#include "gdb_assert.h"
#include "vec.h"
#include "record.h"
#include "record-full.h"
#include "features/arm-with-m.c"
#include "features/arm-with-m-fpa-layout.c"
#include "features/arm-with-m-vfp-d16.c"
#include "features/arm-with-iwmmxt.c"
#include "features/arm-with-vfpv2.c"
#include "features/arm-with-vfpv3.c"
#include "features/arm-with-neon.c"
#include "bfd-in2.h"
#include "libcoff.h"

Go to the source code of this file.

Classes

struct  arm_mapping_symbol
struct  arm_per_objfile
struct  arm_prologue_cache
struct  arm_exidx_entry
struct  arm_exidx_data
struct  stack_item
struct  arm_mem_r
struct  insn_decode_record_t

Defines

#define MSYMBOL_SET_SPECIAL(msym)   MSYMBOL_TARGET_FLAG_1 (msym) = 1
#define MSYMBOL_IS_SPECIAL(msym)   MSYMBOL_TARGET_FLAG_1 (msym)
#define DISPLACED_STEPPING_ARCH_VERSION   5
#define IS_THUMB_ADDR(addr)   ((addr) & 1)
#define MAKE_THUMB_ADDR(addr)   ((addr) | 1)
#define UNMAKE_THUMB_ADDR(addr)   ((addr) & ~1)
#define submask(x)   ((1L << ((x) + 1)) - 1)
#define bit(obj, st)   (((obj) >> (st)) & 1)
#define bits(obj, st, fn)   (((obj) >> (st)) & submask ((fn) - (st)))
#define sbits(obj, st, fn)   ((long) (bits(obj,st,fn) | ((long) bit(obj,fn) * ~ submask (fn - st))))
#define BranchDest(addr, instr)   ((CORE_ADDR) (((unsigned long) (addr)) + 8 + (sbits (instr, 0, 23) << 2)))
#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 struct arm_mapping_symbol arm_mapping_symbol_s
typedef struct arm_exidx_entry arm_exidx_entry_s
typedef struct insn_decode_record_t insn_decode_record
typedef int(* sti_arm_hdl_fp_t )(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_strx_t { ARM_RECORD_STRH = 1, ARM_RECORD_STRD }
enum  record_type_t { ARM_RECORD = 1, THUMB_RECORD, THUMB2_RECORD }

Functions

 DEF_VEC_O (arm_mapping_symbol_s)
static void set_disassembly_style_sfunc (char *, int, struct cmd_list_element *)
static void set_disassembly_style (void)
static void convert_from_extended (const struct floatformat *, const void *, void *, int)
static void convert_to_extended (const struct floatformat *, void *, const void *, int)
static enum register_status arm_neon_quad_read (struct gdbarch *gdbarch, struct 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 int thumb_insn_size (unsigned short inst1)
static CORE_ADDR arm_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR prologue_start, CORE_ADDR prologue_end, struct arm_prologue_cache *cache)
int arm_psr_thumb_bit (struct gdbarch *gdbarch)
int arm_frame_is_thumb (struct frame_info *frame)
static int arm_compare_mapping_symbols (const struct arm_mapping_symbol *lhs, const struct arm_mapping_symbol *rhs)
static char arm_find_mapping_symbol (CORE_ADDR memaddr, CORE_ADDR *start)
int arm_pc_is_thumb (struct gdbarch *gdbarch, CORE_ADDR memaddr)
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_changes_pc (unsigned short inst)
static int thumb2_instruction_changes_pc (unsigned short inst1, unsigned short inst2)
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_changes_pc (uint32_t this_instr)
static void arm_scan_prologue (struct frame_info *this_frame, struct arm_prologue_cache *cache)
static struct arm_prologue_cachearm_make_prologue_cache (struct frame_info *this_frame)
static void arm_prologue_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct valuearm_prologue_prev_register (struct frame_info *this_frame, void **this_cache, int prev_regnum)
 DEF_VEC_O (arm_exidx_entry_s)
static void arm_exidx_data_free (struct objfile *objfile, void *arg)
static int arm_compare_exidx_entries (const struct arm_exidx_entry *lhs, const struct arm_exidx_entry *rhs)
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_bytearm_find_exidx_entry (CORE_ADDR memaddr, CORE_ADDR *start)
static struct arm_prologue_cachearm_exidx_fill_cache (struct frame_info *this_frame, gdb_byte *entry)
static int arm_exidx_unwind_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
static struct arm_prologue_cachearm_make_stub_cache (struct frame_info *this_frame)
static void arm_stub_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static int arm_stub_unwind_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
static struct arm_prologue_cachearm_m_exception_cache (struct frame_info *this_frame)
static void arm_m_exception_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct valuearm_m_exception_prev_register (struct frame_info *this_frame, void **this_cache, int prev_regnum)
static int arm_m_exception_unwind_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
static CORE_ADDR arm_normal_frame_base (struct frame_info *this_frame, void **this_cache)
static struct frame_id arm_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static CORE_ADDR arm_unwind_pc (struct gdbarch *gdbarch, struct frame_info *this_frame)
static CORE_ADDR arm_unwind_sp (struct gdbarch *gdbarch, struct frame_info *this_frame)
static struct valuearm_dwarf2_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static void arm_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, struct frame_info *this_frame)
static int thumb_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
static int arm_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
static struct stack_itempush_stack_item (struct stack_item *prev, const void *contents, int len)
static struct stack_itempop_stack_item (struct stack_item *si)
static int arm_type_align (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, int struct_return, CORE_ADDR struct_addr)
static CORE_ADDR arm_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
static void print_fpu_flags (int flags)
static void arm_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *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 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 int condition_true (unsigned long cond, unsigned long status_reg)
static unsigned long shifted_reg_val (struct frame_info *frame, unsigned long inst, int carry, unsigned long pc_val, unsigned long status_reg)
static int bitcount (unsigned long val)
static int thumb_advance_itstate (unsigned int itstate)
static CORE_ADDR thumb_get_next_pc_raw (struct frame_info *frame, CORE_ADDR pc)
static CORE_ADDR arm_get_next_pc_raw (struct frame_info *frame, CORE_ADDR pc)
CORE_ADDR arm_get_next_pc (struct frame_info *frame, CORE_ADDR pc)
void arm_insert_single_step_breakpoint (struct gdbarch *gdbarch, struct address_space *aspace, CORE_ADDR pc)
static int thumb_deal_with_atomic_sequence_raw (struct frame_info *frame)
static int arm_deal_with_atomic_sequence_raw (struct frame_info *frame)
int arm_deal_with_atomic_sequence (struct frame_info *frame)
int arm_software_single_step (struct frame_info *frame)
static gdb_byteextend_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 (struct regcache *regs, struct displaced_step_closure *dsc, int regno)
static int displaced_in_arm_mode (struct regcache *regs)
static void branch_write_pc (struct regcache *regs, struct displaced_step_closure *dsc, ULONGEST val)
static void bx_write_pc (struct regcache *regs, ULONGEST val)
static void load_write_pc (struct regcache *regs, struct displaced_step_closure *dsc, ULONGEST val)
static void alu_write_pc (struct regcache *regs, struct displaced_step_closure *dsc, ULONGEST val)
void displaced_write_reg (struct regcache *regs, struct displaced_step_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, struct displaced_step_closure *dsc)
static int thumb_copy_unmodified_32bit (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, const char *iname, struct displaced_step_closure *dsc)
static int thumb_copy_unmodified_16bit (struct gdbarch *gdbarch, unsigned int insn, const char *iname, struct displaced_step_closure *dsc)
static void cleanup_preload (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static void install_preload (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc, unsigned int rn)
static int arm_copy_preload (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb2_copy_preload (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static void install_preload_reg (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc, unsigned int rn, unsigned int rm)
static int arm_copy_preload_reg (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static void cleanup_copro_load_store (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static void install_copro_load_store (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc, int writeback, unsigned int rn)
static int arm_copy_copro_load_store (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb2_copy_copro_load_store (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static void cleanup_branch (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static void install_b_bl_blx (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc, unsigned int cond, int exchange, int link, long offset)
static int arm_copy_b_bl_blx (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb2_copy_b_bl_blx (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb_copy_b (struct gdbarch *gdbarch, unsigned short insn, struct displaced_step_closure *dsc)
static void install_bx_blx_reg (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc, int link, unsigned int cond, unsigned int rm)
static int arm_copy_bx_blx_reg (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb_copy_bx_blx_reg (struct gdbarch *gdbarch, uint16_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static void cleanup_alu_imm (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_copy_alu_imm (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb2_copy_alu_imm (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static void cleanup_alu_reg (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static void install_alu_reg (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_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, struct displaced_step_closure *dsc)
static int thumb_copy_alu_reg (struct gdbarch *gdbarch, uint16_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static void cleanup_alu_shifted_reg (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static void install_alu_shifted_reg (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_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, struct displaced_step_closure *dsc)
static void cleanup_load (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static void cleanup_store (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_copy_extra_ld_st (struct gdbarch *gdbarch, uint32_t insn, int unpriveleged, struct regcache *regs, struct displaced_step_closure *dsc)
static void install_load_store (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_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, struct displaced_step_closure *dsc, int size)
static int thumb2_copy_load_reg_imm (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc, int writeback, int immed)
static int arm_copy_ldr_str_ldrb_strb (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc, int load, int size, int usermode)
static void cleanup_block_load_all (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static void cleanup_block_store_pc (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static void cleanup_block_load_pc (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_copy_block_xfer (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb2_copy_block_xfer (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static void cleanup_svc (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static int install_svc (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_copy_svc (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb_copy_svc (struct gdbarch *gdbarch, uint16_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_copy_undef (struct gdbarch *gdbarch, uint32_t insn, struct displaced_step_closure *dsc)
static int thumb_32bit_copy_undef (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct displaced_step_closure *dsc)
static int arm_copy_unpred (struct gdbarch *gdbarch, uint32_t insn, struct displaced_step_closure *dsc)
static int arm_decode_misc_memhint_neon (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_decode_unconditional (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_decode_miscellaneous (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_decode_dp_misc (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_decode_ld_st_word_ubyte (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_decode_media (struct gdbarch *gdbarch, uint32_t insn, struct displaced_step_closure *dsc)
static int arm_decode_b_bl_ldmstm (struct gdbarch *gdbarch, int32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_decode_ext_reg_ld_st (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb2_decode_dp_shift_reg (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb2_decode_ext_reg_ld_st (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static int arm_decode_svc_copro (struct gdbarch *gdbarch, uint32_t insn, CORE_ADDR to, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb2_decode_svc_copro (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static void install_pc_relative (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc, int rd)
static int thumb_copy_pc_relative_16bit (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc, int rd, unsigned int imm)
static int thumb_decode_pc_relative_16bit (struct gdbarch *gdbarch, uint16_t insn, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb_copy_pc_relative_32bit (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb_copy_16bit_ldr_literal (struct gdbarch *gdbarch, unsigned short insn1, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb_copy_cbnz_cbz (struct gdbarch *gdbarch, uint16_t insn1, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb2_copy_table_branch (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static void cleanup_pop_pc_16bit_all (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
static int thumb_copy_pop_pc_16bit (struct gdbarch *gdbarch, unsigned short insn1, struct regcache *regs, struct displaced_step_closure *dsc)
static void thumb_process_displaced_16bit_insn (struct gdbarch *gdbarch, uint16_t insn1, struct regcache *regs, struct displaced_step_closure *dsc)
static int decode_thumb_32bit_ld_mem_hints (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static void thumb_process_displaced_32bit_insn (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2, struct regcache *regs, struct displaced_step_closure *dsc)
static void thumb_process_displaced_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs, struct displaced_step_closure *dsc)
void arm_process_displaced_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs, struct displaced_step_closure *dsc)
void arm_displaced_init_closure (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct displaced_step_closure *dsc)
struct displaced_step_closurearm_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
void arm_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_closure *dsc, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
static int gdb_print_insn_arm (bfd_vma memaddr, disassemble_info *info)
static const unsigned char * arm_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
static void arm_remote_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *kindptr)
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 (struct frame_info *frame, CORE_ADDR *pc)
CORE_ADDR arm_skip_stub (struct frame_info *frame, CORE_ADDR pc)
static void set_arm_command (char *args, int from_tty)
static void show_arm_command (char *args, int from_tty)
static void arm_update_current_architecture (void)
static void set_fp_model_sfunc (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 (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 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_objfile_data_free (struct objfile *objfile, void *arg)
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_pseudo_read (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, 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 (struct frame_info *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, struct reggroup *group)
static void arm_register_g_packet_guesses (struct gdbarch *gdbarch)
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 (void)
static int sbo_sbz (uint32_t insn, uint32_t bit_num, uint32_t len, uint32_t sbo)
static int arm_record_strx (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 (insn_decode_record *arm_insn_r)
static int arm_record_data_proc_misc_ld_str (insn_decode_record *arm_insn_r)
static int arm_record_data_proc_imm (insn_decode_record *arm_insn_r)
static int arm_record_ld_st_imm_offset (insn_decode_record *arm_insn_r)
static int arm_record_ld_st_reg_offset (insn_decode_record *arm_insn_r)
static int arm_record_ld_st_multiple (insn_decode_record *arm_insn_r)
static int arm_record_b_bl (insn_decode_record *arm_insn_r)
static int arm_record_coproc (insn_decode_record *arm_insn_r)
static int arm_record_coproc_data_proc (insn_decode_record *arm_insn_r)
static int thumb_record_shift_add_sub (insn_decode_record *thumb_insn_r)
static int thumb_record_add_sub_cmp_mov (insn_decode_record *thumb_insn_r)
static int thumb_record_ld_st_reg_offset (insn_decode_record *thumb_insn_r)
static int thumb_record_ld_st_imm_offset (insn_decode_record *thumb_insn_r)
static int thumb_record_ld_st_stack (insn_decode_record *thumb_insn_r)
static int thumb_record_misc (insn_decode_record *thumb_insn_r)
static int thumb_record_ldm_stm_swi (insn_decode_record *thumb_insn_r)
static int thumb_record_branch (insn_decode_record *thumb_insn_r)
static int extract_arm_insn (insn_decode_record *insn_record, uint32_t insn_size)
static int decode_insn (insn_decode_record *arm_record, record_type_t record_type, uint32_t insn_size)
static void deallocate_reg_mem (insn_decode_record *record)
int arm_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR insn_addr)

Variables

static int arm_debug
static struct objfile_data * arm_objfile_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"
static int arm_override_mode = -1
static int num_disassembly_options
struct {
   const char *   name
   int   regnum
arm_register_aliases []
static const char *const arm_register_names []
static const char ** valid_disassembly_styles
static const char * disassembly_style
int arm_apcs_32 = 1
struct frame_unwind arm_prologue_unwind
static struct objfile_data * arm_exidx_data_key
struct frame_unwind arm_exidx_unwind
struct frame_unwind arm_stub_unwind
struct frame_unwind arm_m_exception_unwind
struct frame_base arm_normal_base
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
initialize_file_ftype _initialize_arm_tdep

Define Documentation

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

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

#define ARM_INSN_SIZE_BYTES   4

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

Referenced by arm_process_record().

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

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

#define ARM_NOP   0xe1a00000

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

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

#define bit (   obj,
  st 
)    (((obj) >> (st)) & 1)
#define bits (   obj,
  st,
  fn 
)    (((obj) >> (st)) & submask ((fn) - (st)))

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

Referenced by ada_value_assign(), arm_analyze_load_stack_chk_guard(), arm_analyze_prologue(), arm_copy_alu_imm(), arm_copy_alu_reg(), arm_copy_alu_shifted_reg(), arm_copy_b_bl_blx(), arm_copy_block_xfer(), arm_copy_bx_blx_reg(), arm_copy_copro_load_store(), arm_copy_extra_ld_st(), arm_copy_ldr_str_ldrb_strb(), arm_copy_preload(), arm_copy_preload_reg(), arm_deal_with_atomic_sequence_raw(), arm_decode_dp_misc(), arm_decode_ext_reg_ld_st(), arm_decode_ld_st_word_ubyte(), arm_decode_media(), arm_decode_misc_memhint_neon(), arm_decode_miscellaneous(), arm_decode_svc_copro(), arm_decode_unconditional(), arm_get_next_pc_raw(), arm_in_function_epilogue_p(), arm_instruction_changes_pc(), arm_process_record(), arm_record_coproc_data_proc(), arm_record_data_proc_imm(), arm_record_data_proc_misc_ld_str(), arm_record_extension_space(), arm_record_ld_st_imm_offset(), arm_record_ld_st_multiple(), arm_record_ld_st_reg_offset(), arm_record_strx(), arm_skip_stack_protector(), decode_constrained_packed_array_type(), decode_insn(), decode_packed_array_bitsize(), decode_thumb_32bit_ld_mem_hints(), gen_extend(), locexpr_describe_location_1(), opt_from_option_mask(), print_scalar_formatted(), read_range_type(), sbo_sbz(), shifted_reg_val(), sign_extend(), sparc64_pseudo_register_write(), thumb2_copy_alu_imm(), thumb2_copy_b_bl_blx(), thumb2_copy_block_xfer(), thumb2_copy_copro_load_store(), thumb2_copy_load_literal(), thumb2_copy_load_reg_imm(), thumb2_copy_preload(), thumb2_copy_table_branch(), thumb2_decode_dp_shift_reg(), thumb2_decode_ext_reg_ld_st(), thumb2_decode_svc_copro(), thumb2_instruction_changes_pc(), thumb_analyze_prologue(), thumb_copy_16bit_ldr_literal(), thumb_copy_alu_reg(), thumb_copy_b(), thumb_copy_bx_blx_reg(), thumb_copy_cbnz_cbz(), thumb_copy_pc_relative_32bit(), thumb_deal_with_atomic_sequence_raw(), thumb_decode_pc_relative_16bit(), thumb_get_next_pc_raw(), thumb_process_displaced_16bit_insn(), thumb_process_displaced_32bit_insn(), thumb_record_add_sub_cmp_mov(), thumb_record_branch(), thumb_record_ld_st_imm_offset(), thumb_record_ld_st_reg_offset(), thumb_record_ld_st_stack(), thumb_record_ldm_stm_swi(), thumb_record_misc(), thumb_record_shift_add_sub(), tic6x_extract_signed_field(), value_assign_to_component(), value_subscript_packed(), and write_exp_bitstring().

#define BranchDest (   addr,
  instr 
)    ((CORE_ADDR) (((unsigned long) (addr)) + 8 + (sbits (instr, 0, 23) << 2)))

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

Referenced by alu_write_pc(), and load_write_pc().

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

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

Referenced by arm_analyze_load_stack_chk_guard().

#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 529 of file arm-tdep.c.

Referenced by arm_analyze_load_stack_chk_guard(), and thumb_analyze_prologue().

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

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

Referenced by arm_record_extension_space(), and decode_insn().

#define INSN_S_L_BIT_NUM   20
#define IS_THUMB_ADDR (   addr)    ((addr) & 1)
#define IT_SCAN_THRESHOLD   32

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

Referenced by arm_adjust_breakpoint_address().

#define MAKE_THUMB_ADDR (   addr)    ((addr) | 1)
#define MAX_IT_BLOCK_PREFIX   14

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

Referenced by arm_adjust_breakpoint_address().

#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 10600 of file arm-tdep.c.

Referenced by arm_record_data_proc_imm(), arm_record_data_proc_misc_ld_str(), arm_record_extension_space(), arm_record_ld_st_imm_offset(), arm_record_ld_st_multiple(), arm_record_ld_st_reg_offset(), thumb_record_ld_st_imm_offset(), thumb_record_ld_st_reg_offset(), thumb_record_ld_st_stack(), thumb_record_ldm_stm_swi(), and thumb_record_misc().

#define MSYMBOL_IS_SPECIAL (   msym)    MSYMBOL_TARGET_FLAG_1 (msym)

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

Referenced by arm_pc_is_thumb().

#define MSYMBOL_SET_SPECIAL (   msym)    MSYMBOL_TARGET_FLAG_1 (msym) = 1

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

Referenced by arm_coff_make_msymbol_special(), and arm_elf_make_msymbol_special().

#define REG_ALLOC (   REGS,
  LENGTH,
  RECORD_BUF 
)
#define sbits (   obj,
  st,
  fn 
)    ((long) (bits(obj,st,fn) | ((long) bit(obj,fn) * ~ submask (fn - st))))
#define submask (   x)    ((1L << ((x) + 1)) - 1)

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

#define THUMB2_INSN_SIZE_BYTES   4

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

Referenced by arm_process_record().

#define THUMB_BE_BREAKPOINT   {0xbe,0xbe}

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

#define THUMB_INSN_SIZE_BYTES   2

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

Referenced by arm_process_record().

#define THUMB_LE_BREAKPOINT   {0xbe,0xbe}

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

#define THUMB_NOP   0x4600
#define UNMAKE_THUMB_ADDR (   addr)    ((addr) & ~1)

Typedef Documentation

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

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

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


Enumeration Type Documentation

Enumerator:
ARM_RECORD_STRH 
ARM_RECORD_STRD 

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

Enumerator:
VFP_CPRC_UNKNOWN 
VFP_CPRC_SINGLE 
VFP_CPRC_DOUBLE 
VFP_CPRC_VEC64 
VFP_CPRC_VEC128 

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

Enumerator:
ARM_RECORD 
THUMB_RECORD 
THUMB2_RECORD 

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


Function Documentation

void _initialize_arm_tdep ( void  )
static void alu_write_pc ( struct regcache regs,
struct displaced_step_closure dsc,
ULONGEST  val 
) [static]
static CORE_ADDR arm_addr_bits_remove ( struct gdbarch gdbarch,
CORE_ADDR  val 
) [static]
static CORE_ADDR arm_adjust_breakpoint_address ( struct gdbarch gdbarch,
CORE_ADDR  bpaddr 
) [static]
static CORE_ADDR arm_analyze_load_stack_chk_guard ( CORE_ADDR  pc,
struct gdbarch gdbarch,
unsigned int destreg,
int offset 
) [static]
static CORE_ADDR arm_analyze_prologue ( struct gdbarch gdbarch,
CORE_ADDR  prologue_start,
CORE_ADDR  prologue_end,
struct arm_prologue_cache cache 
) [static]
static const unsigned char* arm_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenptr 
) [static]
static void arm_coff_make_msymbol_special ( int  val,
struct minimal_symbol msym 
) [static]

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

References coff_sym_is_thumb(), and MSYMBOL_SET_SPECIAL.

Referenced by arm_gdbarch_init().

static int arm_compare_exidx_entries ( const struct arm_exidx_entry lhs,
const struct arm_exidx_entry rhs 
) [inline, static]

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

References arm_exidx_entry::addr.

Referenced by arm_find_exidx_entry().

static int arm_compare_mapping_symbols ( const struct arm_mapping_symbol lhs,
const struct arm_mapping_symbol rhs 
) [inline, static]

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

References arm_mapping_symbol::value.

Referenced by arm_find_mapping_symbol(), and arm_record_special_symbol().

static int arm_copy_alu_imm ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_alu_reg ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_alu_shifted_reg ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_b_bl_blx ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_block_xfer ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_bx_blx_reg ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_copro_load_store ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_extra_ld_st ( struct gdbarch gdbarch,
uint32_t  insn,
int  unpriveleged,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_ldr_str_ldrb_strb ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc,
int  load,
int  size,
int  usermode 
) [static]
static int arm_copy_preload ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_preload_reg ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_svc ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_undef ( struct gdbarch gdbarch,
uint32_t  insn,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_unmodified ( struct gdbarch gdbarch,
uint32_t  insn,
const char *  iname,
struct displaced_step_closure dsc 
) [static]
static int arm_copy_unpred ( struct gdbarch gdbarch,
uint32_t  insn,
struct displaced_step_closure dsc 
) [static]
static int arm_deal_with_atomic_sequence_raw ( struct frame_info frame) [static]
static int arm_decode_b_bl_ldmstm ( struct gdbarch gdbarch,
int32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]

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

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

Referenced by arm_process_displaced_insn().

static int arm_decode_dp_misc ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_decode_ext_reg_ld_st ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]

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

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

Referenced by arm_decode_svc_copro().

static int arm_decode_ld_st_word_ubyte ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]

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

References arm_copy_ldr_str_ldrb_strb(), bit, and bits.

Referenced by arm_process_displaced_insn().

static int arm_decode_media ( struct gdbarch gdbarch,
uint32_t  insn,
struct displaced_step_closure dsc 
) [static]

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

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

Referenced by arm_process_displaced_insn().

static int arm_decode_misc_memhint_neon ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_decode_miscellaneous ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]

Definition at line 7526 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().

static int arm_decode_svc_copro ( struct gdbarch gdbarch,
uint32_t  insn,
CORE_ADDR  to,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int arm_decode_unconditional ( struct gdbarch gdbarch,
uint32_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
void arm_displaced_init_closure ( struct gdbarch gdbarch,
CORE_ADDR  from,
CORE_ADDR  to,
struct displaced_step_closure dsc 
)
struct displaced_step_closure* arm_displaced_step_copy_insn ( struct gdbarch gdbarch,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
) [read]
void arm_displaced_step_fixup ( struct gdbarch gdbarch,
struct displaced_step_closure dsc,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
)
static struct frame_id arm_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static, read]

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

References ARM_SP_REGNUM, frame_id_build(), get_frame_pc(), and get_frame_register_unsigned().

Referenced by arm_gdbarch_init().

static void arm_dump_tdep ( struct gdbarch gdbarch,
struct ui_file file 
) [static]

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

References _, fprintf_unfiltered(), gdbarch_tdep(), and gdbarch_tdep::lowest_pc.

Referenced by _initialize_arm_tdep().

static void arm_dwarf2_frame_init_reg ( struct gdbarch gdbarch,
int  regnum,
struct dwarf2_frame_state_reg reg,
struct frame_info this_frame 
) [static]
static struct value* arm_dwarf2_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]
static int arm_dwarf_reg_to_regnum ( struct gdbarch gdbarch,
int  reg 
) [static]
static void arm_elf_make_msymbol_special ( asymbol *  sym,
struct minimal_symbol msym 
) [static]

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

References MSYMBOL_SET_SPECIAL.

Referenced by arm_gdbarch_init().

static enum gdb_osabi arm_elf_osabi_sniffer ( bfd *  abfd) [static]

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

References GDB_OSABI_UNKNOWN, and generic_elf_osabi_sniff_abi_tag_sections().

Referenced by _initialize_arm_tdep().

static void arm_exidx_data_free ( struct objfile objfile,
void *  arg 
) [static]

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

References objfile::obfd, and VEC_free.

Referenced by _initialize_arm_tdep().

static struct arm_prologue_cache* arm_exidx_fill_cache ( struct frame_info this_frame,
gdb_byte entry 
) [static, read]
static void arm_exidx_new_objfile ( struct objfile objfile) [static]
static int arm_exidx_unwind_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_prologue_cache 
) [static]
static struct type* arm_ext_type ( struct gdbarch gdbarch) [static, read]
static void arm_extract_return_value ( struct type type,
struct regcache regs,
gdb_byte valbuf 
) [static]
static gdb_byte* arm_find_exidx_entry ( CORE_ADDR  memaddr,
CORE_ADDR start 
) [static]
static char arm_find_mapping_symbol ( CORE_ADDR  memaddr,
CORE_ADDR start 
) [static]
static CORE_ADDR arm_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  sp 
) [static]

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

Referenced by arm_gdbarch_init().

int arm_frame_is_thumb ( struct frame_info frame)
static struct gdbarch* arm_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
) [static, read]

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

References _, gdbarch_info::abfd, gdbarch_tdep::arm_abi, ARM_ABI_AAPCS, ARM_ABI_APCS, ARM_ABI_AUTO, arm_abi_global, arm_addr_bits_remove(), arm_adjust_breakpoint_address(), gdbarch_tdep::arm_breakpoint, arm_breakpoint_from_pc(), gdbarch_tdep::arm_breakpoint_size, 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_dummy_id(), arm_dwarf2_frame_init_reg(), arm_dwarf_reg_to_regnum(), arm_elf_make_msymbol_special(), 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_in_function_epilogue_p(), ARM_LR_REGNUM, ARM_NUM_REGS, ARM_PC_REGNUM, arm_print_float_info(), 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_remote_breakpoint_from_pc(), arm_return_value(), arm_skip_prologue(), arm_skip_stub(), ARM_SP_REGNUM, arm_unwind_pc(), arm_unwind_sp(), ARM_WC0_REGNUM, ARM_WCASF_REGNUM, ARM_WCGR0_REGNUM, ARM_WCGR3_REGNUM, ARM_WR0_REGNUM, ARM_WR15_REGNUM, arm_write_pc(), gdbarch_info::byte_order_for_code, core_addr_lessthan(), DISPLACED_MODIFIED_INSNS, dwarf2_append_unwinders(), dwarf2_frame_set_init_reg(), floatformats_ieee_double, floatformats_ieee_double_littlebyte_bigword, floatformats_ieee_single, gdbarch_tdep::fp_model, 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_tdep::have_fpa_registers, gdbarch_tdep::have_neon, gdbarch_tdep::have_neon_pseudos, gdbarch_tdep::have_vfp_pseudos, gdbarch_tdep::have_vfp_registers, internal_error(), gdbarch_tdep::is_m, gdbarch_tdep::jb_pc, gdbarch_tdep::lowest_pc, name, gdbarch_list::next, reg_struct_return, regnum, set_gdbarch_addr_bits_remove(), set_gdbarch_adjust_breakpoint_address(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_char_signed(), set_gdbarch_coff_make_msymbol_special(), set_gdbarch_double_format(), set_gdbarch_dummy_id(), 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_have_nonsteppable_watchpoint(), set_gdbarch_in_function_epilogue_p(), 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_remote_breakpoint_from_pc(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_skip_trampoline_code(), set_gdbarch_sp_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_vbit_in_delta(), set_gdbarch_write_pc(), set_tdesc_pseudo_register_name(), gdbarch_tdep::struct_return, gdbarch_info::target_desc, tdesc_data, tdesc_data_alloc(), tdesc_data_cleanup(), tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), tdesc_numbered_register_choices(), tdesc_unnumbered_register(), tdesc_use_registers(), gdbarch_tdep::thumb_breakpoint, gdbarch_tdep::thumb_breakpoint_size, user_reg_add(), value_of_arm_user_reg(), warning(), and xcalloc().

Referenced by _initialize_arm_tdep().

static int arm_get_longjmp_target ( struct frame_info frame,
CORE_ADDR pc 
) [static]
CORE_ADDR arm_get_next_pc ( struct frame_info frame,
CORE_ADDR  pc 
)
static CORE_ADDR arm_get_next_pc_raw ( struct frame_info frame,
CORE_ADDR  pc 
) [static]
static int arm_in_function_epilogue_p ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]
void arm_insert_single_step_breakpoint ( struct gdbarch gdbarch,
struct address_space aspace,
CORE_ADDR  pc 
)
static int arm_instruction_changes_pc ( uint32_t  this_instr) [static]

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

References _, ARM_PC_REGNUM, bit, bits, error(), INST_NV, and internal_error().

Referenced by arm_analyze_prologue(), and arm_deal_with_atomic_sequence_raw().

static struct arm_prologue_cache* arm_m_exception_cache ( struct frame_info this_frame) [static, read]
static struct value* arm_m_exception_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  prev_regnum 
) [static, read]
static void arm_m_exception_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]
static int arm_m_exception_unwind_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_prologue_cache 
) [static]

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

References get_frame_pc().

static struct arm_prologue_cache* arm_make_prologue_cache ( struct frame_info this_frame) [static, read]
static struct arm_prologue_cache* arm_make_stub_cache ( struct frame_info this_frame) [static, read]
static struct type* arm_neon_double_type ( struct gdbarch gdbarch) [static, read]
static enum register_status arm_neon_quad_read ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
gdb_byte buf 
) [static]
static struct type* arm_neon_quad_type ( struct gdbarch gdbarch) [static, read]
static void arm_neon_quad_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
const gdb_byte buf 
) [static]
static CORE_ADDR arm_normal_frame_base ( struct frame_info this_frame,
void **  this_cache 
) [static]
static struct obj_section* arm_obj_section_from_vma ( struct objfile objfile,
bfd_vma  vma 
) [static, read]

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

References ALL_OBJFILE_OSECTIONS, objfile::obfd, size, and obj_section::the_bfd_section.

Referenced by arm_exidx_new_objfile().

static void arm_objfile_data_free ( struct objfile objfile,
void *  arg 
) [static]

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

References objfile::obfd, and VEC_free.

Referenced by _initialize_arm_tdep().

int arm_pc_is_thumb ( struct gdbarch gdbarch,
CORE_ADDR  memaddr 
)
static void arm_print_float_info ( struct gdbarch gdbarch,
struct ui_file file,
struct frame_info frame,
const char *  args 
) [static]
void arm_process_displaced_insn ( struct gdbarch gdbarch,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs,
struct displaced_step_closure dsc 
)
int arm_process_record ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  insn_addr 
)
static struct value* arm_prologue_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  prev_regnum 
) [static, read]
static void arm_prologue_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]
static enum register_status arm_pseudo_read ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
gdb_byte buf 
) [static]
static void arm_pseudo_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
const gdb_byte buf 
) [static]
int arm_psr_thumb_bit ( struct gdbarch gdbarch)
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,
int  struct_return,
CORE_ADDR  struct_addr 
) [static]
static int arm_record_b_bl ( insn_decode_record arm_insn_r) [static]
static int arm_record_coproc ( insn_decode_record arm_insn_r) [static]
static int arm_record_coproc_data_proc ( insn_decode_record arm_insn_r) [static]
static int arm_record_data_proc_imm ( insn_decode_record arm_insn_r) [static]
static int arm_record_data_proc_misc_ld_str ( insn_decode_record arm_insn_r) [static]
static int arm_record_extension_space ( insn_decode_record arm_insn_r) [static]
static int arm_record_ld_st_imm_offset ( insn_decode_record arm_insn_r) [static]
static int arm_record_ld_st_multiple ( insn_decode_record arm_insn_r) [static]
static int arm_record_ld_st_reg_offset ( insn_decode_record arm_insn_r) [static]
static void arm_record_special_symbol ( struct gdbarch gdbarch,
struct objfile objfile,
asymbol *  sym 
) [static]
static int arm_record_strx ( insn_decode_record arm_insn_r,
uint32_t *  record_buf,
uint32_t *  record_buf_mem,
arm_record_strx_t  str_type 
) [static]
static void arm_register_g_packet_guesses ( struct gdbarch gdbarch) [static]
static const char* arm_register_name ( struct gdbarch gdbarch,
int  i 
) [static]
static int arm_register_reggroup_p ( struct gdbarch gdbarch,
int  regnum,
struct reggroup group 
) [static]
static int arm_register_sim_regno ( struct gdbarch gdbarch,
int  regnum 
) [static]
static struct type* arm_register_type ( struct gdbarch gdbarch,
int  regnum 
) [static, read]
static void arm_remote_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int kindptr 
) [static]

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

References arm_breakpoint_from_pc(), and arm_pc_is_thumb().

Referenced by arm_gdbarch_init().

static int arm_return_in_memory ( struct gdbarch gdbarch,
struct type type 
) [static]
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]
static void arm_scan_prologue ( struct frame_info this_frame,
struct arm_prologue_cache cache 
) [static]
static void arm_set_abi ( char *  args,
int  from_tty,
struct cmd_list_element c 
) [static]
static void arm_show_abi ( struct ui_file file,
int  from_tty,
struct cmd_list_element c,
const char *  value 
) [static]
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 9403 of file arm-tdep.c.

References _, arm_fallback_mode_string, and fprintf_filtered().

Referenced by _initialize_arm_tdep().

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

References _, arm_force_mode_string, fprintf_filtered(), gdbarch_tdep(), and target_gdbarch().

Referenced by _initialize_arm_tdep().

static CORE_ADDR arm_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]
static CORE_ADDR arm_skip_stack_protector ( CORE_ADDR  pc,
struct gdbarch gdbarch 
) [static]
CORE_ADDR arm_skip_stub ( struct frame_info frame,
CORE_ADDR  pc 
)
static void arm_store_return_value ( struct type type,
struct regcache regs,
const gdb_byte valbuf 
) [static]
static void arm_stub_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]
static int arm_stub_unwind_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_prologue_cache 
) [static]
static int arm_type_align ( struct type t) [static]
static CORE_ADDR arm_unwind_pc ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static]

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

References arm_addr_bits_remove(), ARM_PC_REGNUM, and frame_unwind_register_unsigned().

Referenced by arm_gdbarch_init().

static CORE_ADDR arm_unwind_sp ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static]

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

References ARM_SP_REGNUM, and frame_unwind_register_unsigned().

Referenced by arm_gdbarch_init().

static void arm_update_current_architecture ( void  ) [static]
static int arm_vfp_abi_for_function ( struct gdbarch gdbarch,
struct type func_type 
) [static]
static int arm_vfp_call_candidate ( struct type t,
enum arm_vfp_cprc_base_type base_type,
int count 
) [static]

Definition at line 3616 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().

static int arm_vfp_cprc_reg_char ( enum arm_vfp_cprc_base_type  b) [static]
static int arm_vfp_cprc_sub_candidate ( struct type t,
enum arm_vfp_cprc_base_type base_type 
) [static]
static unsigned arm_vfp_cprc_unit_length ( enum arm_vfp_cprc_base_type  b) [static]
static void arm_write_pc ( struct regcache regcache,
CORE_ADDR  pc 
) [static]
static int bitcount ( unsigned long  val) [static]
static void branch_write_pc ( struct regcache regs,
struct displaced_step_closure dsc,
ULONGEST  val 
) [static]
static void bx_write_pc ( struct regcache regs,
ULONGEST  val 
) [static]
static void cleanup_alu_imm ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_alu_reg ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_alu_shifted_reg ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_block_load_all ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_block_load_pc ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_block_store_pc ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_branch ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_copro_load_store ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_load ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_pop_pc_16bit_all ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_preload ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_store ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void cleanup_svc ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int coff_sym_is_thumb ( int  val) [static]

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

Referenced by arm_coff_make_msymbol_special().

static int condition_true ( unsigned long  cond,
unsigned long  status_reg 
) [static]
static void convert_from_extended ( const struct floatformat *  fmt,
const void *  ptr,
void *  dbl,
int  endianess 
) [static]

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

References floatformat_from_doublest(), and floatformat_to_doublest().

Referenced by arm_extract_return_value().

static void convert_to_extended ( const struct floatformat *  fmt,
void *  dbl,
const void *  ptr,
int  endianess 
) [static]

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

References floatformat_from_doublest(), and floatformat_to_doublest().

Referenced by arm_store_return_value().

static void deallocate_reg_mem ( insn_decode_record record) [static]

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

References insn_decode_record_t::arm_mems, insn_decode_record_t::arm_regs, and xfree().

Referenced by arm_process_record().

static int decode_insn ( insn_decode_record arm_record,
record_type_t  record_type,
uint32_t  insn_size 
) [static]
static int decode_thumb_32bit_ld_mem_hints ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int displaced_in_arm_mode ( struct regcache regs) [static]
ULONGEST displaced_read_reg ( struct regcache regs,
struct displaced_step_closure dsc,
int  regno 
)
void displaced_write_reg ( struct regcache regs,
struct displaced_step_closure dsc,
int  regno,
ULONGEST  val,
enum pc_write_style  write_pc 
)
static gdb_byte* extend_buffer_earlier ( gdb_byte buf,
CORE_ADDR  endaddr,
int  old_len,
int  new_len 
) [static]

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

References memcpy(), target_read_memory(), xfree(), and xmalloc().

Referenced by arm_adjust_breakpoint_address().

static int extract_arm_insn ( insn_decode_record insn_record,
uint32_t  insn_size 
) [static]
static int gdb_print_insn_arm ( bfd_vma  memaddr,
disassemble_info *  info 
) [static]

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

References arm_pc_is_thumb(), and UNMAKE_THUMB_ADDR.

Referenced by arm_gdbarch_init().

static int insn_references_pc ( uint32_t  insn,
uint32_t  bitmask 
) [static]
static void install_alu_reg ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc,
unsigned int  rd,
unsigned int  rn,
unsigned int  rm 
) [static]
static void install_alu_shifted_reg ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc,
unsigned int  rd,
unsigned int  rn,
unsigned int  rm,
unsigned  rs 
) [static]
static void install_b_bl_blx ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc,
unsigned int  cond,
int  exchange,
int  link,
long  offset 
) [static]
static void install_bx_blx_reg ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc,
int  link,
unsigned int  cond,
unsigned int  rm 
) [static]
static void install_copro_load_store ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc,
int  writeback,
unsigned int  rn 
) [static]
static void install_load_store ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc,
int  load,
int  immed,
int  writeback,
int  size,
int  usermode,
int  rt,
int  rm,
int  rn 
) [static]
static void install_pc_relative ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc,
int  rd 
) [static]
static void install_preload ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc,
unsigned int  rn 
) [static]
static void install_preload_reg ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc,
unsigned int  rn,
unsigned int  rm 
) [static]
static int install_svc ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void load_write_pc ( struct regcache regs,
struct displaced_step_closure dsc,
ULONGEST  val 
) [static]

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

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

Referenced by displaced_write_reg().

static struct stack_item* pop_stack_item ( struct stack_item si) [static, read]

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

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

Referenced by arm_push_dummy_call().

static void print_fpu_flags ( int  flags) [static]

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

Referenced by arm_print_float_info().

static struct stack_item* push_stack_item ( struct stack_item prev,
const void *  contents,
int  len 
) [static, read]

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

References stack_item::data, len, stack_item::len, memcpy(), stack_item::prev, and xmalloc().

Referenced by arm_push_dummy_call().

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

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

References bits.

Referenced by arm_record_data_proc_imm(), and arm_record_data_proc_misc_ld_str().

static void set_arm_command ( char *  args,
int  from_tty 
) [static]

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

References _, all_commands, gdb_stdout, help_list(), and printf_unfiltered().

Referenced by _initialize_arm_tdep().

static void set_disassembly_style ( void  ) [static]
static void set_disassembly_style_sfunc ( char *  args,
int  from_tty,
struct cmd_list_element c 
) [static]

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

References set_disassembly_style().

Referenced by _initialize_arm_tdep().

static void set_fp_model_sfunc ( char *  args,
int  from_tty,
struct cmd_list_element c 
) [static]
static unsigned long shifted_reg_val ( struct frame_info frame,
unsigned long  inst,
int  carry,
unsigned long  pc_val,
unsigned long  status_reg 
) [static]

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

References ARM_PC_REGNUM, bit, bits, get_frame_register_unsigned(), L, and shifttype.

Referenced by arm_get_next_pc_raw().

static void show_arm_command ( char *  args,
int  from_tty 
) [static]

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

References cmd_show_list().

Referenced by _initialize_arm_tdep().

static void show_fp_model ( struct ui_file file,
int  from_tty,
struct cmd_list_element c,
const char *  value 
) [static]
static int skip_prologue_function ( struct gdbarch gdbarch,
CORE_ADDR  pc,
int  is_thumb 
) [static]
static int thumb2_copy_alu_imm ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb2_copy_b_bl_blx ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb2_copy_block_xfer ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb2_copy_copro_load_store ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb2_copy_load_literal ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc,
int  size 
) [static]
static int thumb2_copy_load_reg_imm ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc,
int  writeback,
int  immed 
) [static]
static int thumb2_copy_preload ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb2_copy_table_branch ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb2_decode_dp_shift_reg ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb2_decode_ext_reg_ld_st ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]

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

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

Referenced by thumb2_decode_svc_copro().

static int thumb2_decode_svc_copro ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb2_instruction_changes_pc ( unsigned short  inst1,
unsigned short  inst2 
) [static]

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

References bit, and bits.

Referenced by thumb_analyze_prologue(), and thumb_deal_with_atomic_sequence_raw().

static int thumb_32bit_copy_undef ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct displaced_step_closure dsc 
) [static]
static int thumb_advance_itstate ( unsigned int  itstate) [static]

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

Referenced by thumb_get_next_pc_raw().

static CORE_ADDR thumb_analyze_prologue ( struct gdbarch gdbarch,
CORE_ADDR  start,
CORE_ADDR  limit,
struct arm_prologue_cache cache 
) [static]
static int thumb_copy_16bit_ldr_literal ( struct gdbarch gdbarch,
unsigned short  insn1,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb_copy_alu_reg ( struct gdbarch gdbarch,
uint16_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb_copy_b ( struct gdbarch gdbarch,
unsigned short  insn,
struct displaced_step_closure dsc 
) [static]
static int thumb_copy_bx_blx_reg ( struct gdbarch gdbarch,
uint16_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb_copy_cbnz_cbz ( struct gdbarch gdbarch,
uint16_t  insn1,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb_copy_pc_relative_16bit ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc,
int  rd,
unsigned int  imm 
) [static]

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

References install_pc_relative(), and displaced_step_closure::modinsn.

Referenced by thumb_decode_pc_relative_16bit().

static int thumb_copy_pc_relative_32bit ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb_copy_pop_pc_16bit ( struct gdbarch gdbarch,
unsigned short  insn1,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb_copy_svc ( struct gdbarch gdbarch,
uint16_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb_copy_unmodified_16bit ( struct gdbarch gdbarch,
unsigned int  insn,
const char *  iname,
struct displaced_step_closure dsc 
) [static]
static int thumb_copy_unmodified_32bit ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
const char *  iname,
struct displaced_step_closure dsc 
) [static]
static int thumb_deal_with_atomic_sequence_raw ( struct frame_info frame) [static]
static int thumb_decode_pc_relative_16bit ( struct gdbarch gdbarch,
uint16_t  insn,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static unsigned int thumb_expand_immediate ( unsigned int  imm) [static]

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

Referenced by thumb_analyze_prologue().

static CORE_ADDR thumb_get_next_pc_raw ( struct frame_info frame,
CORE_ADDR  pc 
) [static]
static int thumb_in_function_epilogue_p ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]
static int thumb_insn_size ( unsigned short  inst1) [static]
static int thumb_instruction_changes_pc ( unsigned short  inst) [static]

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

Referenced by thumb_analyze_prologue(), and thumb_deal_with_atomic_sequence_raw().

static void thumb_process_displaced_16bit_insn ( struct gdbarch gdbarch,
uint16_t  insn1,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void thumb_process_displaced_32bit_insn ( struct gdbarch gdbarch,
uint16_t  insn1,
uint16_t  insn2,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static void thumb_process_displaced_insn ( struct gdbarch gdbarch,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs,
struct displaced_step_closure dsc 
) [static]
static int thumb_record_add_sub_cmp_mov ( insn_decode_record thumb_insn_r) [static]
static int thumb_record_branch ( insn_decode_record thumb_insn_r) [static]
static int thumb_record_ld_st_imm_offset ( insn_decode_record thumb_insn_r) [static]
static int thumb_record_ld_st_reg_offset ( insn_decode_record thumb_insn_r) [static]
static int thumb_record_ld_st_stack ( insn_decode_record thumb_insn_r) [static]
static int thumb_record_ldm_stm_swi ( insn_decode_record thumb_insn_r) [static]
static int thumb_record_misc ( insn_decode_record thumb_insn_r) [static]
static int thumb_record_shift_add_sub ( insn_decode_record thumb_insn_r) [static]
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 1533 of file arm-tdep.c.

References find_pc_partial_function(), min, and thumb_analyze_prologue().

Referenced by arm_scan_prologue().

static struct value* value_of_arm_user_reg ( struct frame_info frame,
const void *  baton 
) [static, read]

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

References value_of_register().

Referenced by arm_gdbarch_init().


Variable Documentation

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

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

const char* arm_abi_string = "auto" [static]

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

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

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

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

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

int arm_debug [static]

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

Referenced by arm_gdbarch_init().

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

Referenced by arm_gdbarch_init().

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

Referenced by arm_gdbarch_init().

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

Referenced by arm_gdbarch_init().

struct objfile_data* arm_exidx_data_key [static]

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

Referenced by _initialize_arm_tdep(), arm_exidx_new_objfile(), and arm_find_exidx_entry().

const char* arm_fallback_mode_string = "auto" [static]

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

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

const char* arm_force_mode_string = "auto" [static]

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

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

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

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

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

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

Referenced by _initialize_arm_tdep().

Initial value:

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

struct objfile_data* arm_objfile_data_key [static]
int arm_override_mode = -1 [static]

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

Referenced by arm_insert_single_step_breakpoint(), and arm_pc_is_thumb().

struct { ... } arm_register_aliases[] [static]

Referenced by arm_gdbarch_init().

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

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

const char* current_fp_model = "auto" [static]

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

Referenced by _initialize_arm_tdep(), and set_fp_model_sfunc().

const char* disassembly_style [static]

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

Referenced by _initialize_arm_tdep(), and set_disassembly_style().

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

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

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

const char* name

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

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

Referenced by _initialize_arm_tdep(), and set_disassembly_style().

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

struct cmd_list_element* setarmcmdlist = NULL [static]

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

struct cmd_list_element* showarmcmdlist = NULL [static]

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

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

Referenced by _initialize_arm_tdep(), and set_disassembly_style().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines