GDB (xrefs)
|
#include "gdbsupport/tdesc.h"
Go to the source code of this file.
Macros | |
#define | IS_PAC(instruction) (instruction == 0xf3af801d) |
#define | IS_PACBTI(instruction) (instruction == 0xf3af800d) |
#define | IS_BTI(instruction) (instruction == 0xf3af800f) |
#define | IS_PACG(instruction) ((instruction & 0xfff0f0f0) == 0xfb60f000) |
#define | IS_AUT(instruction) (instruction == 0xf3af802d) |
#define | IS_AUTG(instruction) ((instruction & 0xfff00ff0) == 0xfb500f00) |
#define | INST_EQ 0x0 |
#define | INST_NE 0x1 |
#define | INST_CS 0x2 |
#define | INST_CC 0x3 |
#define | INST_MI 0x4 |
#define | INST_PL 0x5 |
#define | INST_VS 0x6 |
#define | INST_VC 0x7 |
#define | INST_HI 0x8 |
#define | INST_LS 0x9 |
#define | INST_GE 0xa |
#define | INST_LT 0xb |
#define | INST_GT 0xc |
#define | INST_LE 0xd |
#define | INST_AL 0xe |
#define | INST_NV 0xf |
#define | FLAG_N 0x80000000 |
#define | FLAG_Z 0x40000000 |
#define | FLAG_C 0x20000000 |
#define | FLAG_V 0x10000000 |
#define | CPSR_T 0x20 |
#define | XPSR_T 0x01000000 |
#define | ARM_INT_REGISTER_SIZE 4 |
#define | ARM_FP_REGISTER_SIZE 12 |
#define | ARM_VFP_REGISTER_SIZE 8 |
#define | IWMMXT_VEC_REGISTER_SIZE 8 |
#define | ARM_CORE_REGS_SIZE (17 * ARM_INT_REGISTER_SIZE) |
#define | ARM_FP_REGS_SIZE (8 * ARM_FP_REGISTER_SIZE + ARM_INT_REGISTER_SIZE) |
#define | ARM_VFP2_REGS_SIZE (16 * ARM_VFP_REGISTER_SIZE + ARM_INT_REGISTER_SIZE) |
#define | ARM_VFP3_REGS_SIZE (32 * ARM_VFP_REGISTER_SIZE + ARM_INT_REGISTER_SIZE) |
#define | IWMMXT_REGS_SIZE |
#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 | bits(obj, st, fn) (((obj) >> (st)) & submask ((fn) - (st))) |
#define | bit(obj, st) (((obj) >> (st)) & 1) |
#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))) |
Functions | |
int | thumb_insn_size (unsigned short inst1) |
int | condition_true (unsigned long cond, unsigned long status_reg) |
int | arm_instruction_changes_pc (uint32_t this_instr) |
int | thumb_instruction_changes_pc (unsigned short inst) |
int | thumb2_instruction_changes_pc (unsigned short inst1, unsigned short inst2) |
int | thumb_advance_itstate (unsigned int itstate) |
unsigned long | shifted_reg_val (struct regcache *regcache, unsigned long inst, int carry, unsigned long pc_val, unsigned long status_reg) |
target_desc * | arm_create_target_description (arm_fp_type fp_type, bool tls) |
target_desc * | arm_create_mprofile_target_description (arm_m_profile_type m_type) |
#define ARM_CORE_REGS_SIZE (17 * ARM_INT_REGISTER_SIZE) |
Definition at line 164 of file arm.h.
Referenced by arm_register_g_packet_guesses().
#define ARM_FP_REGISTER_SIZE 12 |
Definition at line 157 of file arm.h.
Referenced by arm_extract_return_value(), arm_store_return_value(), collect_nwfpe_register(), and supply_nwfpe_register().
#define ARM_FP_REGS_SIZE (8 * ARM_FP_REGISTER_SIZE + ARM_INT_REGISTER_SIZE) |
Definition at line 166 of file arm.h.
Referenced by arm_register_g_packet_guesses().
#define ARM_INT_REGISTER_SIZE 4 |
Definition at line 155 of file arm.h.
Referenced by arm_extract_return_value(), arm_get_longjmp_target(), arm_linux_collect_gregset(), arm_linux_collect_nwfpe(), arm_linux_sigreturn_next_pc_offset(), arm_linux_supply_gregset(), arm_m_exception_cache(), arm_none_collect_gregset(), arm_none_supply_gregset(), arm_push_dummy_call(), arm_record_ld_st_multiple(), arm_register_g_packet_guesses(), arm_return_in_memory(), arm_store_return_value(), and thumb_get_next_pcs_raw().
#define ARM_VFP2_REGS_SIZE (16 * ARM_VFP_REGISTER_SIZE + ARM_INT_REGISTER_SIZE) |
Definition at line 168 of file arm.h.
Referenced by arm_register_g_packet_guesses().
#define ARM_VFP3_REGS_SIZE (32 * ARM_VFP_REGISTER_SIZE + ARM_INT_REGISTER_SIZE) |
Definition at line 170 of file arm.h.
Referenced by fetch_fpregs_from_thread(), fetch_vfp_regs(), aarch64_linux_nat_target::read_description(), arm_linux_nat_target::read_description(), store_fpregs_to_thread(), and store_vfp_regs().
#define bits | ( | obj, | |
st, | |||
fn ) (((obj) >> (st)) & submask ((fn) - (st))) |
#define BranchDest | ( | addr, | |
instr ) ((CORE_ADDR) (((unsigned long) (addr)) + 8 + (sbits (instr, 0, 23) << 2))) |
Definition at line 187 of file arm.h.
Referenced by arm_analyze_prologue(), arm_deal_with_atomic_sequence_raw(), and arm_get_next_pcs_raw().
#define CPSR_T 0x20 |
Definition at line 149 of file arm.h.
Referenced by arm_psr_thumb_bit().
#define FLAG_C 0x20000000 |
Definition at line 146 of file arm.h.
Referenced by arm_get_next_pcs_raw(), and condition_true().
#define FLAG_N 0x80000000 |
Definition at line 144 of file arm.h.
Referenced by condition_true().
#define FLAG_V 0x10000000 |
Definition at line 147 of file arm.h.
Referenced by condition_true().
#define FLAG_Z 0x40000000 |
Definition at line 145 of file arm.h.
Referenced by condition_true().
#define INST_AL 0xe |
Definition at line 141 of file arm.h.
Referenced by condition_true(), thumb2_copy_b_bl_blx(), thumb2_copy_block_xfer(), thumb2_copy_table_branch(), thumb_copy_b(), thumb_copy_bx_blx_reg(), thumb_copy_cbnz_cbz(), and thumb_copy_pop_pc_16bit().
#define INST_CC 0x3 |
Definition at line 130 of file arm.h.
Referenced by condition_true().
#define INST_CS 0x2 |
Definition at line 129 of file arm.h.
Referenced by condition_true().
#define INST_EQ 0x0 |
Definition at line 127 of file arm.h.
Referenced by condition_true().
#define INST_GE 0xa |
Definition at line 137 of file arm.h.
Referenced by condition_true().
#define INST_GT 0xc |
Definition at line 139 of file arm.h.
Referenced by condition_true().
#define INST_HI 0x8 |
Definition at line 135 of file arm.h.
Referenced by condition_true().
#define INST_LE 0xd |
Definition at line 140 of file arm.h.
Referenced by condition_true().
#define INST_LS 0x9 |
Definition at line 136 of file arm.h.
Referenced by condition_true().
#define INST_LT 0xb |
Definition at line 138 of file arm.h.
Referenced by condition_true().
#define INST_MI 0x4 |
Definition at line 131 of file arm.h.
Referenced by condition_true().
#define INST_NE 0x1 |
Definition at line 128 of file arm.h.
Referenced by condition_true().
#define INST_NV 0xf |
Definition at line 142 of file arm.h.
Referenced by arm_get_next_pcs_raw(), arm_instruction_changes_pc(), arm_instruction_restores_sp(), arm_linux_get_next_pcs_fixup(), arm_stack_frame_destroyed_p_1(), and condition_true().
#define INST_PL 0x5 |
Definition at line 132 of file arm.h.
Referenced by condition_true().
#define INST_VC 0x7 |
Definition at line 134 of file arm.h.
Referenced by condition_true().
#define INST_VS 0x6 |
Definition at line 133 of file arm.h.
Referenced by condition_true().
#define IS_AUT | ( | instruction | ) | (instruction == 0xf3af802d) |
Definition at line 29 of file arm.h.
Referenced by thumb_analyze_prologue().
#define IS_AUTG | ( | instruction | ) | ((instruction & 0xfff00ff0) == 0xfb500f00) |
Definition at line 30 of file arm.h.
Referenced by thumb_analyze_prologue().
#define IS_PAC | ( | instruction | ) | (instruction == 0xf3af801d) |
Definition at line 25 of file arm.h.
Referenced by thumb_analyze_prologue().
#define IS_PACBTI | ( | instruction | ) | (instruction == 0xf3af800d) |
Definition at line 26 of file arm.h.
Referenced by thumb_analyze_prologue().
#define IS_PACG | ( | instruction | ) | ((instruction & 0xfff0f0f0) == 0xfb60f000) |
Definition at line 28 of file arm.h.
Referenced by thumb_analyze_prologue().
#define IS_THUMB_ADDR | ( | addr | ) | ((addr) & 1) |
Definition at line 177 of file arm.h.
Referenced by arm_breakpoint_kind_from_current_state(), arm_pc_is_thumb(), and reconstruct_t_bit().
#define IWMMXT_REGS_SIZE |
Definition at line 172 of file arm.h.
Referenced by fetch_wmmx_regs(), and store_wmmx_regs().
#define MAKE_THUMB_ADDR | ( | addr | ) | ((addr) | 1) |
Definition at line 178 of file arm.h.
Referenced by arm_breakpoint_kind_from_current_state(), arm_get_next_pcs_raw(), arm_linux_get_next_pcs_fixup(), arm_linux_get_next_pcs_syscall_next_pc(), arm_push_dummy_call(), thumb_deal_with_atomic_sequence_raw(), and thumb_get_next_pcs_raw().
#define UNMAKE_THUMB_ADDR | ( | addr | ) | ((addr) & ~1) |
Definition at line 179 of file arm.h.
Referenced by arm_addr_bits_remove(), arm_breakpoint_kind_from_current_state(), arm_breakpoint_kind_from_pc(), arm_exidx_new_objfile(), arm_m_exception_prev_register(), arm_skip_bx_reg(), gdb_print_insn_arm(), and thumb_get_next_pcs_raw().
#define XPSR_T 0x01000000 |
Definition at line 151 of file arm.h.
Referenced by arm_psr_thumb_bit().
enum arm_breakpoint_kinds |
enum arm_dwarf_regnum |
enum arm_fp_type |
enum arm_m_profile_type |
enum arm_register_counts |
enum gdb_regnum |
enum system_register_address : CORE_ADDR |
target_desc * arm_create_mprofile_target_description | ( | arm_m_profile_type | m_type | ) |
Definition at line 423 of file arm.c.
References allocate_target_description(), ARM_M_TYPE_M_PROFILE, ARM_M_TYPE_MVE, ARM_M_TYPE_SYSTEM, ARM_M_TYPE_VFP_D16, ARM_M_TYPE_WITH_FPA, create_feature_arm_arm_m_profile(), create_feature_arm_arm_m_profile_mve(), create_feature_arm_arm_m_profile_with_fpa(), create_feature_arm_arm_m_system(), create_feature_arm_arm_vfpv2(), regnum, and set_tdesc_architecture().
Referenced by arm_read_mprofile_description().
target_desc * arm_create_target_description | ( | arm_fp_type | fp_type, |
bool | tls ) |
Definition at line 378 of file arm.c.
References allocate_target_description(), ARM_FP_TYPE_IWMMXT, ARM_FP_TYPE_NONE, ARM_FP_TYPE_VFPV2, ARM_FP_TYPE_VFPV3, create_feature_arm_arm_core(), create_feature_arm_arm_tls(), create_feature_arm_arm_vfpv2(), create_feature_arm_arm_vfpv3(), create_feature_arm_xscale_iwmmxt(), regnum, and set_tdesc_architecture().
Referenced by arm_read_description().
int arm_instruction_changes_pc | ( | uint32_t | this_instr | ) |
Definition at line 111 of file arm.c.
References ARM_PC_REGNUM, bit, bits, and INST_NV.
Referenced by arm_analyze_prologue(), and arm_deal_with_atomic_sequence_raw().
int condition_true | ( | unsigned long | cond, |
unsigned long | status_reg ) |
Definition at line 48 of file arm.c.
References FLAG_C, FLAG_N, FLAG_V, FLAG_Z, INST_AL, INST_CC, INST_CS, INST_EQ, INST_GE, INST_GT, INST_HI, INST_LE, INST_LS, INST_LT, INST_MI, INST_NE, INST_NV, INST_PL, INST_VC, and INST_VS.
Referenced by arm_get_next_pcs_raw(), cleanup_block_load_all(), cleanup_block_load_pc(), cleanup_block_store_pc(), cleanup_branch(), and thumb_get_next_pcs_raw().
unsigned long shifted_reg_val | ( | struct regcache * | regcache, |
unsigned long | inst, | ||
int | carry, | ||
unsigned long | pc_val, | ||
unsigned long | status_reg ) |
Definition at line 325 of file arm.c.
References ARM_PC_REGNUM, bit, bits, and shifttype.
Referenced by arm_get_next_pcs_raw().
int thumb2_instruction_changes_pc | ( | unsigned short | inst1, |
unsigned short | inst2 ) |
Definition at line 231 of file arm.c.
Referenced by thumb_analyze_prologue(), and thumb_deal_with_atomic_sequence_raw().
int thumb_advance_itstate | ( | unsigned int | itstate | ) |
Definition at line 95 of file arm.c.
Referenced by thumb_get_next_pcs_raw().
int thumb_insn_size | ( | unsigned short | inst1 | ) |
Definition at line 37 of file arm.c.
Referenced by arm_adjust_breakpoint_address(), arm_breakpoint_kind_from_pc(), arm_linux_get_next_pcs_fixup(), thumb_analyze_prologue(), thumb_deal_with_atomic_sequence_raw(), thumb_get_next_pcs_raw(), thumb_process_displaced_insn(), and thumb_stack_frame_destroyed_p().
int thumb_instruction_changes_pc | ( | unsigned short | inst | ) |
Definition at line 204 of file arm.c.
Referenced by thumb_analyze_prologue(), and thumb_deal_with_atomic_sequence_raw().