GDB (xrefs)
|
#include "defs.h"
#include "doublest.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "dwarf2-frame.h"
#include "inferior.h"
#include "symtab.h"
#include "value.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "dis-asm.h"
#include "symfile.h"
#include "objfiles.h"
#include "linespec.h"
#include "regcache.h"
#include "reggroups.h"
#include "arch-utils.h"
#include "osabi.h"
#include "block.h"
#include "infcall.h"
#include "trad-frame.h"
#include "elf-bfd.h"
#include "alpha-tdep.h"
Go to the source code of this file.
Classes | |
struct | alpha_sigtramp_unwind_cache |
struct | alpha_heuristic_unwind_cache |
Macros | |
#define | INSN_OPCODE(insn) ((insn & 0xfc000000) >> 26) |
#define | MEM_RA(insn) ((insn & 0x03e00000) >> 21) |
#define | MEM_RB(insn) ((insn & 0x001f0000) >> 16) |
#define | MEM_DISP(insn) (((insn & 0x8000) == 0) ? (insn & 0xffff) : -((-insn) & 0xffff)) |
#define | BR_RA(insn) MEM_RA(insn) |
#define | OPR_FUNCTION(insn) ((insn & 0xfe0) >> 5) |
#define | OPR_HAS_IMMEDIATE(insn) ((insn & 0x1000) == 0x1000) |
#define | OPR_RA(insn) MEM_RA(insn) |
#define | OPR_RC(insn) ((insn & 0x1f)) |
#define | OPR_LIT(insn) ((insn & 0x1fe000) >> 13) |
Variables | |
static const int | lda_opcode = 0x08 |
static const int | stq_opcode = 0x2d |
static const int | br_opcode = 0x30 |
static const int | bne_opcode = 0x3d |
static const int | subq_opcode = 0x10 |
static const int | subq_function = 0x29 |
static const int | ldl_l_opcode = 0x2a |
static const int | ldq_l_opcode = 0x2b |
static const int | stl_c_opcode = 0x2e |
static const int | stq_c_opcode = 0x2f |
static const struct frame_unwind | alpha_sigtramp_frame_unwind |
static int | heuristic_fence_post = 0 |
static const struct frame_unwind | alpha_heuristic_frame_unwind |
static const struct frame_base | alpha_heuristic_frame_base |
initialize_file_ftype | _initialize_alpha_tdep |
#define BR_RA | ( | insn | ) | MEM_RA(insn) |
Definition at line 63 of file alpha-tdep.c.
#define INSN_OPCODE | ( | insn | ) | ((insn & 0xfc000000) >> 26) |
Definition at line 51 of file alpha-tdep.c.
Referenced by alpha_deal_with_atomic_sequence(), and alpha_heuristic_analyze_probing_loop().
#define MEM_DISP | ( | insn | ) | (((insn & 0x8000) == 0) ? (insn & 0xffff) : -((-insn) & 0xffff)) |
Definition at line 56 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
#define MEM_RA | ( | insn | ) | ((insn & 0x03e00000) >> 21) |
Definition at line 54 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
#define MEM_RB | ( | insn | ) | ((insn & 0x001f0000) >> 16) |
Definition at line 55 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
#define OPR_FUNCTION | ( | insn | ) | ((insn & 0xfe0) >> 5) |
Definition at line 69 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
#define OPR_HAS_IMMEDIATE | ( | insn | ) | ((insn & 0x1000) == 0x1000) |
Definition at line 70 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
#define OPR_LIT | ( | insn | ) | ((insn & 0x1fe000) >> 13) |
Definition at line 73 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
#define OPR_RA | ( | insn | ) | MEM_RA(insn) |
Definition at line 71 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
#define OPR_RC | ( | insn | ) | ((insn & 0x1f)) |
Definition at line 72 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
void _initialize_alpha_tdep | ( | void | ) |
Definition at line 1858 of file alpha-tdep.c.
References _, add_setshow_zinteger_cmd(), alpha_gdbarch_init(), class_support, gdbarch_register(), heuristic_fence_post, reinit_frame_cache_sfunc(), setlist, and showlist.
Definition at line 661 of file alpha-tdep.c.
References symtab_and_line::end, find_pc_line(), and find_pc_partial_function().
Referenced by alpha_mdebug_after_prologue(), and alpha_skip_prologue().
|
static |
Definition at line 648 of file alpha-tdep.c.
Referenced by alpha_gdbarch_init().
Definition at line 110 of file alpha-tdep.c.
References alpha_register_name().
Referenced by alpha_gdbarch_init().
Definition at line 116 of file alpha-tdep.c.
References alpha_register_name(), and ALPHA_ZERO_REGNUM.
Referenced by alpha_gdbarch_init().
|
static |
Definition at line 232 of file alpha-tdep.c.
References ALPHA_FP0_REGNUM, and TYPE_LENGTH.
Referenced by alpha_gdbarch_init().
|
static |
Definition at line 772 of file alpha-tdep.c.
References ALPHA_INSN_SIZE, alpha_read_insn(), br_opcode, get_frame_address_space(), get_frame_arch(), get_frame_pc(), insert_single_step_breakpoint(), INSN_OPCODE, ldl_l_opcode, ldq_l_opcode, stl_c_opcode, and stq_c_opcode.
Referenced by alpha_gdbarch_init().
|
static |
Definition at line 1478 of file alpha-tdep.c.
References ALPHA_SP_REGNUM, frame_info::base, frame_id_build(), get_frame_pc(), and get_frame_register_unsigned().
Referenced by alpha_gdbarch_init().
void alpha_dwarf2_init_abi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch | ||
) |
Definition at line 1849 of file alpha-tdep.c.
References dwarf2_append_unwinders(), dwarf2_frame_base_sniffer(), and frame_base_append_sniffer().
Referenced by alpha_linux_init_abi(), alphafbsd_init_abi(), alphanbsd_init_abi(), and alphaobsd_init_abi().
|
static |
Definition at line 472 of file alpha-tdep.c.
References _, ALPHA_FP0_REGNUM, ALPHA_REGISTER_SIZE, alpha_sts(), ALPHA_V0_REGNUM, gdbarch::byte_order, gdbarch_byte_order(), get_regcache_arch(), internal_error(), read_memory(), regcache_cooked_read(), regcache_cooked_read_unsigned(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_COMPLEX, TYPE_CODE_FLT, and TYPE_LENGTH.
Referenced by alpha_return_value().
Definition at line 1558 of file alpha-tdep.c.
References ALPHA_FP0_REGNUM, ALPHA_FPCR_REGNUM, and regcache_raw_collect().
Referenced by alpha_linux_collect_fpregset(), alphabsd_fill_fpreg(), and fill_fpregset().
void alpha_fill_int_regs | ( | const struct regcache * | regcache, |
int | regno, | ||
void * | r0_r30, | ||
void * | pc, | ||
void * | unique | ||
) |
Definition at line 1524 of file alpha-tdep.c.
References ALPHA_PC_REGNUM, ALPHA_UNIQUE_REGNUM, and regcache_raw_collect().
Referenced by alpha_linux_collect_gregset(), alphabsd_fill_reg(), and fill_gregset().
|
static |
Definition at line 1747 of file alpha-tdep.c.
References alpha_breakpoint_from_pc(), alpha_cannot_fetch_register(), alpha_cannot_store_register(), alpha_convert_register_p(), alpha_deal_with_atomic_sequence(), alpha_dummy_id(), ALPHA_FP0_REGNUM, alpha_get_longjmp_target(), ALPHA_INSN_SIZE, ALPHA_NUM_REGS, ALPHA_PC_REGNUM, alpha_push_dummy_call(), alpha_register_name(), alpha_register_reggroup_p(), alpha_register_to_value(), alpha_register_type(), alpha_return_in_memory_always(), alpha_return_value(), alpha_skip_prologue(), ALPHA_SP_REGNUM, alpha_unwind_pc(), alpha_value_to_register(), core_addr_lessthan(), gdbarch_tdep::dynamic_sigtramp_offset, find_solib_trampoline_target(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_tdep::jb_pc, gdbarch_tdep::return_in_memory, gdbarch_tdep::sc_fpregs_offset, gdbarch_tdep::sc_pc_offset, gdbarch_tdep::sc_regs_offset, set_gdbarch_breakpoint_from_pc(), set_gdbarch_cannot_fetch_register(), set_gdbarch_cannot_step_breakpoint(), set_gdbarch_cannot_store_register(), set_gdbarch_convert_register_p(), set_gdbarch_decr_pc_after_break(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_float_bit(), set_gdbarch_fp0_regnum(), set_gdbarch_get_longjmp_target(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_long_bit(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_reggroup_p(), set_gdbarch_register_to_value(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_skip_trampoline_code(), set_gdbarch_software_single_step(), set_gdbarch_sp_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_value_to_register(), gdbarch_tdep::sigcontext_addr, gdbarch_tdep::vm_min_address, and xmalloc().
Referenced by _initialize_alpha_tdep().
|
static |
Definition at line 855 of file alpha-tdep.c.
References ALPHA_A0_REGNUM, ALPHA_REGISTER_SIZE, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_tdep(), get_frame_arch(), get_frame_register_unsigned(), gdbarch_tdep::jb_elt_size, gdbarch_tdep::jb_pc, and target_read_memory().
Referenced by alpha_gdbarch_init().
|
static |
Definition at line 1135 of file alpha-tdep.c.
References ALPHA_INSN_SIZE, alpha_read_insn(), ALPHA_SP_REGNUM, bne_opcode, INSN_OPCODE, lda_opcode, MEM_DISP, MEM_RA, MEM_RB, OPR_FUNCTION, OPR_HAS_IMMEDIATE, OPR_LIT, OPR_RA, OPR_RC, stq_opcode, subq_function, and subq_opcode.
Referenced by alpha_heuristic_frame_unwind_cache().
|
static |
Definition at line 1446 of file alpha-tdep.c.
References alpha_heuristic_frame_unwind_cache(), and alpha_heuristic_unwind_cache::vfp.
|
static |
Definition at line 1421 of file alpha-tdep.c.
References alpha_heuristic_frame_unwind_cache(), ALPHA_PC_REGNUM, alpha_heuristic_unwind_cache::return_reg, alpha_heuristic_unwind_cache::saved_regs, and trad_frame_get_prev_register().
|
static |
Definition at line 1408 of file alpha-tdep.c.
References alpha_heuristic_frame_unwind_cache(), frame_id_build(), alpha_heuristic_unwind_cache::start_pc, and alpha_heuristic_unwind_cache::vfp.
|
static |
Definition at line 1232 of file alpha-tdep.c.
References trad_frame_saved_reg::addr, ALPHA_GCC_FP_REGNUM, alpha_heuristic_analyze_probing_loop(), alpha_heuristic_proc_start(), ALPHA_INSN_SIZE, ALPHA_NUM_REGS, ALPHA_RA_REGNUM, alpha_read_insn(), ALPHA_SP_REGNUM, ALPHA_T7_REGNUM, ALPHA_T9_REGNUM, FRAME_OBSTACK_ZALLOC, get_frame_arch(), get_frame_pc(), get_frame_register_unsigned(), alpha_heuristic_unwind_cache::return_reg, alpha_heuristic_unwind_cache::saved_regs, alpha_heuristic_unwind_cache::start_pc, trad_frame_addr_p(), trad_frame_alloc_saved_regs(), trad_frame_set_value(), alpha_heuristic_unwind_cache::vfp, and word.
Referenced by alpha_heuristic_frame_base_address(), alpha_heuristic_frame_prev_register(), and alpha_heuristic_frame_this_id().
Definition at line 1042 of file alpha-tdep.c.
References _, ALPHA_INSN_SIZE, alpha_read_insn(), inferior::control, current_inferior(), func, gdbarch_tdep(), get_pc_function_start(), heuristic_fence_post, arm-linux::inf, NO_STOP_QUIETLY, paddress(), gdbarch_tdep::pc, printf_filtered(), inferior_control_state::stop_soon, gdbarch_tdep::vm_min_address, and warning().
Referenced by alpha_heuristic_frame_unwind_cache().
Definition at line 185 of file alpha-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), and store_unsigned_integer().
Referenced by alpha_store_return_value(), and alpha_value_to_register().
|
static |
Definition at line 1604 of file alpha-tdep.c.
References ALPHA_INSN_SIZE, alpha_read_insn(), fp_register_sign_bit(), fp_register_zero_p(), gdbarch_fp0_regnum(), get_frame_arch(), get_frame_register_signed(), get_frame_register_unsigned(), and offset.
Referenced by alpha_software_single_step().
|
static |
Definition at line 294 of file alpha-tdep.c.
References ALPHA_A0_REGNUM, ALPHA_FPA0_REGNUM, ALPHA_NUM_ARG_REGS, ALPHA_RA_REGNUM, ALPHA_REGISTER_SIZE, ALPHA_SP_REGNUM, ALPHA_T12_REGNUM, builtin_type::builtin_double, builtin_type::builtin_int32, builtin_type::builtin_int64, builtin_type(), gdbarch::byte_order, check_typedef(), find_function_addr(), gdbarch_byte_order(), len, lookup_pointer_type(), offset, regcache_cooked_write(), regcache_cooked_write_signed(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_COMPLEX, TYPE_CODE_ENUM, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_CODE_RANGE, TYPE_LENGTH, value_cast(), value_contents(), value_from_pointer(), value_type(), and write_memory().
Referenced by alpha_gdbarch_init().
Definition at line 681 of file alpha-tdep.c.
References ALPHA_INSN_SIZE, extract_unsigned_integer(), gdbarch_byte_order(), memory_error(), status, and target_read_memory().
Referenced by alpha_deal_with_atomic_sequence(), alpha_heuristic_analyze_probing_loop(), alpha_heuristic_frame_unwind_cache(), alpha_heuristic_proc_start(), alpha_linux_sigcontext_addr(), alpha_linux_sigtramp_offset_1(), alpha_next_pc(), alpha_skip_prologue(), and alphaobsd_pc_in_sigtramp().
Definition at line 87 of file alpha-tdep.c.
References gdbarch_tdep::register_names.
Referenced by alpha_cannot_fetch_register(), alpha_cannot_store_register(), and alpha_gdbarch_init().
|
static |
Definition at line 141 of file alpha-tdep.c.
References all_reggroup, ALPHA_FP0_REGNUM, ALPHA_FPCR_REGNUM, ALPHA_UNIQUE_REGNUM, ALPHA_ZERO_REGNUM, float_reggroup, gdbarch_register_name(), general_reggroup, restore_reggroup, save_reggroup, and system_reggroup.
Referenced by alpha_gdbarch_init().
|
static |
Definition at line 240 of file alpha-tdep.c.
References _, alpha_sts(), error(), get_frame_arch(), get_frame_register_bytes(), MAX_REGISTER_SIZE, register_size(), and TYPE_LENGTH.
Referenced by alpha_gdbarch_init().
Definition at line 123 of file alpha-tdep.c.
References ALPHA_FP0_REGNUM, ALPHA_GP_REGNUM, ALPHA_PC_REGNUM, ALPHA_SP_REGNUM, builtin_type::builtin_data_ptr, builtin_type::builtin_double, builtin_type::builtin_func_ptr, builtin_type::builtin_int64, and builtin_type().
Referenced by alpha_gdbarch_init().
Definition at line 642 of file alpha-tdep.c.
Referenced by alpha_gdbarch_init().
|
static |
Definition at line 612 of file alpha-tdep.c.
References alpha_extract_return_value(), alpha_store_return_value(), ALPHA_V0_REGNUM, code, read_memory(), regcache_raw_read_unsigned(), RETURN_VALUE_ABI_RETURNS_ADDRESS, RETURN_VALUE_REGISTER_CONVENTION, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.
Referenced by alpha_gdbarch_init().
|
static |
Definition at line 969 of file alpha-tdep.c.
References alpha_sigtramp_frame_unwind_cache(), alpha_sigtramp_register_address(), frame_unwind_got_memory(), frame_unwind_got_register(), get_frame_arch(), and alpha_sigtramp_unwind_cache::sigcontext_addr.
|
static |
Definition at line 993 of file alpha-tdep.c.
References find_pc_partial_function(), get_frame_arch(), get_frame_pc(), and name.
|
static |
Definition at line 927 of file alpha-tdep.c.
References ALPHA_REGISTER_SIZE, alpha_sigtramp_frame_unwind_cache(), alpha_sigtramp_register_address(), ALPHA_SP_REGNUM, gdbarch_tdep::dynamic_sigtramp_offset, frame_id_build(), gdbarch_tdep(), get_frame_arch(), get_frame_func(), get_frame_memory_unsigned(), get_frame_pc(), offset, and alpha_sigtramp_unwind_cache::sigcontext_addr.
|
static |
Definition at line 886 of file alpha-tdep.c.
References FRAME_OBSTACK_ZALLOC, gdbarch_tdep(), get_frame_arch(), gdbarch_tdep::sigcontext_addr, and alpha_sigtramp_unwind_cache::sigcontext_addr.
Referenced by alpha_sigtramp_frame_prev_register(), and alpha_sigtramp_frame_this_id().
|
static |
Definition at line 908 of file alpha-tdep.c.
References ALPHA_FP0_REGNUM, ALPHA_PC_REGNUM, gdbarch_tdep(), gdbarch_tdep::sc_fpregs_offset, gdbarch_tdep::sc_pc_offset, and gdbarch_tdep::sc_regs_offset.
Referenced by alpha_sigtramp_frame_prev_register(), and alpha_sigtramp_frame_this_id().
Definition at line 701 of file alpha-tdep.c.
References alpha_after_prologue(), ALPHA_INSN_SIZE, alpha_read_insn(), max, offset, symtab_and_line::pc, and target_read_memory().
Referenced by alpha_gdbarch_init().
int alpha_software_single_step | ( | struct frame_info * | frame | ) |
Definition at line 1725 of file alpha-tdep.c.
References alpha_next_pc(), get_frame_address_space(), get_frame_arch(), get_frame_pc(), and insert_single_step_breakpoint().
Referenced by alphanbsd_init_abi(), and alphaobsd_init_abi().
|
static |
Definition at line 541 of file alpha-tdep.c.
References _, ALPHA_FP0_REGNUM, alpha_lds(), ALPHA_REGISTER_SIZE, ALPHA_V0_REGNUM, builtin_type::builtin_int32, builtin_type(), error(), get_regcache_arch(), internal_error(), regcache_cooked_write(), regcache_cooked_write_unsigned(), TYPE_CODE, TYPE_CODE_COMPLEX, TYPE_CODE_FLT, TYPE_LENGTH, and unpack_long().
Referenced by alpha_return_value().
Definition at line 215 of file alpha-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), and store_unsigned_integer().
Referenced by alpha_extract_return_value(), and alpha_register_to_value().
void alpha_supply_fp_regs | ( | struct regcache * | regcache, |
int | regno, | ||
const void * | f0_f30, | ||
const void * | fpcr | ||
) |
Definition at line 1542 of file alpha-tdep.c.
References ALPHA_FP0_REGNUM, ALPHA_FPCR_REGNUM, and regcache_raw_supply().
Referenced by alpha_linux_supply_fpregset(), alphabsd_supply_fpreg(), and supply_fpregset().
void alpha_supply_int_regs | ( | struct regcache * | regcache, |
int | regno, | ||
const void * | r0_r30, | ||
const void * | pc, | ||
const void * | unique | ||
) |
Definition at line 1499 of file alpha-tdep.c.
References ALPHA_PC_REGNUM, ALPHA_UNIQUE_REGNUM, ALPHA_ZERO_REGNUM, and regcache_raw_supply().
Referenced by alpha_linux_supply_gregset(), alphabsd_supply_reg(), and supply_gregset().
|
static |
Definition at line 1486 of file alpha-tdep.c.
References ALPHA_PC_REGNUM, and frame_unwind_register_unsigned().
Referenced by alpha_gdbarch_init().
|
static |
Definition at line 264 of file alpha-tdep.c.
References _, alpha_lds(), error(), get_frame_arch(), MAX_REGISTER_SIZE, put_frame_register(), and TYPE_LENGTH.
Referenced by alpha_gdbarch_init().
Definition at line 1591 of file alpha-tdep.c.
Referenced by alpha_next_pc().
Definition at line 1579 of file alpha-tdep.c.
Referenced by alpha_next_pc().
|
static |
Definition at line 1466 of file alpha-tdep.c.
References reinit_frame_cache().
Referenced by _initialize_alpha_tdep().
initialize_file_ftype _initialize_alpha_tdep |
|
static |
Definition at line 1455 of file alpha-tdep.c.
|
static |
Definition at line 1436 of file alpha-tdep.c.
|
static |
Definition at line 1020 of file alpha-tdep.c.
Definition at line 66 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
Definition at line 65 of file alpha-tdep.c.
Referenced by alpha_deal_with_atomic_sequence().
|
static |
Definition at line 1034 of file alpha-tdep.c.
Referenced by _initialize_alpha_tdep(), and alpha_heuristic_proc_start().
Definition at line 59 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
Definition at line 761 of file alpha-tdep.c.
Referenced by alpha_deal_with_atomic_sequence().
Definition at line 762 of file alpha-tdep.c.
Referenced by alpha_deal_with_atomic_sequence().
Definition at line 763 of file alpha-tdep.c.
Referenced by alpha_deal_with_atomic_sequence().
Definition at line 764 of file alpha-tdep.c.
Referenced by alpha_deal_with_atomic_sequence().
Definition at line 60 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
Definition at line 76 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().
Definition at line 75 of file alpha-tdep.c.
Referenced by alpha_heuristic_analyze_probing_loop().