GDB (xrefs)
|
#include "defs.h"
#include "bfd.h"
#include "inferior.h"
#include "regcache.h"
#include "completer.h"
#include "osabi.h"
#include "gdb_assert.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"
Go to the source code of this file.
#define HPPA_MAX_INSN_PATTERN_LEN 4 |
Definition at line 2791 of file hppa-tdep.c.
Referenced by hppa_in_solib_call_trampoline(), and hppa_skip_trampoline_code().
#define MASK_11 0x7ff |
Definition at line 60 of file hppa-tdep.c.
#define MASK_14 0x3fff |
Definition at line 61 of file hppa-tdep.c.
Referenced by hppa_extract_14().
#define MASK_21 0x1fffff |
Definition at line 62 of file hppa-tdep.c.
Referenced by hppa_extract_21().
#define MASK_5 0x1f |
Definition at line 59 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) printf_unfiltered (" "#FLD); |
Referenced by unwind_command().
#define pin | ( | FLD | ) | printf_unfiltered ("\t"#FLD" = 0x%x\n", u->FLD); |
Referenced by unwind_command().
#define STUB_UNWIND_ENTRY_SIZE 8 |
Definition at line 66 of file hppa-tdep.c.
Referenced by read_unwind_info().
#define UNWIND_ENTRY_SIZE 16 |
Definition at line 65 of file hppa-tdep.c.
Referenced by read_unwind_info().
void _initialize_hppa_tdep | ( | void | ) |
Definition at line 3137 of file hppa-tdep.c.
References _, add_cmd(), add_setshow_boolean_cmd(), class_maintenance, gdbarch_register(), hppa_debug, hppa_dump_tdep(), hppa_gdbarch_init(), hppa_objfile_priv_data, maintenanceprintlist, setdebuglist, showdebuglist, and unwind_command().
static CORE_ADDR after_prologue | ( | CORE_ADDR | pc | ) | [static] |
Definition at line 1695 of file hppa-tdep.c.
References symtab_and_line::end, find_pc_line(), and find_pc_partial_function().
Referenced by decode_prologue(), and hppa_skip_prologue().
static int compare_unwind_entries | ( | const void * | arg1, |
const void * | arg2 | ||
) | [static] |
Definition at line 194 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 | ) | [read] |
Definition at line 455 of file hppa-tdep.c.
References _, ALL_OBJFILES, hppa_unwind_info::cache, error(), fprintf_unfiltered(), gdb_stdlog, hex_string(), hppa_debug, hppa_objfile_priv_data, hppa_unwind_info::last, read_unwind_info(), unwind_table_entry::region_start, and hppa_unwind_info::table.
Referenced by hppa32_hpux_in_solib_call_trampoline(), hppa32_hpux_search_dummy_call_sequence(), hppa_find_unwind_entry_in_block(), hppa_hpux_find_dummy_bpaddr(), hppa_hpux_find_import_stub_for_addr(), hppa_hpux_in_solib_return_trampoline(), hppa_hpux_sigtramp_unwind_sniffer(), hppa_hpux_skip_trampoline_code(), hppa_hpux_unwind_adjust_stub(), hppa_in_dyncall(), hppa_in_solib_call_trampoline(), hppa_lookup_stub_minimal_symbol(), hppa_stub_frame_unwind_cache(), skip_prologue_hard_way(), som_in_dynsym_resolve_code(), som_solib_desire_dynamic_linker_symbols(), and unwind_command().
static int hppa32_cannot_fetch_register | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 2613 of file hppa-tdep.c.
References hppa32_cannot_store_register(), HPPA_CR26_REGNUM, and HPPA_CR27_REGNUM.
Referenced by hppa_gdbarch_init().
static int hppa32_cannot_store_register | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 2604 of file hppa-tdep.c.
References HPPA_FP4_REGNUM, HPPA_IPSW_REGNUM, HPPA_PCSQ_HEAD_REGNUM, and HPPA_PCSQ_TAIL_REGNUM.
Referenced by hppa32_cannot_fetch_register(), and hppa_gdbarch_init().
static CORE_ADDR hppa32_convert_from_func_ptr_addr | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | addr, | ||
struct target_ops * | targ | ||
) | [static] |
Definition at line 1248 of file hppa-tdep.c.
References builtin_type::builtin_func_ptr, builtin_type(), and read_memory_typed_address().
Referenced by hppa_gdbarch_init().
static CORE_ADDR hppa32_frame_align | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | addr | ||
) | [static] |
Definition at line 1262 of file hppa-tdep.c.
References align_up().
Referenced by hppa_gdbarch_init().
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, | ||
int | struct_return, | ||
CORE_ADDR | struct_addr | ||
) | [static] |
Definition at line 686 of file hppa-tdep.c.
References align_up(), check_typedef(), gdbarch_tdep::find_global_pointer, gdbarch_byte_order(), gdbarch_push_dummy_code_p(), gdbarch_tdep(), HPPA_RP_REGNUM, HPPA_SP_REGNUM, memcpy(), memset(), regcache_cooked_write(), regcache_cooked_write_unsigned(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_ENUM, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_LENGTH, unpack_long(), value_contents(), value_type(), and write_memory().
Referenced by hppa_gdbarch_init().
static const char* hppa32_register_name | ( | struct gdbarch * | gdbarch, |
int | i | ||
) | [static] |
Definition at line 582 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
static struct type* hppa32_register_type | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static, read] |
Definition at line 2583 of file hppa-tdep.c.
References builtin_type::builtin_float, builtin_type(), builtin_type::builtin_uint32, and HPPA_FP4_REGNUM.
Referenced by hppa_gdbarch_init().
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] |
Definition at line 1115 of file hppa-tdep.c.
References HPPA_FP4_REGNUM, regcache_cooked_read(), regcache_cooked_read_part(), regcache_cooked_write(), regcache_cooked_write_part(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, TYPE_CODE, TYPE_CODE_FLT, and TYPE_LENGTH.
Referenced by hppa_gdbarch_init().
static int hppa64_cannot_fetch_register | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 2632 of file hppa-tdep.c.
References hppa64_cannot_store_register(), HPPA_CR26_REGNUM, and HPPA_CR27_REGNUM.
Referenced by hppa_gdbarch_init().
static int hppa64_cannot_store_register | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 2623 of file hppa-tdep.c.
References HPPA64_FP4_REGNUM, HPPA_IPSW_REGNUM, HPPA_PCSQ_HEAD_REGNUM, and HPPA_PCSQ_TAIL_REGNUM.
Referenced by hppa64_cannot_fetch_register(), and hppa_gdbarch_init().
static CORE_ADDR hppa64_convert_code_addr_to_fptr | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | code | ||
) | [static] |
Definition at line 902 of file hppa-tdep.c.
References ALL_OBJFILE_OSECTIONS, code, extract_unsigned_integer(), find_pc_section(), gdbarch_byte_order(), obj_section_addr, obj_section_endaddr, obj_section::objfile, objfile::sections_end, target_read_memory(), obj_section::the_bfd_section, and ULONGEST.
Referenced by hppa64_push_dummy_call().
static int hppa64_dwarf_reg_to_regnum | ( | struct gdbarch * | gdbarch, |
int | reg | ||
) | [static] |
Definition at line 661 of file hppa-tdep.c.
References _, HPPA64_FP4_REGNUM, and warning().
Referenced by hppa_gdbarch_init().
static int hppa64_floating_p | ( | const struct type * | type | ) | [static] |
Definition at line 882 of file hppa-tdep.c.
References len, TYPE_CODE, TYPE_CODE_FLT, and TYPE_LENGTH.
Referenced by hppa64_push_dummy_call(), and hppa64_return_value().
static CORE_ADDR hppa64_frame_align | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | addr | ||
) | [static] |
Definition at line 1272 of file hppa-tdep.c.
References align_up().
Referenced by hppa_gdbarch_init().
static int hppa64_integral_or_pointer_p | ( | const struct type * | type | ) | [static] |
Definition at line 856 of file hppa-tdep.c.
References len, TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_ENUM, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_CODE_RANGE, TYPE_CODE_REF, and TYPE_LENGTH.
Referenced by hppa64_push_dummy_call(), and hppa64_return_value().
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, | ||
int | struct_return, | ||
CORE_ADDR | struct_addr | ||
) | [static] |
Definition at line 946 of file hppa-tdep.c.
References align_up(), gdbarch_tdep::find_global_pointer, gdbarch_byte_order(), gdbarch_push_dummy_code_p(), gdbarch_tdep(), 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, len, max, min, offset, regcache_cooked_write_part(), regcache_cooked_write_unsigned(), regnum, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_PTR, TYPE_LENGTH, TYPE_TARGET_TYPE, ULONGEST, unpack_long(), value_cast(), value_contents(), value_type(), and write_memory().
Referenced by hppa_gdbarch_init().
static const char* hppa64_register_name | ( | struct gdbarch * | gdbarch, |
int | i | ||
) | [static] |
Definition at line 625 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
static struct type* hppa64_register_type | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static, read] |
Definition at line 2592 of file hppa-tdep.c.
References builtin_type::builtin_double, builtin_type(), builtin_type::builtin_uint64, and HPPA64_FP4_REGNUM.
Referenced by hppa_gdbarch_init().
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] |
Definition at line 1155 of file hppa-tdep.c.
References gdb_assert, hppa64_floating_p(), HPPA64_FP4_REGNUM, hppa64_integral_or_pointer_p(), HPPA_RET0_REGNUM, len, min, offset, regcache_cooked_read_part(), regcache_cooked_write_part(), regnum, RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, and TYPE_LENGTH.
Referenced by hppa_gdbarch_init().
static CORE_ADDR hppa_addr_bits_remove | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | addr | ||
) | [static] |
Definition at line 2642 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
static const unsigned char* hppa_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pc, | ||
int * | len | ||
) | [static] |
Definition at line 572 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
static struct frame_id hppa_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 2436 of file hppa-tdep.c.
References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), and HPPA_SP_REGNUM.
Referenced by hppa_gdbarch_init().
static void hppa_dump_tdep | ( | struct gdbarch * | gdbarch, |
struct ui_file * | file | ||
) | [static] |
Definition at line 3124 of file hppa-tdep.c.
References gdbarch_tdep::bytes_per_address, fprintf_unfiltered(), gdbarch_tdep(), and gdbarch_tdep::is_elf.
Referenced by _initialize_hppa_tdep().
int hppa_extract_14 | ( | unsigned | word | ) |
Definition at line 124 of file hppa-tdep.c.
References hppa_low_hppa_sign_extend(), and MASK_14.
Referenced by hppa_frame_cache(), hppa_in_function_epilogue_p(), hppa_skip_trampoline_code(), and prologue_inst_adjust_sp().
int hppa_extract_17 | ( | unsigned | word | ) |
Definition at line 154 of file hppa-tdep.c.
References hppa_get_field(), and hppa_sign_extend().
Referenced by hppa_hpux_sigtramp_unwind_sniffer(), and hppa_hpux_skip_trampoline_code().
int hppa_extract_21 | ( | unsigned | word | ) |
Definition at line 132 of file hppa-tdep.c.
References hppa_get_field(), hppa_sign_extend(), and MASK_21.
Referenced by hppa_hpux_skip_trampoline_code(), hppa_skip_trampoline_code(), and prologue_inst_adjust_sp().
int hppa_extract_5_load | ( | unsigned | word | ) |
Definition at line 100 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 116 of file hppa-tdep.c.
References MASK_5.
Referenced by inst_saves_fr(), and inst_saves_gr().
static struct hppa_frame_cache* hppa_fallback_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 2236 of file hppa-tdep.c.
References trad_frame_saved_reg::addr, hppa_frame_cache::base, gdbarch::byte_order, fprintf_unfiltered(), FRAME_OBSTACK_ZALLOC, frame_relative_level(), 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, prologue_inst_adjust_sp(), read_memory_unsigned_integer(), hppa_frame_cache::saved_regs, trad_frame_addr_p(), trad_frame_alloc_saved_regs(), trad_frame_set_value(), and ULONGEST.
Referenced by hppa_fallback_frame_prev_register(), and hppa_fallback_frame_this_id().
static struct value* hppa_fallback_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 2318 of file hppa-tdep.c.
References hppa_fallback_frame_cache(), hppa_frame_prev_register_helper(), and hppa_frame_cache::saved_regs.
static void hppa_fallback_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 2308 of file hppa-tdep.c.
References hppa_frame_cache::base, frame_id_build(), get_frame_func(), and hppa_fallback_frame_cache().
static CORE_ADDR hppa_fetch_pointer_argument | ( | struct frame_info * | frame, |
int | argi, | ||
struct type * | type | ||
) | [static] |
Definition at line 2657 of file hppa-tdep.c.
References get_frame_register_unsigned(), and HPPA_R0_REGNUM.
Referenced by hppa_gdbarch_init().
static CORE_ADDR hppa_find_global_pointer | ( | struct gdbarch * | gdbarch, |
struct value * | function | ||
) | [static] |
Definition at line 2682 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
static struct unwind_table_entry* hppa_find_unwind_entry_in_block | ( | struct frame_info * | this_frame | ) | [static, read] |
Definition at line 1761 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 struct hppa_frame_cache* hppa_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 1782 of file hppa-tdep.c.
References _, trad_frame_saved_reg::addr, gdbarch::byte_order, unwind_table_entry::Entry_FR, unwind_table_entry::Entry_GR, error(), extract_unsigned_integer(), fprintf_unfiltered(), FRAME_OBSTACK_ZALLOC, frame_relative_level(), gdb_stdlog, gdbarch_byte_order(), gdbarch_ptr_bit(), get_frame_arch(), get_frame_func(), get_frame_pc(), 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_RP_REGNUM, inst_saves_fr(), inst_saves_gr(), is_branch(), offset, paddress(), prologue_inst_adjust_sp(), 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, skip_prologue_hard_way(), unwind_table_entry::Total_frame_size, and trad_frame_alloc_saved_regs().
Referenced by hppa_frame_prev_register(), and hppa_frame_this_id().
static struct value* hppa_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 2198 of file hppa-tdep.c.
References hppa_frame_cache(), hppa_frame_prev_register_helper(), and hppa_frame_cache::saved_regs.
struct value* hppa_frame_prev_register_helper | ( | struct frame_info * | this_frame, |
struct trad_frame_saved_reg | saved_regs[], | ||
int | regnum | ||
) | [read] |
Definition at line 2688 of file hppa-tdep.c.
References gdbarch::byte_order, extract_unsigned_integer(), frame_unwind_got_constant(), gdbarch_byte_order(), get_frame_arch(), HPPA_FLAGS_REGNUM, HPPA_PCOQ_HEAD_REGNUM, HPPA_PCOQ_TAIL_REGNUM, register_size(), size, trad_frame_get_prev_register(), and value_contents_all().
Referenced by hppa_fallback_frame_prev_register(), hppa_frame_prev_register(), hppa_hpux_sigtramp_frame_prev_register(), hppa_linux_sigtramp_frame_prev_register(), and hppa_stub_frame_prev_register().
static void hppa_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 2184 of file hppa-tdep.c.
References hppa_frame_cache::base, frame_id_build(), get_frame_pc(), hppa_find_unwind_entry_in_block(), hppa_frame_cache(), and unwind_table_entry::region_start.
static int hppa_frame_unwind_sniffer | ( | const struct frame_unwind * | self, |
struct frame_info * | this_frame, | ||
void ** | this_cache | ||
) | [static] |
Definition at line 2208 of file hppa-tdep.c.
References hppa_find_unwind_entry_in_block().
static struct gdbarch* hppa_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 2981 of file hppa-tdep.c.
References _, gdbarch_info::abfd, gdbarch_info::bfd_arch_info, gdbarch_tdep::bytes_per_address, core_addr_greaterthan(), gdbarch_tdep::find_global_pointer, floatformats_ia64_quad, frame_unwind_append_unwinder(), GDB_OSABI_HPUX_SOM, GDB_OSABI_UNKNOWN, gdbarch_list::gdbarch, 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_name(), 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_breakpoint_from_pc(), hppa_dummy_id(), hppa_fetch_pointer_argument(), hppa_find_global_pointer(), HPPA_FP0_REGNUM, hppa_in_function_epilogue_p(), hppa_pseudo_register_read(), hppa_read_pc(), hppa_skip_prologue(), HPPA_SP_REGNUM, hppa_unwind_pc(), hppa_write_pc(), internal_error(), gdbarch_info::osabi, set_gdbarch_addr_bits_remove(), set_gdbarch_believe_pcc_promotion(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_cannot_fetch_register(), set_gdbarch_cannot_store_register(), set_gdbarch_convert_from_func_ptr_addr(), set_gdbarch_dummy_id(), 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_in_function_epilogue_p(), 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_print_insn(), 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_unwind_pc(), set_gdbarch_write_pc(), and XZALLOC.
Referenced by _initialize_hppa_tdep().
int hppa_get_field | ( | unsigned | word, |
int | from, | ||
int | to | ||
) |
Definition at line 92 of file hppa-tdep.c.
Referenced by hppa_extract_17(), and hppa_extract_21().
static int hppa_in_dyncall | ( | CORE_ADDR | pc | ) | [static] |
Definition at line 2846 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().
static int hppa_in_function_epilogue_p | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 539 of file hppa-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), hppa_extract_14(), exsummary::status, and target_read_memory().
Referenced by hppa_gdbarch_init().
int hppa_in_solib_call_trampoline | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) |
Definition at line 2858 of file hppa-tdep.c.
References find_unwind_entry(), hppa_in_dyncall(), hppa_match_insns_relaxed(), HPPA_MAX_INSN_PATTERN_LEN, and in_plt_section().
Referenced by hppa_linux_init_abi(), and hppabsd_init_abi().
struct hppa_objfile_private* hppa_init_objfile_priv_data | ( | struct objfile * | objfile | ) | [read] |
Definition at line 175 of file hppa-tdep.c.
References hppa_objfile_priv_data, memset(), and objfile::objfile_obstack.
Referenced by hppa32_hpux_search_dummy_call_sequence(), hppa64_hpux_search_dummy_call_sequence(), and read_unwind_info().
struct minimal_symbol* hppa_lookup_stub_minimal_symbol | ( | const char * | name, |
enum unwind_stub_types | stub_type | ||
) | [read] |
Definition at line 2467 of file hppa-tdep.c.
References ALL_MSYMBOLS, find_unwind_entry(), unwind_table_entry::stub_type, unwind_table_entry::stub_unwind, SYMBOL_LINKAGE_NAME, and SYMBOL_VALUE.
Referenced by som_solib_create_inferior_hook().
static int hppa_low_hppa_sign_extend | ( | unsigned | val, |
unsigned | bits | ||
) | [static] |
Definition at line 83 of file hppa-tdep.c.
Referenced by hppa_extract_14(), hppa_extract_5_load(), and hppa_frame_cache().
static int hppa_match_insns | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
struct insn_pattern * | pattern, | ||
unsigned int * | insn | ||
) | [static] |
Definition at line 2802 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 int hppa_match_insns_relaxed | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
struct insn_pattern * | pattern, | ||
unsigned int * | insn | ||
) | [static] |
Definition at line 2829 of file hppa-tdep.c.
References HPPA_INSN_SIZE, hppa_match_insns(), len, insn_pattern::mask, and offset.
Referenced by hppa_in_solib_call_trampoline().
static enum register_status hppa_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | regnum, | ||
gdb_byte * | buf | ||
) | [static] |
Definition at line 2664 of file hppa-tdep.c.
References gdbarch_byte_order(), HPPA_PCOQ_HEAD_REGNUM, HPPA_PCOQ_TAIL_REGNUM, REG_VALID, regcache_raw_read_unsigned(), exsummary::status, store_unsigned_integer(), and ULONGEST.
Referenced by hppa_gdbarch_init().
CORE_ADDR hppa_read_pc | ( | struct regcache * | regcache | ) |
Definition at line 1279 of file hppa-tdep.c.
References HPPA_IPSW_REGNUM, HPPA_PCOQ_HEAD_REGNUM, regcache_cooked_read_unsigned(), and ULONGEST.
Referenced by hppa_gdbarch_init(), and hppa_hpux_read_pc().
static int hppa_sign_extend | ( | unsigned | val, |
unsigned | bits | ||
) | [static] |
Definition at line 75 of file hppa-tdep.c.
Referenced by hppa_extract_17(), and hppa_extract_21().
static CORE_ADDR hppa_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 1736 of file hppa-tdep.c.
References after_prologue(), max, and skip_prologue_hard_way().
Referenced by hppa_gdbarch_init().
CORE_ADDR hppa_skip_trampoline_code | ( | struct frame_info * | frame, |
CORE_ADDR | pc | ||
) |
Definition at line 2886 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_in_dyncall(), hppa_match_insns(), HPPA_MAX_INSN_PATTERN_LEN, HPPA_R0_REGNUM, in_plt_section(), paddress(), read_memory_typed_address(), and warning().
Referenced by hppa_linux_init_abi(), and hppabsd_init_abi().
static struct value* hppa_stub_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 2396 of file hppa-tdep.c.
References _, error(), hppa_frame_prev_register_helper(), hppa_stub_frame_unwind_cache(), and hppa_stub_unwind_cache::saved_regs.
static void hppa_stub_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 2384 of file hppa-tdep.c.
References hppa_stub_unwind_cache::base, frame_id_build(), get_frame_func(), and hppa_stub_frame_unwind_cache().
static struct hppa_stub_unwind_cache* hppa_stub_frame_unwind_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 2346 of file hppa-tdep.c.
References trad_frame_saved_reg::addr, hppa_stub_unwind_cache::base, EXPORT, find_unwind_entry(), FRAME_OBSTACK_ZALLOC, GDB_OSABI_HPUX_SOM, gdbarch_osabi(), get_frame_arch(), get_frame_pc(), get_frame_register_unsigned(), HPPA_PCOQ_HEAD_REGNUM, HPPA_RP_REGNUM, HPPA_SP_REGNUM, trad_frame_saved_reg::realreg, hppa_stub_unwind_cache::saved_regs, unwind_table_entry::stub_type, unwind_table_entry::stub_unwind, and trad_frame_alloc_saved_regs().
Referenced by hppa_stub_frame_prev_register(), and hppa_stub_frame_this_id().
static int hppa_stub_unwind_sniffer | ( | const struct frame_unwind * | self, |
struct frame_info * | this_frame, | ||
void ** | this_cache | ||
) | [static] |
Definition at line 2410 of file hppa-tdep.c.
References gdbarch_in_solib_return_trampoline(), gdbarch_tdep(), get_frame_address_in_block(), get_frame_arch(), and gdbarch_tdep::in_solib_call_trampoline.
CORE_ADDR hppa_symbol_address | ( | const char * | sym | ) |
Definition at line 163 of file hppa-tdep.c.
References lookup_minimal_symbol(), and SYMBOL_VALUE_ADDRESS.
Referenced by hppa32_hpux_in_solib_call_trampoline(), hppa32_hpux_search_dummy_call_sequence(), hppa_hpux_skip_trampoline_code(), hppa_hpux_unwind_adjust_stub(), and hppa_in_dyncall().
CORE_ADDR hppa_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) |
Definition at line 2444 of file hppa-tdep.c.
References frame_unwind_register_unsigned(), HPPA_IPSW_REGNUM, HPPA_PCOQ_HEAD_REGNUM, and ULONGEST.
Referenced by hppa_gdbarch_init(), and hppa_hpux_unwind_pc().
void hppa_write_pc | ( | struct regcache * | regcache, |
CORE_ADDR | pc | ||
) |
Definition at line 1299 of file hppa-tdep.c.
References HPPA_PCOQ_HEAD_REGNUM, HPPA_PCOQ_TAIL_REGNUM, and regcache_cooked_write_unsigned().
Referenced by hppa_gdbarch_init(), and hppa_hpux_write_pc().
static int inst_saves_fr | ( | unsigned long | inst | ) | [static] |
Definition at line 1422 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 int inst_saves_gr | ( | unsigned long | inst | ) | [static] |
Definition at line 1383 of file hppa-tdep.c.
References hppa_extract_5R_store().
Referenced by hppa_frame_cache(), and skip_prologue_hard_way().
static void internalize_unwinds | ( | struct objfile * | objfile, |
struct unwind_table_entry * | table, | ||
asection * | section, | ||
unsigned int | entries, | ||
unsigned int | size, | ||
CORE_ADDR | text_offset | ||
) | [static] |
Definition at line 222 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, unwind_table_entry::Frame_Extension_Millicode, gdbarch_tdep(), get_objfile_arch(), unwind_table_entry::HP_UX_interrupt_marker, 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, 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().
Definition at line 1350 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 int prologue_inst_adjust_sp | ( | unsigned long | inst | ) | [static] |
Definition at line 1311 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 void read_unwind_info | ( | struct objfile * | objfile | ) | [static] |
Definition at line 320 of file hppa-tdep.c.
References ANOFFSET, hppa_unwind_info::cache, compare_unwind_entries(), hppa_init_objfile_priv_data(), hppa_objfile_priv_data, internalize_unwinds(), hppa_unwind_info::last, memset(), objfile::obfd, objfile::objfile_obstack, qsort, unwind_table_entry::region_end, unwind_table_entry::region_start, SECT_OFF_TEXT, objfile::section_offsets, unwind_table_entry::stub_type, unwind_table_entry::stub_unwind, STUB_UNWIND_ENTRY_SIZE, hppa_unwind_info::table, text_offset, UNWIND_ENTRY_SIZE, and hppa_objfile_private::unwind_info.
Referenced by find_unwind_entry().
static void record_text_segment_lowaddr | ( | bfd * | abfd, |
asection * | section, | ||
void * | data | ||
) | [static] |
Definition at line 208 of file hppa-tdep.c.
Referenced by internalize_unwinds().
static CORE_ADDR skip_prologue_hard_way | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
int | stop_before_branch | ||
) | [static] |
Definition at line 1445 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, exsummary::status, target_read_memory(), and unwind_table_entry::Total_frame_size.
Referenced by hppa_frame_cache(), and hppa_skip_prologue().
static void unwind_command | ( | char * | exp, |
int | from_tty | ||
) | [static] |
Definition at line 2489 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_flush(), gdb_stdout, hex_string(), host_address_to_string(), 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, printf_unfiltered(), putchar_unfiltered(), 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().
Referenced by initialize_all_files().
const int hppa32_num_regs = 128 [static] |
Definition at line 47 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
const int hppa64_num_regs = 96 [static] |
Definition at line 48 of file hppa-tdep.c.
Referenced by hppa_gdbarch_init().
int hppa_debug = 0 [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().
struct frame_unwind hppa_fallback_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, hppa_fallback_frame_this_id, hppa_fallback_frame_prev_register, NULL, default_frame_sniffer }
Definition at line 2328 of file hppa-tdep.c.
struct frame_unwind hppa_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, hppa_frame_this_id, hppa_frame_prev_register, NULL, hppa_frame_unwind_sniffer }
Definition at line 2217 of file hppa-tdep.c.
struct insn_pattern hppa_import_pic_stub[] [static] |
{ { 0x2a600000, 0xffe00000 }, { 0x48350000, 0xffffb000 }, { 0xeaa0c000, 0xffffffff }, { 0x48330000, 0xffffb000 }, { 0, 0 }, }
Definition at line 2758 of file hppa-tdep.c.
struct insn_pattern hppa_import_stub[] [static] |
{ { 0x2b600000, 0xffe00000 }, { 0x48350000, 0xffffb000 }, { 0xeaa0c000, 0xffffffff }, { 0x48330000, 0xffffb000 }, { 0, 0 } }
Definition at line 2746 of file hppa-tdep.c.
struct insn_pattern hppa_long_branch_pic_stub[] [static] |
{ { 0xe8200000, 0xffe00000 }, { 0x28200000, 0xffe00000 }, { 0xe0202002, 0xffe02002 }, { 0, 0 } }
Definition at line 2736 of file hppa-tdep.c.
struct insn_pattern hppa_long_branch_stub[] [static] |
{ { 0x20200000, 0xffe00000 }, { 0xe0202002, 0xffe02002 }, { 0, 0 } }
Definition at line 2728 of file hppa-tdep.c.
struct objfile_data* hppa_objfile_priv_data = NULL |
Definition at line 56 of file hppa-tdep.c.
Referenced by _initialize_hppa_tdep(), find_unwind_entry(), hppa32_hpux_search_dummy_call_sequence(), hppa64_hpux_search_dummy_call_sequence(), hppa_init_objfile_priv_data(), and read_unwind_info().
struct insn_pattern hppa_plt_stub[] [static] |
{ { 0xea9f1fdd, 0xffffffff }, { 0xd6801c1e, 0xffffffff }, { 0, 0 } }
Definition at line 2770 of file hppa-tdep.c.
struct insn_pattern hppa_sigtramp[] [static] |
{ { 0x34190000, 0xfffffffd }, { 0x3414015a, 0xffffffff }, { 0xe4008200, 0xffffffff }, { 0x08000240, 0xffffffff }, { 0, 0 } }
Definition at line 2778 of file hppa-tdep.c.
struct frame_unwind hppa_stub_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, hppa_stub_frame_this_id, hppa_stub_frame_prev_register, NULL, hppa_stub_unwind_sniffer }
Definition at line 2426 of file hppa-tdep.c.