GDB (xrefs)
Classes | Macros | Functions | Variables
/tmp/gdb-7.10/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"

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_privatehppa_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_entryfind_unwind_entry (CORE_ADDR pc)
 
static int hppa_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static const unsigned char * hppa_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pc, int *len)
 
static const char * hppa32_register_name (struct gdbarch *gdbarch, int i)
 
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_entryhppa_find_unwind_entry_in_block (struct frame_info *this_frame)
 
static struct hppa_frame_cachehppa_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 valuehppa_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_cachehppa_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 valuehppa_fallback_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
 
static struct hppa_stub_unwind_cachehppa_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 valuehppa_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 (char *exp, int from_tty)
 
static struct typehppa32_register_type (struct gdbarch *gdbarch, int regnum)
 
static struct typehppa64_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 valuehppa_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 gdbarchhppa_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
 
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 []
 
initialize_file_ftype _initialize_hppa_tdep
 

Macro Definition Documentation

#define HPPA_MAX_INSN_PATTERN_LEN   4

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

Referenced by hppa_in_solib_call_trampoline(), and hppa_skip_trampoline_code().

#define MASK_11   0x7ff

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

#define MASK_14   0x3fff

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

Referenced by hppa_extract_14().

#define MASK_21   0x1fffff

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

Referenced by hppa_extract_21().

#define MASK_5   0x1f

Definition at line 89 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 96 of file hppa-tdep.c.

Referenced by read_unwind_info().

#define UNWIND_ENTRY_SIZE   16

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

Referenced by read_unwind_info().

Function Documentation

void _initialize_hppa_tdep ( void  )
static CORE_ADDR after_prologue ( CORE_ADDR  pc)
static
static int compare_unwind_entries ( const void *  arg1,
const void *  arg2 
)
static

Definition at line 224 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)
static int hppa32_cannot_fetch_register ( struct gdbarch gdbarch,
int  regnum 
)
static

Definition at line 2720 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
static CORE_ADDR hppa32_convert_from_func_ptr_addr ( struct gdbarch gdbarch,
CORE_ADDR  addr,
struct target_ops targ 
)
static
static CORE_ADDR hppa32_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  addr 
)
static

Definition at line 1295 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
static const char* hppa32_register_name ( struct gdbarch gdbarch,
int  i 
)
static

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

Referenced by hppa_gdbarch_init().

static struct type* hppa32_register_type ( struct gdbarch gdbarch,
int  regnum 
)
static
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
static int hppa64_cannot_fetch_register ( struct gdbarch gdbarch,
int  regnum 
)
static

Definition at line 2739 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
static CORE_ADDR hppa64_convert_code_addr_to_fptr ( struct gdbarch gdbarch,
CORE_ADDR  code 
)
static
static int hppa64_dwarf_reg_to_regnum ( struct gdbarch gdbarch,
int  reg 
)
static

Definition at line 694 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 915 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 1305 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
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
static const char* hppa64_register_name ( struct gdbarch gdbarch,
int  i 
)
static

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

Referenced by hppa_gdbarch_init().

static struct type* hppa64_register_type ( struct gdbarch gdbarch,
int  regnum 
)
static
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
static CORE_ADDR hppa_addr_bits_remove ( struct gdbarch gdbarch,
CORE_ADDR  addr 
)
static

Definition at line 2749 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 605 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
static void hppa_dump_tdep ( struct gdbarch gdbarch,
struct ui_file file 
)
static
int hppa_extract_14 ( unsigned  word)
int hppa_extract_17 ( unsigned  word)

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

References hppa_get_field(), and hppa_sign_extend().

int hppa_extract_21 ( unsigned  word)

Definition at line 162 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 130 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)

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

References MASK_5.

Referenced by inst_saves_fr().

unsigned hppa_extract_5R_store ( unsigned  word)

Definition at line 146 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
static struct value* hppa_fallback_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
)
static
static void hppa_fallback_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static
static CORE_ADDR hppa_fetch_pointer_argument ( struct frame_info frame,
int  argi,
struct type type 
)
static

Definition at line 2764 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 2789 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
static struct hppa_frame_cache* hppa_frame_cache ( struct frame_info this_frame,
void **  this_cache 
)
static
static struct value* hppa_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
)
static
struct value* hppa_frame_prev_register_helper ( struct frame_info this_frame,
struct trad_frame_saved_reg  saved_regs[],
int  regnum 
)
static void hppa_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static
static int hppa_frame_unwind_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache 
)
static

Definition at line 2310 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

Definition at line 3068 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_pseudo_register_read(), hppa_read_pc(), hppa_skip_prologue(), HPPA_SP_REGNUM, hppa_stack_frame_destroyed_p(), 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_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_stack_frame_destroyed_p(), set_gdbarch_unwind_pc(), set_gdbarch_write_pc(), and TARGET_CHAR_BIT.

Referenced by _initialize_hppa_tdep().

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

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

Referenced by hppa_extract_17(), and hppa_extract_21().

