merge from gcc
[deliverable/binutils-gdb.git] / gdb / hppa-tdep.h
index 548c21b8dfbfef8ada71ab1e897d2fda5ebdcd86..4dbeaf53d4a8785a6eff220327f96e6271844627 100644 (file)
@@ -1,5 +1,6 @@
-/* Common target dependent code for GDB on HPPA systems.
-   Copyright 2003, 2004 Free Software Foundation, Inc.
+/* Target-dependent code for the HP PA-RISC architecture.
+
+   Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -15,8 +16,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #ifndef HPPA_TDEP_H
 #define HPPA_TDEP_H
@@ -40,6 +41,9 @@ enum hppa_regnum
   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 */
@@ -63,6 +67,8 @@ enum hppa_regnum
   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_FP31R_REGNUM = 127,     /* Last floating-point.  */
 
   HPPA_ARG0_REGNUM = 26,       /* The first argument of a callee. */
   HPPA_ARG1_REGNUM = 25,       /* The second argument of a callee. */
@@ -70,6 +76,9 @@ enum hppa_regnum
   HPPA_ARG3_REGNUM = 23                /* The fourth argument of a callee. */
 };
 
+/* Instruction size.  */
+#define HPPA_INSN_SIZE 4
+
 /* Target-dependent structure in gdbarch.  */
 struct gdbarch_tdep
 {
@@ -204,6 +213,9 @@ struct hppa_objfile_private
     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;
@@ -219,16 +231,26 @@ 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,
-                                struct trad_frame_saved_reg *saved_regs,
-                                int regnum, int *optimizedp,
-                                enum lval_type *lvalp, CORE_ADDR *addrp,
-                                int *realnump, void *valuep);
+extern void
+  hppa_frame_prev_register_helper (struct frame_info *next_frame,
+                                  struct trad_frame_saved_reg *saved_regs,
+                                  int regnum, int *optimizedp,
+                                  enum lval_type *lvalp, CORE_ADDR *addrp,
+                                  int *realnump, gdb_byte *valuep);
 
 extern CORE_ADDR hppa_read_pc (ptid_t ptid);
 extern void hppa_write_pc (CORE_ADDR pc, ptid_t ptid);
 extern CORE_ADDR hppa_unwind_pc (struct gdbarch *gdbarch,
                                 struct frame_info *next_frame);
 
-#endif  /* HPPA_TDEP_H */
+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);
+
+extern int hppa_in_solib_call_trampoline (CORE_ADDR pc, char *name);
+extern CORE_ADDR hppa_skip_trampoline_code (CORE_ADDR pc);
+
+#endif  /* hppa-tdep.h */
This page took 0.025217 seconds and 4 git commands to generate.