#define HPPA_TDEP_H
struct trad_frame_saved_reg;
+struct objfile;
+struct so_list;
/* Register numbers of various important registers.
Note that some of these values are "real" register numbers,
HPPA_FLAGS_REGNUM = 0, /* Various status flags */
HPPA_RP_REGNUM = 2, /* return pointer */
HPPA_FP_REGNUM = 3, /* The ABI's frame pointer, when used */
+ HPPA_DP_REGNUM = 27,
+ HPPA_RET0_REGNUM = 28,
+ HPPA_RET1_REGNUM = 29,
HPPA_SP_REGNUM = 30, /* Stack pointer. */
HPPA_R31_REGNUM = 31,
HPPA_SAR_REGNUM = 32, /* Shift Amount Register */
HPPA_CR27_REGNUM = 60, /* Base register for thread-local storage, cr27 */
HPPA_FP0_REGNUM = 64, /* First floating-point. */
HPPA_FP4_REGNUM = 72,
+ HPPA64_FP4_REGNUM = 68,
HPPA_ARG0_REGNUM = 26, /* The first argument of a callee. */
HPPA_ARG1_REGNUM = 25, /* The second argument of a callee. */
void (*unwind_adjust_stub) (struct frame_info *next_frame, CORE_ADDR base,
struct trad_frame_saved_reg *saved_regs);
+ /* These are solib-dependent methods. They are really HPUX only, but
+ we don't have a HPUX-specific tdep vector at the moment. */
+ CORE_ADDR (*solib_thread_start_addr) (struct so_list *so);
+ CORE_ADDR (*solib_get_got_by_pc) (CORE_ADDR addr);
+ CORE_ADDR (*solib_get_solib_by_pc) (CORE_ADDR addr);
+ CORE_ADDR (*solib_get_text_base) (struct objfile *objfile);
};
/*
struct hppa_unwind_info *unwind_info; /* a pointer */
struct so_list *so_info; /* a pointer */
CORE_ADDR dp;
+
+ int dummy_call_sequence_reg;
+ CORE_ADDR dummy_call_sequence_addr;
};
extern const struct objfile_data *hppa_objfile_priv_data;
extern CORE_ADDR hppa_unwind_pc (struct gdbarch *gdbarch,
struct frame_info *next_frame);
+extern struct minimal_symbol *
+ hppa_lookup_stub_minimal_symbol (const char *name,
+ enum unwind_stub_types stub_type);
+
+extern struct hppa_objfile_private *
+hppa_init_objfile_priv_data (struct objfile *objfile);
+
#endif /* HPPA_TDEP_H */