GDB (xrefs)

Classes | Macros | Functions | Variables
/tmp/gdb-8.1/gdb/hppa-tdep.c File Reference
`#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) printf_unfiltered (" "#FLD);
#define | pin(FLD) printf_unfiltered ("\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 struct hppa_objfile_private * | hppa_init_objfile_priv_data (struct objfile *objfile)
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, int struct_return, 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, int struct_return, 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)
CORE_ADDR | hppa_read_pc (struct 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 (struct frame_info *this_frame)
static struct hppa_frame_cache * | hppa_frame_cache (struct frame_info *this_frame, void **this_cache)
static void | hppa_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct value * | hppa_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static int | hppa_frame_unwind_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
static struct hppa_frame_cache * | hppa_fallback_frame_cache (struct frame_info *this_frame, void **this_cache)
static void | hppa_fallback_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct value * | hppa_fallback_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static struct hppa_stub_unwind_cache * | hppa_stub_frame_unwind_cache (struct frame_info *this_frame, void **this_cache)
static void | hppa_stub_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct value * | hppa_stub_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
static int | hppa_stub_unwind_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
static struct frame_id | hppa_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
CORE_ADDR | hppa_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
struct bound_minimal_symbol | hppa_lookup_stub_minimal_symbol (const char *name, enum unwind_stub_types stub_type)
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 (struct frame_info *frame, int argi, struct type *type)
static enum register_status | hppa_pseudo_register_read (struct gdbarch *gdbarch, struct 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 (struct frame_info *this_frame, struct 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 (struct frame_info *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 (void)

## Variables
static int | hppa_debug = 0
static const int | hppa32_num_regs = 128
static const int | hppa64_num_regs = 96
static const struct objfile_data * | hppa_objfile_priv_data = NULL
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 []

## Macro Definition Documentation

## ◆ HPPA_MAX_INSN_PATTERN_LEN

#define HPPA_MAX_INSN_PATTERN_LEN 4

Definition at line 2857 of file hppa-tdep.c.

Referenced by hppa_in_solib_call_trampoline(), and hppa_skip_trampoline_code().

## ◆ MASK_11

#define MASK_11 0x7ff

Definition at line 91 of file hppa-tdep.c.

## ◆ MASK_14

#define MASK_14 0x3fff

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

Referenced by hppa_extract_14().

## ◆ MASK_21

#define MASK_21 0x1fffff

Definition at line 93 of file hppa-tdep.c.

Referenced by hppa_extract_21().

## ◆ MASK_5

#define MASK_5 0x1f

Definition at line 90 of file hppa-tdep.c.

Referenced by hppa_extract_5_load(), hppa_extract_5R_store(), and hppa_extract_5r_store().

## ◆ pif

#define pif | ( |  | FLD | ) | if (u->FLD) printf_unfiltered (" "#FLD);

Referenced by unwind_command().

## ◆ pin

#define pin | ( |  | FLD | ) | printf_unfiltered ("\t"#FLD" = 0x%x\n", u->FLD);

Referenced by nto_parse_redirection(), and unwind_command().

## ◆ STUB_UNWIND_ENTRY_SIZE

#define STUB_UNWIND_ENTRY_SIZE 8

Definition at line 97 of file hppa-tdep.c.

Referenced by read_unwind_info().

## ◆ UNWIND_ENTRY_SIZE

#define UNWIND_ENTRY_SIZE 16

Definition at line 96 of file hppa-tdep.c.

Referenced by read_unwind_info().

## Function Documentation

## ◆ _initialize_hppa_tdep()

void _initialize_hppa_tdep | ( | void |  | ) |

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

## ◆ after_prologue()

static CORE_ADDR after_prologue | ( | CORE_ADDR | pc | ) |
| static

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

## ◆ BP_MANIPULATION()

typedef BP_MANIPULATION | ( | hppa_break_insn |  | ) |

Definition at line 609 of file hppa-tdep.c.

## ◆ compare_unwind_entries()

static int compare_unwind_entries | ( | const void * | arg1,
|  | const void * | arg2
| ) |  |
| static

Definition at line 225 of file hppa-tdep.c.

References unwind_table_entry::region_start.

Referenced by read_unwind_info().

## ◆ find_unwind_entry()

struct unwind_table_entry* find_unwind_entry | ( | CORE_ADDR | pc | ) |

Definition at line 486 of file hppa-tdep.c.

References _, ALL_OBJFILES, error(), fprintf_unfiltered(), gdb_stdlog, hex_string(), hppa_debug, hppa_objfile_priv_data, objfile::objfile(), and read_unwind_info().

Referenced by hppa_find_unwind_entry_in_block(), hppa_in_dyncall(), hppa_in_solib_call_trampoline(), hppa_lookup_stub_minimal_symbol(), skip_prologue_hard_way(), and unwind_command().

## ◆ hppa32_cannot_fetch_register()

static int hppa32_cannot_fetch_register | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |
| static

Definition at line 2699 of file hppa-tdep.c.

References hppa32_cannot_store_register(), HPPA_CR26_REGNUM, HPPA_CR27_REGNUM, and regnum.

Referenced by hppa_gdbarch_init().

## ◆ hppa32_cannot_store_register()

static int hppa32_cannot_store_register | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |
| static

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

## ◆ hppa32_convert_from_func_ptr_addr()

static CORE_ADDR hppa32_convert_from_func_ptr_addr | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | addr,
|  | struct target_ops * | targ
| ) |  |
| static

Definition at line 1276 of file hppa-tdep.c.

References builtin_type::builtin_func_ptr, builtin_type(), and read_memory_typed_address().

Referenced by hppa_gdbarch_init().

## ◆ hppa32_frame_align()

static CORE_ADDR hppa32_frame_align | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | addr
| ) |  |
| static

Definition at line 1290 of file hppa-tdep.c.

References align_up().

Referenced by hppa_gdbarch_init().

## ◆ hppa32_push_dummy_call()

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 717 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, 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().

## ◆ hppa32_register_type()

static struct type* hppa32_register_type | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |
| static

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

## ◆ hppa32_return_value()

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 1143 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().

## ◆ hppa64_cannot_fetch_register()

static int hppa64_cannot_fetch_register | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |
| static

Definition at line 2718 of file hppa-tdep.c.

References hppa64_cannot_store_register(), HPPA_CR26_REGNUM, HPPA_CR27_REGNUM, and regnum.

Referenced by hppa_gdbarch_init().

## ◆ hppa64_cannot_store_register()

static int hppa64_cannot_store_register | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |
| static

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

## ◆ hppa64_convert_code_addr_to_fptr()

static CORE_ADDR hppa64_convert_code_addr_to_fptr | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | code
| ) |  |
| static

Definition at line 930 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(), and obj_section::the_bfd_section.

Referenced by hppa64_push_dummy_call().

## ◆ hppa64_dwarf_reg_to_regnum()

static int hppa64_dwarf_reg_to_regnum | ( | struct gdbarch * | gdbarch,
|  | int | reg
| ) |  |
| static

Definition at line 693 of file hppa-tdep.c.

References HPPA64_FP4_REGNUM.

Referenced by hppa_gdbarch_init().

## ◆ hppa64_floating_p()

static int hppa64_floating_p | ( | const struct type * | type | ) |
| static

Definition at line 910 of file hppa-tdep.c.

References TYPE_CODE, TYPE_CODE_FLT, and TYPE_LENGTH.

Referenced by hppa64_push_dummy_call(), and hppa64_return_value().

## ◆ hppa64_frame_align()

static CORE_ADDR hppa64_frame_align | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | addr
| ) |  |
| static

Definition at line 1300 of file hppa-tdep.c.

References align_up().

Referenced by hppa_gdbarch_init().

## ◆ hppa64_integral_or_pointer_p()

static int hppa64_integral_or_pointer_p | ( | const struct type * | type | ) |
| static

Definition at line 883 of file hppa-tdep.c.

References TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_ENUM, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_CODE_RANGE, TYPE_CODE_REF, TYPE_CODE_RVALUE_REF, and TYPE_LENGTH.

Referenced by hppa64_push_dummy_call(), and hppa64_return_value().

## ◆ hppa64_push_dummy_call()

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 974 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, offset, regcache_cooked_write_part(), regcache_cooked_write_unsigned(), regnum, gdbarch_tdep::sp, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_PTR, TYPE_LENGTH, TYPE_TARGET_TYPE, unpack_long(), value_cast(), value_contents(), value_type(), and write_memory().

Referenced by hppa_gdbarch_init().

## ◆ hppa64_register_name()

static const char* hppa64_register_name | ( | struct gdbarch * | gdbarch,
|  | int | i
| ) |  |
| static

Definition at line 657 of file hppa-tdep.c.

Referenced by hppa_gdbarch_init().

## ◆ hppa64_register_type()

static struct type* hppa64_register_type | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |
| static

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

## ◆ hppa64_return_value()

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 1183 of file hppa-tdep.c.

References gdb_assert, hppa64_floating_p(), HPPA64_FP4_REGNUM, hppa64_integral_or_pointer_p(), HPPA_RET0_REGNUM, 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().

## ◆ hppa_addr_bits_remove()

static CORE_ADDR hppa_addr_bits_remove | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | addr
| ) |  |
| static

Definition at line 2728 of file hppa-tdep.c.

Referenced by hppa_gdbarch_init().

## ◆ hppa_dummy_id()

static struct frame_id hppa_dummy_id | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | this_frame
| ) |  |
| static

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

## ◆ hppa_dump_tdep()

static void hppa_dump_tdep | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file
| ) |  |
| static

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

## ◆ hppa_extract_14()

int hppa_extract_14 | ( | unsigned | word | ) |

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

## ◆ hppa_extract_17()

int hppa_extract_17 | ( | unsigned | word | ) |

Definition at line 185 of file hppa-tdep.c.

References hppa_get_field(), and hppa_sign_extend().

## ◆ hppa_extract_21()

int hppa_extract_21 | ( | unsigned | word | ) |

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

## ◆ hppa_extract_5_load()

int hppa_extract_5_load | ( | unsigned | word | ) |

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

References hppa_low_hppa_sign_extend(), and MASK_5.

Referenced by prologue_inst_adjust_sp().

## ◆ hppa_extract_5r_store()

unsigned hppa_extract_5r_store | ( | unsigned | word | ) |

Definition at line 139 of file hppa-tdep.c.

References MASK_5.

Referenced by inst_saves_fr().

## ◆ hppa_extract_5R_store()

unsigned hppa_extract_5R_store | ( | unsigned | word | ) |

Definition at line 147 of file hppa-tdep.c.

References MASK_5.

Referenced by inst_saves_fr(), and inst_saves_gr().

## ◆ hppa_fallback_frame_cache()

static struct hppa_frame_cache* hppa_fallback_frame_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 2332 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(), and trad_frame_set_value().

Referenced by hppa_fallback_frame_prev_register(), and hppa_fallback_frame_this_id().

## ◆ hppa_fallback_frame_prev_register()

static struct value* hppa_fallback_frame_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | int | regnum
| ) |  |
| static

Definition at line 2414 of file hppa-tdep.c.

References hppa_fallback_frame_cache(), hppa_frame_prev_register_helper(), regnum, and hppa_frame_cache::saved_regs.

## ◆ hppa_fallback_frame_this_id()

static void hppa_fallback_frame_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | struct frame_id * | this_id
| ) |  |
| static

Definition at line 2404 of file hppa-tdep.c.

References hppa_frame_cache::base, frame_id_build(), get_frame_func(), and hppa_fallback_frame_cache().

## ◆ hppa_fetch_pointer_argument()

static CORE_ADDR hppa_fetch_pointer_argument | ( | struct frame_info * | frame,
|  | int | argi,
|  | struct type * | type
| ) |  |
| static

Definition at line 2743 of file hppa-tdep.c.

References get_frame_register_unsigned(), and HPPA_R0_REGNUM.

Referenced by hppa_gdbarch_init().

## ◆ hppa_find_global_pointer()

static CORE_ADDR hppa_find_global_pointer | ( | struct gdbarch * | gdbarch,
|  | struct value * | function
| ) |  |
| static

Definition at line 2768 of file hppa-tdep.c.

Referenced by hppa_gdbarch_init().

## ◆ hppa_find_unwind_entry_in_block()

static struct unwind_table_entry* hppa_find_unwind_entry_in_block | ( | struct frame_info * | this_frame | ) |
| static

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

## ◆ hppa_frame_cache()

static struct hppa_frame_cache* hppa_frame_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 1879 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, if(), 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().

## ◆ hppa_frame_prev_register()

static struct value* hppa_frame_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | int | regnum
| ) |  |
| static

Definition at line 2294 of file hppa-tdep.c.

References hppa_frame_cache(), hppa_frame_prev_register_helper(), regnum, and hppa_frame_cache::saved_regs.

## ◆ hppa_frame_prev_register_helper()

struct value* hppa_frame_prev_register_helper | ( | struct frame_info * | this_frame,
|  | struct trad_frame_saved_reg | saved_regs[],
|  | int | regnum
| ) |  |

Definition at line 2774 of file hppa-tdep.c.

References gdbarch::byte_order, 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, trad_frame_get_prev_register(), and value_contents_all().

Referenced by hppa_fallback_frame_prev_register(), hppa_frame_prev_register(), hppa_linux_sigtramp_frame_prev_register(), and hppa_stub_frame_prev_register().

## ◆ hppa_frame_this_id()

static void hppa_frame_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | struct frame_id * | this_id
| ) |  |
| static

Definition at line 2281 of file hppa-tdep.c.

References hppa_frame_cache::base, frame_id_build(), hppa_find_unwind_entry_in_block(), hppa_frame_cache(), and unwind_table_entry::region_start.

## ◆ hppa_frame_unwind_sniffer()

static int hppa_frame_unwind_sniffer | ( | const struct frame_unwind * | self,
|  | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 2304 of file hppa-tdep.c.

References hppa_find_unwind_entry_in_block().

## ◆ hppa_gdbarch_init()

static struct gdbarch* hppa_gdbarch_init | ( | struct gdbarch_info | info,
|  | struct gdbarch_list * | arches
| ) |  |
| static

Definition at line 3047 of file hppa-tdep.c.

References _, 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(), 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_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_dummy_id(), 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(), internal_error(), 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_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_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(), set_gdbarch_write_pc(), TARGET_CHAR_BIT, gdbarch::tdep, and XCNEW.

Referenced by _initialize_hppa_tdep().

## ◆ hppa_get_field()

int hppa_get_field | ( | unsigned | word,
|  | int | from,
|  | int | to
| ) |  |

Definition at line 123 of file hppa-tdep.c.

Referenced by hppa_extract_17(), and hppa_extract_21().

## ◆ hppa_in_dyncall()

static int hppa_in_dyncall | ( | CORE_ADDR | pc | ) |
| static

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

## ◆ hppa_in_solib_call_trampoline()

int hppa_in_solib_call_trampoline | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |

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

## ◆ hppa_init_objfile_priv_data()

static struct hppa_objfile_private* hppa_init_objfile_priv_data | ( | struct objfile * | objfile | ) |
| static

Definition at line 206 of file hppa-tdep.c.

References hppa_objfile_priv_data, and memset().

Referenced by read_unwind_info().

## ◆ hppa_lookup_stub_minimal_symbol()

struct bound_minimal_symbol hppa_lookup_stub_minimal_symbol | ( | const char * | name,
|  | enum unwind_stub_types | stub_type
| ) |  |

Definition at line 2548 of file hppa-tdep.c.

References ALL_MSYMBOLS, find_unwind_entry(), bound_minimal_symbol::minsym, MSYMBOL_LINKAGE_NAME, MSYMBOL_VALUE, name, bound_minimal_symbol::objfile, objfile::objfile(), unwind_table_entry::stub_type, and unwind_table_entry::stub_unwind.

## ◆ hppa_low_hppa_sign_extend()

static int hppa_low_hppa_sign_extend | ( | unsigned | val,
|  | unsigned | bits
| ) |  |
| static

Definition at line 114 of file hppa-tdep.c.

References bits.

Referenced by hppa_extract_14(), hppa_extract_5_load(), and hppa_frame_cache().

## ◆ hppa_match_insns()

static int hppa_match_insns | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc,
|  | struct insn_pattern * | pattern,
|  | unsigned int * | insn
| ) |  |
| static

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

## ◆ hppa_match_insns_relaxed()

static int hppa_match_insns_relaxed | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc,
|  | struct insn_pattern * | pattern,
|  | unsigned int * | insn
| ) |  |
| static

Definition at line 2895 of file hppa-tdep.c.

References HPPA_INSN_SIZE, hppa_match_insns(), insn_pattern::mask, and offset.

Referenced by hppa_in_solib_call_trampoline().

## ◆ hppa_pseudo_register_read()

static enum register_status hppa_pseudo_register_read | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | gdb_byte * | buf
| ) |  |
| static

Definition at line 2750 of file hppa-tdep.c.

References gdbarch_byte_order(), HPPA_PCOQ_HEAD_REGNUM, HPPA_PCOQ_TAIL_REGNUM, REG_VALID, regcache_raw_read_unsigned(), regnum, status, and store_unsigned_integer().

Referenced by hppa_gdbarch_init().

## ◆ hppa_read_pc()

CORE_ADDR hppa_read_pc | ( | struct regcache * | regcache | ) |

Definition at line 1307 of file hppa-tdep.c.

References HPPA_IPSW_REGNUM, HPPA_PCOQ_HEAD_REGNUM, and regcache_cooked_read_unsigned().

Referenced by hppa_gdbarch_init().

## ◆ hppa_sign_extend()

static int hppa_sign_extend | ( | unsigned | val,
|  | unsigned | bits
| ) |  |
| static

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

References bits.

Referenced by hppa_extract_17(), and hppa_extract_21().

## ◆ hppa_skip_prologue()

static CORE_ADDR hppa_skip_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 1833 of file hppa-tdep.c.

References after_prologue(), symtab_and_line::pc, and skip_prologue_hard_way().

Referenced by hppa_gdbarch_init().

## ◆ hppa_skip_trampoline_code()

CORE_ADDR hppa_skip_trampoline_code | ( | struct frame_info * | frame,
|  | CORE_ADDR | pc
| ) |  |

Definition at line 2952 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(), read_memory_typed_address(), and warning().

Referenced by hppa_linux_init_abi(), and hppabsd_init_abi().

## ◆ hppa_stack_frame_destroyed_p()

static int hppa_stack_frame_destroyed_p | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| static

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

## ◆ hppa_stub_frame_prev_register()

static struct value* hppa_stub_frame_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache,
|  | int | regnum
| ) |  |
| static

Definition at line 2477 of file hppa-tdep.c.

References _, error(), hppa_frame_prev_register_helper(), hppa_stub_frame_unwind_cache(), regnum, and hppa_stub_unwind_cache::saved_regs.

## ◆ hppa_stub_frame_this_id()

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 2465 of file hppa-tdep.c.

References hppa_stub_unwind_cache::base, frame_id_build(), get_frame_func(), and hppa_stub_frame_unwind_cache().

## ◆ 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

Definition at line 2442 of file hppa-tdep.c.

References hppa_stub_unwind_cache::base, FRAME_OBSTACK_ZALLOC, get_frame_arch(), 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, and trad_frame_alloc_saved_regs().

Referenced by hppa_stub_frame_prev_register(), and hppa_stub_frame_this_id().

## ◆ hppa_stub_unwind_sniffer()

static int hppa_stub_unwind_sniffer | ( | const struct frame_unwind * | self,
|  | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 2491 of file hppa-tdep.c.

References gdbarch_in_solib_return_trampoline(), gdbarch_tdep(), get_frame_address_in_block(), get_frame_arch(), gdbarch_tdep::in_solib_call_trampoline, and gdbarch_tdep::pc.

## ◆ hppa_symbol_address()

CORE_ADDR hppa_symbol_address | ( | const char * | sym | ) |

Definition at line 194 of file hppa-tdep.c.

References BMSYMBOL_VALUE_ADDRESS, lookup_minimal_symbol(), and bound_minimal_symbol::minsym.

Referenced by hppa_in_dyncall().

## ◆ hppa_unwind_pc()

CORE_ADDR hppa_unwind_pc | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | next_frame
| ) |  |

Definition at line 2525 of file hppa-tdep.c.

References frame_unwind_register_unsigned(), HPPA_IPSW_REGNUM, and HPPA_PCOQ_HEAD_REGNUM.

Referenced by hppa_gdbarch_init().

## ◆ hppa_write_pc()

void hppa_write_pc | ( | struct regcache * | regcache,
|  | CORE_ADDR | pc
| ) |  |

Definition at line 1327 of file hppa-tdep.c.

References HPPA_PCOQ_HEAD_REGNUM, HPPA_PCOQ_TAIL_REGNUM, and regcache_cooked_write_unsigned().

Referenced by hppa_gdbarch_init().

## ◆ inst_saves_fr()

static int inst_saves_fr | ( | unsigned long | inst | ) |
| static

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

## ◆ inst_saves_gr()

static int inst_saves_gr | ( | unsigned long | inst | ) |
| static

Definition at line 1478 of file hppa-tdep.c.

References hppa_extract_5R_store().

Referenced by hppa_frame_cache(), and skip_prologue_hard_way().

## ◆ internalize_unwinds()

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

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

## ◆ is_branch()

static int is_branch | ( | unsigned long | inst | ) |
| static

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

## ◆ prologue_inst_adjust_sp()

static int prologue_inst_adjust_sp | ( | unsigned long | inst | ) |
| static

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

## ◆ read_unwind_info()

static void read_unwind_info | ( | struct objfile * | objfile | ) |
| static

Definition at line 351 of file hppa-tdep.c.

References ANOFFSET, compare_unwind_entries(), hppa_init_objfile_priv_data(), hppa_objfile_priv_data, internalize_unwinds(), memset(), objfile::obfd, qsort, SECT_OFF_TEXT, objfile::section_offsets, STUB_UNWIND_ENTRY_SIZE, UNWIND_ENTRY_SIZE, and hppa_objfile_private::unwind_info.

Referenced by find_unwind_entry().

## ◆ record_text_segment_lowaddr()

static void record_text_segment_lowaddr | ( | bfd * | abfd,
|  | asection * | section,
|  | void * | data
| ) |  |
| static

Definition at line 239 of file hppa-tdep.c.

Referenced by internalize_unwinds().

## ◆ skip_prologue_hard_way()

static CORE_ADDR skip_prologue_hard_way | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc,
|  | int | stop_before_branch
| ) |  |
| static

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

## ◆ unwind_command()

static void unwind_command | ( | const char * | exp,
|  | int | from_tty
| ) |  |
| static

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

## Variable Documentation

## ◆ hppa32_num_regs

const int hppa32_num_regs = 128
| static

Definition at line 47 of file hppa-tdep.c.

Referenced by hppa_gdbarch_init().

## ◆ hppa64_num_regs

const int hppa64_num_regs = 96
| static

Definition at line 48 of file hppa-tdep.c.

Referenced by hppa_gdbarch_init().

## ◆ hppa_break_insn

constexpr gdb_byte hppa_break_insn[] = {0x00, 0x01, 0x00, 0x04}

Definition at line 607 of file hppa-tdep.c.

## ◆ hppa_debug

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().

## ◆ hppa_fallback_frame_unwind

const struct frame_unwind hppa_fallback_frame_unwind
| static

Initial value:
=
{
NORMAL_FRAME,
default_frame_unwind_stop_reason,
hppa_fallback_frame_this_id,
hppa_fallback_frame_prev_register,
NULL,
default_frame_sniffer
}
NORMAL_FRAME
Definition: frame.h:244
hppa_fallback_frame_prev_register
static struct value * hppa_fallback_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: hppa-tdep.c:2414
default_frame_sniffer
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:174
hppa_fallback_frame_this_id
static void hppa_fallback_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: hppa-tdep.c:2404
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184

Definition at line 2424 of file hppa-tdep.c.

Referenced by hppa_gdbarch_init().

## ◆ hppa_frame_unwind

const struct frame_unwind hppa_frame_unwind
| static

Initial value:
=
{
NORMAL_FRAME,
default_frame_unwind_stop_reason,
hppa_frame_this_id,
hppa_frame_prev_register,
NULL,
hppa_frame_unwind_sniffer
}
hppa_frame_unwind_sniffer
static int hppa_frame_unwind_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: hppa-tdep.c:2304
NORMAL_FRAME
Definition: frame.h:244
hppa_frame_prev_register
static struct value * hppa_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: hppa-tdep.c:2294
hppa_frame_this_id
static void hppa_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: hppa-tdep.c:2281
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184

Definition at line 2313 of file hppa-tdep.c.

Referenced by hppa_gdbarch_init().

## ◆ hppa_import_pic_stub

struct insn_pattern hppa_import_pic_stub[]
| static

Initial value:
= {
{ 0x2a600000, 0xffe00000 },
{ 0x48350000, 0xffffb000 },
{ 0xeaa0c000, 0xffffffff },
{ 0x48330000, 0xffffb000 },
{ 0, 0 },
}

Definition at line 2836 of file hppa-tdep.c.

Referenced by hppa_in_solib_call_trampoline(), and hppa_skip_trampoline_code().

## ◆ hppa_import_stub

struct insn_pattern hppa_import_stub[]
| static

Initial value:
= {
{ 0x2b600000, 0xffe00000 },
{ 0x48350000, 0xffffb000 },
{ 0xeaa0c000, 0xffffffff },
{ 0x48330000, 0xffffb000 },
{ 0, 0 }
}

Definition at line 2824 of file hppa-tdep.c.

Referenced by hppa_in_solib_call_trampoline(), and hppa_skip_trampoline_code().

## ◆ hppa_long_branch_pic_stub

struct insn_pattern hppa_long_branch_pic_stub[]
| static

Initial value:
= {
{ 0xe8200000, 0xffe00000 },
{ 0x28200000, 0xffe00000 },
{ 0xe0202002, 0xffe02002 },
{ 0, 0 }
}

Definition at line 2814 of file hppa-tdep.c.

Referenced by hppa_in_solib_call_trampoline().

## ◆ hppa_long_branch_stub

struct insn_pattern hppa_long_branch_stub[]
| static

Initial value:
= {
{ 0x20200000, 0xffe00000 },
{ 0xe0202002, 0xffe02002 },
{ 0, 0 }
}

Definition at line 2806 of file hppa-tdep.c.

Referenced by hppa_in_solib_call_trampoline().

## ◆ hppa_objfile_priv_data

const struct objfile_data* hppa_objfile_priv_data = NULL
| static

Definition at line 87 of file hppa-tdep.c.

Referenced by _initialize_hppa_tdep(), find_unwind_entry(), hppa_init_objfile_priv_data(), and read_unwind_info().

## ◆ hppa_plt_stub

struct insn_pattern hppa_plt_stub[]
| static

Initial value:
= {
{ 0xea9f1fdd, 0xffffffff },
{ 0xd6801c1e, 0xffffffff },
{ 0, 0 }
}

Definition at line 2848 of file hppa-tdep.c.

Referenced by hppa_skip_trampoline_code().

## ◆ hppa_stub_frame_unwind

const struct frame_unwind hppa_stub_frame_unwind
| static

Initial value:
= {
NORMAL_FRAME,
default_frame_unwind_stop_reason,
hppa_stub_frame_this_id,
hppa_stub_frame_prev_register,
NULL,
hppa_stub_unwind_sniffer
}
hppa_stub_unwind_sniffer
static int hppa_stub_unwind_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: hppa-tdep.c:2491
hppa_stub_frame_prev_register
static struct value * hppa_stub_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
Definition: hppa-tdep.c:2477
NORMAL_FRAME
Definition: frame.h:244
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184
hppa_stub_frame_this_id
static void hppa_stub_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: hppa-tdep.c:2465

Definition at line 2507 of file hppa-tdep.c.

Referenced by hppa_gdbarch_init().