2004-12-05 Randolph Chung <tausq@debian.org>
[deliverable/binutils-gdb.git] / gdb / hppa-tdep.h
index f90860e827accf82edf1f3082dddab4c1a507047..857b87433aff37ef6e4ed6461893d387fea7b242 100644 (file)
@@ -23,8 +23,6 @@
 
 struct trad_frame_saved_reg;
 
-enum { HPPA_INSTRUCTION_SIZE = 4 };
-
 /* Register numbers of various important registers.
    Note that some of these values are "real" register numbers,
    and correspond to the general registers of the machine,
@@ -41,6 +39,7 @@ enum hppa_regnum
   HPPA_RP_REGNUM = 2,          /* return pointer */
   HPPA_FP_REGNUM = 3,          /* The ABI's frame pointer, when used */
   HPPA_SP_REGNUM = 30,         /* Stack pointer.  */
+  HPPA_R31_REGNUM = 31,
   HPPA_SAR_REGNUM = 32,                /* Shift Amount Register */
   HPPA_IPSW_REGNUM = 41,       /* Interrupt Processor Status Word */
   HPPA_PCOQ_HEAD_REGNUM = 33,  /* instruction offset queue head */
@@ -79,6 +78,16 @@ struct gdbarch_tdep
   /* Is this an ELF target? This can be 64-bit HP-UX, or a 32/64-bit GNU/Linux
      system.  */
   int is_elf;
+
+  /* Given a function address, try to find the global pointer for the 
+     corresponding shared object.  */
+  CORE_ADDR (*find_global_pointer) (struct value *);
+
+  /* For shared libraries, each call goes through a small piece of
+     trampoline code in the ".plt", or equivalent, section.
+     IN_SOLIB_CALL_TRAMPOLINE evaluates to nonzero if we are currently
+     stopped in one of these.  */
+  int (*in_solib_call_trampoline) (CORE_ADDR pc, char *name);
 };
 
 /*
@@ -191,6 +200,7 @@ int hppa_extract_21 (unsigned);
 int hppa_extract_14 (unsigned);
 int hppa_low_sign_extend (unsigned int, unsigned int);
 int hppa_sign_extend (unsigned int, unsigned int);
+CORE_ADDR hppa_symbol_address(const char *sym);
 
 void
 hppa_frame_prev_register_helper (struct frame_info *next_frame,
This page took 0.025599 seconds and 4 git commands to generate.