GDB (xrefs)
|
#include "defs.h"
#include "bfd.h"
#include "inferior.h"
#include "regcache.h"
#include "completer.h"
#include "osabi.h"
#include "arch-utils.h"
#include "symtab.h"
#include "dis-asm.h"
#include "trad-frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "gdbcore.h"
#include "gdbcmd.h"
#include "gdbtypes.h"
#include "objfiles.h"
#include "hppa-tdep.h"
#include <algorithm>
Go to the source code of this file.
Classes | |
struct | hppa_unwind_info |
struct | hppa_objfile_private |
struct | hppa_frame_cache |
struct | hppa_stub_unwind_cache |
struct | insn_pattern |
Macros | |
#define | MASK_5 0x1f |
#define | MASK_11 0x7ff |
#define | MASK_14 0x3fff |
#define | MASK_21 0x1fffff |
#define | UNWIND_ENTRY_SIZE 16 |
#define | STUB_UNWIND_ENTRY_SIZE 8 |
#define | pif(FLD) if (u->FLD) gdb_printf (" "#FLD); |
#define | pin(FLD) gdb_printf ("\t"#FLD" = 0x%x\n", u->FLD); |
#define | HPPA_MAX_INSN_PATTERN_LEN 4 |
Functions | |
static int | hppa_sign_extend (unsigned val, unsigned bits) |
static int | hppa_low_hppa_sign_extend (unsigned val, unsigned bits) |
int | hppa_get_field (unsigned word, int from, int to) |
int | hppa_extract_5_load (unsigned word) |
unsigned | hppa_extract_5r_store (unsigned word) |
unsigned | hppa_extract_5R_store (unsigned word) |
int | hppa_extract_14 (unsigned word) |
int | hppa_extract_21 (unsigned word) |
int | hppa_extract_17 (unsigned word) |
CORE_ADDR | hppa_symbol_address (const char *sym) |
static int | compare_unwind_entries (const void *arg1, const void *arg2) |
static void | record_text_segment_lowaddr (bfd *abfd, asection *section, void *data) |
static void | internalize_unwinds (struct objfile *objfile, struct unwind_table_entry *table, asection *section, unsigned int entries, size_t size, CORE_ADDR text_offset) |
static void | read_unwind_info (struct objfile *objfile) |
struct unwind_table_entry * | find_unwind_entry (CORE_ADDR pc) |
static int | hppa_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc) |
typedef | BP_MANIPULATION (hppa_break_insn) |
static const char * | hppa64_register_name (struct gdbarch *gdbarch, int i) |
static int | hppa64_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg) |
static CORE_ADDR | hppa32_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr) |
static int | hppa64_integral_or_pointer_p (const struct type *type) |
static int | hppa64_floating_p (const struct type *type) |
static CORE_ADDR | hppa64_convert_code_addr_to_fptr (struct gdbarch *gdbarch, CORE_ADDR code) |
static CORE_ADDR | hppa64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr) |
static enum return_value_convention | hppa32_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
static enum return_value_convention | hppa64_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
static CORE_ADDR | hppa32_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ) |
static CORE_ADDR | hppa32_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr) |
static CORE_ADDR | hppa64_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr) |
static CORE_ADDR | hppa_read_pc (readable_regcache *regcache) |
void | hppa_write_pc (struct regcache *regcache, CORE_ADDR pc) |
static int | prologue_inst_adjust_sp (unsigned long inst) |
static int | is_branch (unsigned long inst) |
static int | inst_saves_gr (unsigned long inst) |
static int | inst_saves_fr (unsigned long inst) |
static CORE_ADDR | skip_prologue_hard_way (struct gdbarch *gdbarch, CORE_ADDR pc, int stop_before_branch) |
static CORE_ADDR | after_prologue (CORE_ADDR pc) |
static CORE_ADDR | hppa_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static struct unwind_table_entry * | hppa_find_unwind_entry_in_block (frame_info_ptr this_frame) |
static struct hppa_frame_cache * | hppa_frame_cache (frame_info_ptr this_frame, void **this_cache) |
static void | hppa_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static struct value * | hppa_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum) |
static int | hppa_frame_unwind_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache) |
static struct hppa_frame_cache * | hppa_fallback_frame_cache (frame_info_ptr this_frame, void **this_cache) |
static void | hppa_fallback_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static struct value * | hppa_fallback_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum) |
static struct hppa_stub_unwind_cache * | hppa_stub_frame_unwind_cache (frame_info_ptr this_frame, void **this_cache) |
static void | hppa_stub_frame_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id) |
static struct value * | hppa_stub_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum) |
static int | hppa_stub_unwind_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache) |
CORE_ADDR | hppa_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame) |
static void | unwind_command (const char *exp, int from_tty) |
static struct type * | hppa32_register_type (struct gdbarch *gdbarch, int regnum) |
static struct type * | hppa64_register_type (struct gdbarch *gdbarch, int regnum) |
static int | hppa32_cannot_store_register (struct gdbarch *gdbarch, int regnum) |
static int | hppa32_cannot_fetch_register (struct gdbarch *gdbarch, int regnum) |
static int | hppa64_cannot_store_register (struct gdbarch *gdbarch, int regnum) |
static int | hppa64_cannot_fetch_register (struct gdbarch *gdbarch, int regnum) |
static CORE_ADDR | hppa_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr) |
static CORE_ADDR | hppa_fetch_pointer_argument (frame_info_ptr frame, int argi, struct type *type) |
static enum register_status | hppa_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buf) |
static CORE_ADDR | hppa_find_global_pointer (struct gdbarch *gdbarch, struct value *function) |
struct value * | hppa_frame_prev_register_helper (frame_info_ptr this_frame, trad_frame_saved_reg saved_regs[], int regnum) |
static int | hppa_match_insns (struct gdbarch *gdbarch, CORE_ADDR pc, struct insn_pattern *pattern, unsigned int *insn) |
static int | hppa_match_insns_relaxed (struct gdbarch *gdbarch, CORE_ADDR pc, struct insn_pattern *pattern, unsigned int *insn) |
static int | hppa_in_dyncall (CORE_ADDR pc) |
int | hppa_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc) |
CORE_ADDR | hppa_skip_trampoline_code (frame_info_ptr frame, CORE_ADDR pc) |
static struct gdbarch * | hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
static void | hppa_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file) |
void | _initialize_hppa_tdep () |
Variables | |
static bool | hppa_debug = false |
static const int | hppa32_num_regs = 128 |
static const int | hppa64_num_regs = 96 |
static const registry< objfile >::key< hppa_objfile_private > | hppa_objfile_priv_data |
constexpr gdb_byte | hppa_break_insn [] = {0x00, 0x01, 0x00, 0x04} |
static const struct frame_unwind | hppa_frame_unwind |
static const struct frame_unwind | hppa_fallback_frame_unwind |
static const struct frame_unwind | hppa_stub_frame_unwind |
static struct insn_pattern | hppa_long_branch_stub [] |
static struct insn_pattern | hppa_long_branch_pic_stub [] |
static struct insn_pattern | hppa_import_stub [] |
static struct insn_pattern | hppa_import_pic_stub [] |
static struct insn_pattern | hppa_plt_stub [] |
#define HPPA_MAX_INSN_PATTERN_LEN 4 |
Definition at line 2792 of file hppa-tdep.c.
Referenced by hppa_in_solib_call_trampoline(), and hppa_skip_trampoline_code().
#define MASK_11 0x7ff |
Definition at line 92 of file hppa-tdep.c.
#define MASK_14 0x3fff |
Definition at line 93 of file hppa-tdep.c.
Referenced by hppa_extract_14().
#define MASK_21 0x1fffff |
Definition at line 94 of file hppa-tdep.c.
Referenced by hppa_extract_21().
#define MASK_5 0x1f |
Definition at line 91 of file hppa-tdep.c.
Referenced by hppa_extract_5_load(), hppa_extract_5r_store(), and hppa_extract_5R_store().
#define pif | ( | FLD | ) | if (u->FLD) gdb_printf (" "#FLD); |
#define pin | ( | FLD | ) | gdb_printf ("\t"#FLD" = 0x%x\n", u->FLD); |
#define STUB_UNWIND_ENTRY_SIZE 8 |
Definition at line 98 of file hppa-tdep.c.
Referenced by read_unwind_info().
#define UNWIND_ENTRY_SIZE 16 |
Definition at line 97 of file hppa-tdep.c.
Referenced by read_unwind_info().
void _initialize_hppa_tdep | ( | ) |
Definition at line 3124 of file hppa-tdep.c.
References add_cmd(), add_setshow_boolean_cmd(), class_maintenance, gdbarch_register(), hppa_debug, hppa_dump_tdep(), hppa_gdbarch_init(), maintenanceprintlist, setdebuglist, showdebuglist, and unwind_command().
|
static |
Definition at line 1766 of file hppa-tdep.c.
References symtab_and_line::end, find_pc_line(), find_pc_partial_function(), and symtab_and_line::pc.
Referenced by decode_prologue(), and hppa_skip_prologue().
typedef BP_MANIPULATION | ( | hppa_break_insn | ) |
Definition at line 594 of file hppa-tdep.c.
References gdb_static_assert(), and hppa32_num_regs.
|
static |
Definition at line 213 of file hppa-tdep.c.
References unwind_table_entry::region_start.
Referenced by read_unwind_info().
struct unwind_table_entry * find_unwind_entry | ( | CORE_ADDR | pc | ) |
Definition at line 475 of file hppa-tdep.c.
References current_program_space, gdb_printf(), gdb_stdlog, registry< T >::get(), hppa_debug, hppa_objfile_priv_data, program_space::objfiles(), read_unwind_info(), and hppa_objfile_private::unwind_info.
Referenced by hppa_find_unwind_entry_in_block(), hppa_in_dyncall(), hppa_in_solib_call_trampoline(), skip_prologue_hard_way(), and unwind_command().
|
static |
Definition at line 2634 of file hppa-tdep.c.
References hppa32_cannot_store_register(), HPPA_CR26_REGNUM, HPPA_CR27_REGNUM, and regnum.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 2625 of file hppa-tdep.c.
References HPPA_FP4_REGNUM, HPPA_IPSW_REGNUM, HPPA_PCSQ_HEAD_REGNUM, HPPA_PCSQ_TAIL_REGNUM, and regnum.
Referenced by hppa32_cannot_fetch_register(), and hppa_gdbarch_init().
|
static |
Definition at line 1250 of file hppa-tdep.c.
References builtin_type::builtin_func_ptr, builtin_type(), and read_memory_typed_address().
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 1264 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 698 of file hppa-tdep.c.
References check_typedef(), type::code(), value::contents(), regcache::cooked_write(), hppa_gdbarch_tdep::find_global_pointer, gdbarch_byte_order(), gdbarch_push_dummy_code_p(), HPPA_RP_REGNUM, HPPA_SP_REGNUM, type::length(), regcache_cooked_write_unsigned(), return_method_struct, store_unsigned_integer(), value::type(), unpack_long(), and write_memory().
Referenced by hppa_gdbarch_init().
Definition at line 2604 of file hppa-tdep.c.
References builtin_type::builtin_float, builtin_type(), builtin_type::builtin_uint32, HPPA_FP4_REGNUM, and regnum.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 1119 of file hppa-tdep.c.
References type::code(), readable_regcache::cooked_read(), readable_regcache::cooked_read_part(), regcache::cooked_write(), regcache::cooked_write_part(), HPPA_FP4_REGNUM, type::length(), RETURN_VALUE_REGISTER_CONVENTION, and RETURN_VALUE_STRUCT_CONVENTION.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 2653 of file hppa-tdep.c.
References hppa64_cannot_store_register(), HPPA_CR26_REGNUM, HPPA_CR27_REGNUM, and regnum.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 2644 of file hppa-tdep.c.
References HPPA64_FP4_REGNUM, HPPA_IPSW_REGNUM, HPPA_PCSQ_HEAD_REGNUM, HPPA_PCSQ_TAIL_REGNUM, and regnum.
Referenced by hppa64_cannot_fetch_register(), and hppa_gdbarch_init().
|
static |
Definition at line 910 of file hppa-tdep.c.
References obj_section::addr(), code, extract_unsigned_integer(), find_pc_section(), gdbarch_byte_order(), obj_section::objfile, objfile::sections(), target_read_memory(), and obj_section::the_bfd_section.
Referenced by hppa64_push_dummy_call().
|
static |
Definition at line 674 of file hppa-tdep.c.
References HPPA64_FP4_REGNUM.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 890 of file hppa-tdep.c.
References type::code(), and type::length().
Referenced by hppa64_push_dummy_call(), and hppa64_return_value().
|
static |
Definition at line 1274 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 863 of file hppa-tdep.c.
References type::code(), and type::length().
Referenced by hppa64_push_dummy_call(), and hppa64_return_value().
|
static |
Definition at line 949 of file hppa-tdep.c.
References type::code(), value::contents(), regcache::cooked_write_part(), hppa_gdbarch_tdep::find_global_pointer, gdbarch_byte_order(), gdbarch_push_dummy_code_p(), hppa64_convert_code_addr_to_fptr(), hppa64_floating_p(), HPPA64_FP4_REGNUM, hppa64_integral_or_pointer_p(), HPPA_ARG0_REGNUM, HPPA_DP_REGNUM, HPPA_RET0_REGNUM, HPPA_RET1_REGNUM, HPPA_RP_REGNUM, HPPA_SP_REGNUM, type::length(), obj_section::offset(), regcache_cooked_write_unsigned(), regnum, return_method_struct, store_unsigned_integer(), type::target_type(), value::type(), unpack_long(), value_cast(), and write_memory().
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 640 of file hppa-tdep.c.
References gdb_static_assert(), and hppa64_num_regs.
Referenced by hppa_gdbarch_init().
Definition at line 2613 of file hppa-tdep.c.
References builtin_type::builtin_double, builtin_type(), builtin_type::builtin_uint64, HPPA64_FP4_REGNUM, and regnum.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 1157 of file hppa-tdep.c.
References readable_regcache::cooked_read_part(), regcache::cooked_write_part(), hppa64_floating_p(), HPPA64_FP4_REGNUM, hppa64_integral_or_pointer_p(), HPPA_RET0_REGNUM, type::length(), regnum, RETURN_VALUE_REGISTER_CONVENTION, and RETURN_VALUE_STRUCT_CONVENTION.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 2663 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
Definition at line 3113 of file hppa-tdep.c.
References hppa_gdbarch_tdep::bytes_per_address, gdb_printf(), and hppa_gdbarch_tdep::is_elf.
Referenced by _initialize_hppa_tdep().
int hppa_extract_14 | ( | unsigned | word | ) |
Definition at line 156 of file hppa-tdep.c.
References hppa_low_hppa_sign_extend(), and MASK_14.
Referenced by hppa_frame_cache(), hppa_skip_trampoline_code(), hppa_stack_frame_destroyed_p(), and prologue_inst_adjust_sp().
int hppa_extract_17 | ( | unsigned | word | ) |
Definition at line 186 of file hppa-tdep.c.
References hppa_get_field(), and hppa_sign_extend().
int hppa_extract_21 | ( | unsigned | word | ) |
Definition at line 164 of file hppa-tdep.c.
References hppa_get_field(), hppa_sign_extend(), and MASK_21.
Referenced by hppa_skip_trampoline_code(), and prologue_inst_adjust_sp().
int hppa_extract_5_load | ( | unsigned | word | ) |
Definition at line 132 of file hppa-tdep.c.
References hppa_low_hppa_sign_extend(), and MASK_5.
Referenced by prologue_inst_adjust_sp().
unsigned hppa_extract_5r_store | ( | unsigned | word | ) |
unsigned hppa_extract_5R_store | ( | unsigned | word | ) |
Definition at line 148 of file hppa-tdep.c.
References MASK_5.
Referenced by inst_saves_fr(), and inst_saves_gr().
|
static |
Definition at line 2306 of file hppa-tdep.c.
References trad_frame_saved_reg::addr, hppa_frame_cache::base, FRAME_OBSTACK_ZALLOC, frame_relative_level(), gdb_printf(), gdb_stdlog, gdbarch_byte_order(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), hppa_debug, HPPA_PCOQ_HEAD_REGNUM, HPPA_RP_REGNUM, HPPA_SP_REGNUM, trad_frame_saved_reg::is_addr(), prologue_inst_adjust_sp(), read_memory_unsigned_integer(), hppa_frame_cache::saved_regs, trad_frame_saved_reg::set_addr(), trad_frame_saved_reg::set_value(), and trad_frame_alloc_saved_regs().
Referenced by hppa_fallback_frame_prev_register(), and hppa_fallback_frame_this_id().
|
static |
Definition at line 2389 of file hppa-tdep.c.
References hppa_fallback_frame_cache(), hppa_frame_prev_register_helper(), and regnum.
|
static |
Definition at line 2379 of file hppa-tdep.c.
References frame_id_build(), get_frame_func(), and hppa_fallback_frame_cache().
|
static |
Definition at line 2678 of file hppa-tdep.c.
References get_frame_register_unsigned(), and HPPA_R0_REGNUM.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 2703 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 1832 of file hppa-tdep.c.
References find_unwind_entry(), gdbarch_addr_bits_remove(), get_frame_address_in_block(), and get_frame_arch().
Referenced by hppa_frame_cache(), hppa_frame_this_id(), and hppa_frame_unwind_sniffer().
|
static |
Definition at line 1853 of file hppa-tdep.c.
References trad_frame_saved_reg::addr, unwind_table_entry::alloca_frame, hppa_frame_cache::base, unwind_table_entry::Entry_FR, unwind_table_entry::Entry_GR, extract_unsigned_integer(), FRAME_OBSTACK_ZALLOC, frame_relative_level(), gdb_printf(), gdb_stdlog, gdbarch_byte_order(), gdbarch_num_regs(), gdbarch_ptr_bit(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), hppa_debug, hppa_extract_14(), hppa_find_unwind_entry_in_block(), HPPA_FP0_REGNUM, HPPA_FP4_REGNUM, HPPA_FP_REGNUM, hppa_low_hppa_sign_extend(), HPPA_PCOQ_HEAD_REGNUM, HPPA_RP_REGNUM, HPPA_SP_REGNUM, inst_saves_fr(), inst_saves_gr(), trad_frame_saved_reg::is_addr(), is_branch(), unwind_table_entry::Millicode, paddress(), prologue_inst_adjust_sp(), read_memory_integer(), unwind_table_entry::Region_description, unwind_table_entry::region_start, safe_frame_unwind_memory(), unwind_table_entry::Save_RP, unwind_table_entry::Save_SP, hppa_frame_cache::saved_regs, trad_frame_saved_reg::set_addr(), trad_frame_saved_reg::set_value(), skip_prologue_hard_way(), unwind_table_entry::Total_frame_size, trad_frame_alloc_saved_regs(), and hppa_gdbarch_tdep::unwind_adjust_stub.
Referenced by hppa_frame_prev_register(), and hppa_frame_this_id().
|
static |
Definition at line 2267 of file hppa-tdep.c.
References hppa_frame_cache(), hppa_frame_prev_register_helper(), and regnum.
struct value * hppa_frame_prev_register_helper | ( | frame_info_ptr | this_frame, |
trad_frame_saved_reg | saved_regs[], | ||
int | regnum ) |
Definition at line 2709 of file hppa-tdep.c.
References value::contents_all(), extract_unsigned_integer(), frame_unwind_got_constant(), gdbarch_byte_order(), get_frame_arch(), HPPA_PCOQ_HEAD_REGNUM, HPPA_PCOQ_TAIL_REGNUM, register_size(), regnum, size, and trad_frame_get_prev_register().
Referenced by hppa_fallback_frame_prev_register(), hppa_frame_prev_register(), hppa_linux_sigtramp_frame_prev_register(), and hppa_stub_frame_prev_register().
|
static |
Definition at line 2254 of file hppa-tdep.c.
References frame_id_build(), hppa_find_unwind_entry_in_block(), hppa_frame_cache(), and unwind_table_entry::region_start.
|
static |
Definition at line 2277 of file hppa-tdep.c.
References hppa_find_unwind_entry_in_block().
|
static |
Definition at line 2982 of file hppa-tdep.c.
References arches, hppa_gdbarch_tdep::bytes_per_address, core_addr_greaterthan(), hppa_gdbarch_tdep::find_global_pointer, floatformats_ieee_quad, frame_unwind_append_unwinder(), gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), hppa32_cannot_fetch_register(), hppa32_cannot_store_register(), hppa32_convert_from_func_ptr_addr(), hppa32_frame_align(), hppa32_num_regs, hppa32_push_dummy_call(), hppa32_register_type(), hppa32_return_value(), hppa64_cannot_fetch_register(), hppa64_cannot_store_register(), hppa64_dwarf_reg_to_regnum(), hppa64_frame_align(), hppa64_num_regs, hppa64_push_dummy_call(), hppa64_register_name(), hppa64_register_type(), hppa64_return_value(), hppa_addr_bits_remove(), hppa_fallback_frame_unwind, hppa_fetch_pointer_argument(), hppa_find_global_pointer(), HPPA_FP0_REGNUM, hppa_frame_unwind, hppa_pseudo_register_read(), hppa_read_pc(), hppa_skip_prologue(), HPPA_SP_REGNUM, hppa_stack_frame_destroyed_p(), hppa_stub_frame_unwind, hppa_unwind_pc(), hppa_write_pc(), gdbarch::info(), set_gdbarch_addr_bits_remove(), set_gdbarch_believe_pcc_promotion(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_cannot_fetch_register(), set_gdbarch_cannot_store_register(), set_gdbarch_convert_from_func_ptr_addr(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_fetch_pointer_argument(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_have_nonsteppable_watchpoint(), set_gdbarch_inner_than(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_long_long_bit(), set_gdbarch_num_regs(), set_gdbarch_pseudo_register_read(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_read_pc(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_stack_frame_destroyed_p(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), and set_gdbarch_write_pc().
Referenced by _initialize_hppa_tdep().
int hppa_get_field | ( | unsigned | word, |
int | from, | ||
int | to ) |
Definition at line 124 of file hppa-tdep.c.
Referenced by hppa_extract_17(), and hppa_extract_21().
|
static |
Definition at line 2847 of file hppa-tdep.c.
References find_unwind_entry(), hppa_symbol_address(), unwind_table_entry::region_end, and unwind_table_entry::region_start.
Referenced by hppa_in_solib_call_trampoline(), and hppa_skip_trampoline_code().
int hppa_in_solib_call_trampoline | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc ) |
Definition at line 2859 of file hppa-tdep.c.
References find_unwind_entry(), hppa_import_pic_stub, hppa_import_stub, hppa_in_dyncall(), hppa_long_branch_pic_stub, hppa_long_branch_stub, hppa_match_insns_relaxed(), HPPA_MAX_INSN_PATTERN_LEN, and in_plt_section().
Referenced by hppa_linux_init_abi(), and hppabsd_init_abi().
|
static |
Definition at line 115 of file hppa-tdep.c.
References bits.
Referenced by hppa_extract_14(), hppa_extract_5_load(), and hppa_frame_cache().
|
static |
Definition at line 2803 of file hppa-tdep.c.
References insn_pattern::data, extract_unsigned_integer(), gdbarch_byte_order(), HPPA_INSN_SIZE, insn_pattern::mask, and target_read_memory().
Referenced by hppa_match_insns_relaxed(), and hppa_skip_trampoline_code().
|
static |
Definition at line 2830 of file hppa-tdep.c.
References HPPA_INSN_SIZE, hppa_match_insns(), and insn_pattern::mask.
Referenced by hppa_in_solib_call_trampoline().
|
static |
Definition at line 2685 of file hppa-tdep.c.
References gdbarch_byte_order(), HPPA_PCOQ_HEAD_REGNUM, HPPA_PCOQ_TAIL_REGNUM, readable_regcache::raw_read(), regnum, status, and store_unsigned_integer().
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 1281 of file hppa-tdep.c.
References readable_regcache::cooked_read(), HPPA_IPSW_REGNUM, and HPPA_PCOQ_HEAD_REGNUM.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 107 of file hppa-tdep.c.
References bits.
Referenced by hppa_extract_17(), and hppa_extract_21().
|
static |
Definition at line 1807 of file hppa-tdep.c.
References after_prologue(), symtab_and_line::pc, and skip_prologue_hard_way().
Referenced by hppa_gdbarch_init().
CORE_ADDR hppa_skip_trampoline_code | ( | frame_info_ptr | frame, |
CORE_ADDR | pc ) |
Definition at line 2887 of file hppa-tdep.c.
References builtin_type::builtin_func_ptr, builtin_type(), get_frame_arch(), get_frame_register_unsigned(), HPPA_DP_REGNUM, hppa_extract_14(), hppa_extract_21(), hppa_import_pic_stub, hppa_import_stub, hppa_in_dyncall(), hppa_match_insns(), HPPA_MAX_INSN_PATTERN_LEN, hppa_plt_stub, HPPA_R0_REGNUM, in_plt_section(), paddress(), and read_memory_typed_address().
Referenced by hppa_linux_init_abi(), and hppabsd_init_abi().
|
static |
Definition at line 560 of file hppa-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), hppa_extract_14(), status, and target_read_memory().
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 2451 of file hppa-tdep.c.
References hppa_frame_prev_register_helper(), hppa_stub_frame_unwind_cache(), and regnum.
|
static |
Definition at line 2439 of file hppa-tdep.c.
References frame_id_build(), get_frame_func(), and hppa_stub_frame_unwind_cache().
|
static |
Definition at line 2418 of file hppa-tdep.c.
References FRAME_OBSTACK_ZALLOC, get_frame_register_unsigned(), HPPA_PCOQ_HEAD_REGNUM, HPPA_RP_REGNUM, HPPA_SP_REGNUM, and trad_frame_alloc_saved_regs().
Referenced by hppa_stub_frame_prev_register(), and hppa_stub_frame_this_id().
|
static |
Definition at line 2465 of file hppa-tdep.c.
References gdbarch_in_solib_return_trampoline(), get_frame_address_in_block(), get_frame_arch(), and hppa_gdbarch_tdep::in_solib_call_trampoline.
CORE_ADDR hppa_symbol_address | ( | const char * | sym | ) |
Definition at line 195 of file hppa-tdep.c.
References lookup_minimal_symbol(), bound_minimal_symbol::minsym, and minimal_symbol::value_address().
Referenced by hppa_in_dyncall().
CORE_ADDR hppa_unwind_pc | ( | struct gdbarch * | gdbarch, |
frame_info_ptr | next_frame ) |
Definition at line 2492 of file hppa-tdep.c.
References frame_unwind_register_unsigned(), HPPA_IPSW_REGNUM, and HPPA_PCOQ_HEAD_REGNUM.
Referenced by hppa_gdbarch_init().
void hppa_write_pc | ( | struct regcache * | regcache, |
CORE_ADDR | pc ) |
Definition at line 1301 of file hppa-tdep.c.
References HPPA_PCOQ_HEAD_REGNUM, HPPA_PCOQ_TAIL_REGNUM, and regcache_cooked_write_unsigned().
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 1493 of file hppa-tdep.c.
References hppa_extract_5r_store(), and hppa_extract_5R_store().
Referenced by hppa_frame_cache(), and skip_prologue_hard_way().
|
static |
Definition at line 1452 of file hppa-tdep.c.
References hppa_extract_5R_store().
Referenced by hppa_frame_cache(), and skip_prologue_hard_way().
|
static |
Definition at line 241 of file hppa-tdep.c.
References unwind_table_entry::alloca_frame, objfile::arch(), unwind_table_entry::Args_stored, unwind_table_entry::Cannot_unwind, unwind_table_entry::Cleanup_defined, unwind_table_entry::cxx_info, unwind_table_entry::cxx_try_catch, unwind_table_entry::Entry_FR, unwind_table_entry::Entry_GR, unwind_table_entry::Entry_SR, unwind_table_entry::Frame_Extension_Millicode, unwind_table_entry::HP_UX_interrupt_marker, hppa_gdbarch_tdep::is_elf, unwind_table_entry::Large_frame, unwind_table_entry::Millicode, unwind_table_entry::Millicode_save_sr0, unwind_table_entry::MPE_XL_interrupt_marker, objfile::obfd, unwind_table_entry::padding, record_text_segment_lowaddr(), unwind_table_entry::Region_description, unwind_table_entry::region_end, unwind_table_entry::region_start, unwind_table_entry::reserved, unwind_table_entry::reserved1, unwind_table_entry::reserved2, unwind_table_entry::Save_MRP_in_frame, unwind_table_entry::save_r19, unwind_table_entry::Save_RP, unwind_table_entry::Save_SP, unwind_table_entry::sched_entry_seq, unwind_table_entry::Separate_Package_Body, size, hppa_gdbarch_tdep::solib_get_text_base, unwind_table_entry::sr4export, unwind_table_entry::Stack_Overflow_Check, unwind_table_entry::stub_type, unwind_table_entry::stub_unwind, unwind_table_entry::Total_frame_size, unwind_table_entry::Two_Instruction_SP_Increment, and unwind_table_entry::Variable_Frame.
Referenced by read_unwind_info().
|
static |
Definition at line 1352 of file hppa-tdep.c.
Referenced by hppa_frame_cache(), micromips_deal_with_atomic_sequence(), mips_deal_with_atomic_sequence(), and skip_prologue_hard_way().
|
static |
Definition at line 1313 of file hppa-tdep.c.
References hppa_extract_14(), hppa_extract_21(), and hppa_extract_5_load().
Referenced by hppa_fallback_frame_cache(), hppa_frame_cache(), and skip_prologue_hard_way().
|
static |
Definition at line 340 of file hppa-tdep.c.
References compare_unwind_entries(), registry< T >::get(), hppa_objfile_priv_data, internalize_unwinds(), objfile::obfd, objfile::objfile_obstack, qsort, STUB_UNWIND_ENTRY_SIZE, objfile::text_section_offset(), UNWIND_ENTRY_SIZE, and hppa_objfile_private::unwind_info.
Referenced by find_unwind_entry().
|
static |
|
static |
Definition at line 1516 of file hppa-tdep.c.
References unwind_table_entry::Entry_FR, unwind_table_entry::Entry_GR, extract_unsigned_integer(), find_unwind_entry(), gdbarch_byte_order(), gdbarch_ptr_bit(), HPPA_FP_REGNUM, inst_saves_fr(), inst_saves_gr(), is_branch(), prologue_inst_adjust_sp(), unwind_table_entry::region_start, unwind_table_entry::Save_RP, unwind_table_entry::Save_SP, status, target_read_memory(), and unwind_table_entry::Total_frame_size.
Referenced by hppa_frame_cache(), and hppa_skip_prologue().
|
static |
Definition at line 2512 of file hppa-tdep.c.
References unwind_table_entry::alloca_frame, unwind_table_entry::Args_stored, unwind_table_entry::Cannot_unwind, unwind_table_entry::Cleanup_defined, unwind_table_entry::cxx_info, unwind_table_entry::cxx_try_catch, unwind_table_entry::Entry_FR, unwind_table_entry::Entry_GR, unwind_table_entry::Entry_SR, EXPORT, find_unwind_entry(), unwind_table_entry::Frame_Extension_Millicode, gdb_printf(), gdb_putc(), unwind_table_entry::HP_UX_interrupt_marker, IMPORT, IMPORT_SHLIB, unwind_table_entry::Large_frame, LONG_BRANCH, unwind_table_entry::Millicode, unwind_table_entry::Millicode_save_sr0, unwind_table_entry::MPE_XL_interrupt_marker, PARAMETER_RELOCATION, parse_and_eval_address(), pif, pin, unwind_table_entry::Region_description, unwind_table_entry::region_end, unwind_table_entry::region_start, unwind_table_entry::Save_MRP_in_frame, unwind_table_entry::save_r19, unwind_table_entry::Save_RP, unwind_table_entry::Save_SP, unwind_table_entry::sched_entry_seq, unwind_table_entry::Separate_Package_Body, unwind_table_entry::sr4export, unwind_table_entry::Stack_Overflow_Check, unwind_table_entry::stub_type, unwind_table_entry::stub_unwind, unwind_table_entry::Total_frame_size, unwind_table_entry::Two_Instruction_SP_Increment, and unwind_table_entry::Variable_Frame.
Referenced by _initialize_hppa_tdep().
|
static |
Definition at line 47 of file hppa-tdep.c.
Referenced by BP_MANIPULATION(), and hppa_gdbarch_init().
|
static |
Definition at line 48 of file hppa-tdep.c.
Referenced by hppa64_register_name(), and hppa_gdbarch_init().
|
constexpr |
Definition at line 592 of file hppa-tdep.c.
|
static |
Definition at line 44 of file hppa-tdep.c.
Referenced by _initialize_hppa_tdep(), find_unwind_entry(), hppa_fallback_frame_cache(), and hppa_frame_cache().
|
static |
Definition at line 2399 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 2286 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
|
static |
Definition at line 2771 of file hppa-tdep.c.
Referenced by hppa_in_solib_call_trampoline(), and hppa_skip_trampoline_code().
|
static |
Definition at line 2759 of file hppa-tdep.c.
Referenced by hppa_in_solib_call_trampoline(), and hppa_skip_trampoline_code().
|
static |
Definition at line 2749 of file hppa-tdep.c.
Referenced by hppa_in_solib_call_trampoline().
|
static |
Definition at line 2741 of file hppa-tdep.c.
Referenced by hppa_in_solib_call_trampoline().
|
static |
Definition at line 88 of file hppa-tdep.c.
Referenced by find_unwind_entry(), and read_unwind_info().
|
static |
Definition at line 2783 of file hppa-tdep.c.
Referenced by hppa_skip_trampoline_code().
|
static |
Definition at line 2481 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().