static int hppa_in_dyncall ( CORE_ADDR  pc)
static
int hppa_in_solib_call_trampoline ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static struct hppa_objfile_private* hppa_init_objfile_priv_data ( struct objfile objfile)
static

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

References hppa_objfile_priv_data, and objfile::objfile_obstack.

Referenced by read_unwind_info().

struct bound_minimal_symbol hppa_lookup_stub_minimal_symbol ( const char *  name,
enum unwind_stub_types  stub_type 
)
static int hppa_low_hppa_sign_extend ( unsigned  val,
unsigned  bits 
)
static

Definition at line 113 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
static int hppa_match_insns_relaxed ( struct gdbarch gdbarch,
CORE_ADDR  pc,
struct insn_pattern pattern,
unsigned int insn 
)
static

Definition at line 2916 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
CORE_ADDR hppa_read_pc ( struct regcache regcache)

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

References HPPA_IPSW_REGNUM, HPPA_PCOQ_HEAD_REGNUM, and regcache_cooked_read_unsigned().

Referenced by hppa_gdbarch_init().

static int hppa_sign_extend ( unsigned  val,
unsigned  bits 
)
static

Definition at line 105 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 1838 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 
)
static int hppa_stack_frame_destroyed_p ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static
static struct value* hppa_stub_frame_prev_register ( struct frame_info this_frame,
void **  this_prologue_cache,
int  regnum 
)
static
static void hppa_stub_frame_this_id ( struct frame_info this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
)
static
static struct hppa_stub_unwind_cache* hppa_stub_frame_unwind_cache ( struct frame_info this_frame,
void **  this_cache 
)
static
static int hppa_stub_unwind_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache 
)
static
CORE_ADDR hppa_symbol_address ( const char *  sym)

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

References BMSYMBOL_VALUE_ADDRESS, and lookup_minimal_symbol().

Referenced by hppa_in_dyncall().

CORE_ADDR hppa_unwind_pc ( struct gdbarch gdbarch,
struct frame_info next_frame 
)
void hppa_write_pc ( struct regcache regcache,
CORE_ADDR  pc 
)
static int inst_saves_fr ( unsigned long  inst)
static

Definition at line 1524 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 1483 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,
size_t  size,
CORE_ADDR  text_offset 
)
static
static int is_branch ( unsigned long  inst)
static
static int prologue_inst_adjust_sp ( unsigned long  inst)
static
static void read_unwind_info ( struct objfile objfile)
static
static void record_text_segment_lowaddr ( bfd *  abfd,
asection *  section,
void *  data 
)
static

Definition at line 238 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
static void unwind_command ( char *  exp,
int  from_tty 
)
static

Variable Documentation

initialize_file_ftype _initialize_hppa_tdep
const int hppa32_num_regs = 128
static

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

Referenced by hppa_gdbarch_init().

const int hppa64_num_regs = 96
static

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

Referenced by hppa_gdbarch_init().

int hppa_debug = 0
static
const struct frame_unwind hppa_fallback_frame_unwind
static
Initial value:
=
{
NULL,
}
static struct value * hppa_fallback_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: hppa-tdep.c:2420
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:170
static void hppa_fallback_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: hppa-tdep.c:2410
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180

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

const struct frame_unwind hppa_frame_unwind
static
Initial value:
=
{
NULL,
}
static int hppa_frame_unwind_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: hppa-tdep.c:2310
static struct value * hppa_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: hppa-tdep.c:2300
static void hppa_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: hppa-tdep.c:2286
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180

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

struct insn_pattern hppa_import_pic_stub[]
static
Initial value:
= {
{ 0x2a600000, 0xffe00000 },
{ 0x48350000, 0xffffb000 },
{ 0xeaa0c000, 0xffffffff },
{ 0x48330000, 0xffffb000 },
{ 0, 0 },
}

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

struct insn_pattern hppa_import_stub[]
static
Initial value:
= {
{ 0x2b600000, 0xffe00000 },
{ 0x48350000, 0xffffb000 },
{ 0xeaa0c000, 0xffffffff },
{ 0x48330000, 0xffffb000 },
{ 0, 0 }
}

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

struct insn_pattern hppa_long_branch_pic_stub[]
static
Initial value:
= {
{ 0xe8200000, 0xffe00000 },
{ 0x28200000, 0xffe00000 },
{ 0xe0202002, 0xffe02002 },
{ 0, 0 }
}

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

struct insn_pattern hppa_long_branch_stub[]
static
Initial value:
= {
{ 0x20200000, 0xffe00000 },
{ 0xe0202002, 0xffe02002 },
{ 0, 0 }
}

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

const struct objfile_data* hppa_objfile_priv_data = NULL
static
struct insn_pattern hppa_plt_stub[]
static
Initial value:
= {
{ 0xea9f1fdd, 0xffffffff },
{ 0xd6801c1e, 0xffffffff },
{ 0, 0 }
}

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

const struct frame_unwind hppa_stub_frame_unwind
static
Initial value:
= {
NULL,
}
static int hppa_stub_unwind_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: hppa-tdep.c:2512
static struct value * hppa_stub_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
Definition: hppa-tdep.c:2498
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180
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:2486

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