Fix crash when a variable object being deleted
[deliverable/binutils-gdb.git] / gdb / hppa-tdep.h
index 8c2a2b6e550e2cf3e4e1f5a12bd245ba0d5ba25f..b7ba8fbc155f8e389056633e334b5c3859cbb0d8 100644 (file)
@@ -1,11 +1,12 @@
-/* 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, 2007 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -14,9 +15,7 @@
    GNU General Public License for more details.
 
    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.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef HPPA_TDEP_H
 #define HPPA_TDEP_H
@@ -25,12 +24,7 @@ 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,
-   and correspond to the general registers of the machine,
-   and some are "phony" register numbers which are too large
-   to be actual register numbers as far as the user is concerned
-   but do serve to get the desired values when passed to read_register.  */
+/* Register numbers of various important registers.  */
 
 enum hppa_regnum
 {
@@ -40,6 +34,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 */
@@ -60,9 +57,12 @@ enum hppa_regnum
   HPPA_PID3_REGNUM = 56,       /* Protection ID */
   HPPA_CCR_REGNUM = 54,                /* Coprocessor Configuration Register */
   HPPA_TR0_REGNUM = 57,                /* Temporary Registers (cr24 -> cr31) */
+  HPPA_CR26_REGNUM = 59,
   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 +70,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
 {
@@ -120,7 +123,7 @@ struct unwind_table_entry
     unsigned int Millicode:1;  /* 1 */
     unsigned int Millicode_save_sr0:1; /* 2 */
     unsigned int Region_description:2; /* 3..4 */
-    unsigned int reserved1:1;  /* 5 */
+    unsigned int reserved:1;   /* 5 */
     unsigned int Entry_SR:1;   /* 6 */
     unsigned int Entry_FR:4;   /* number saved *//* 7..10 */
     unsigned int Entry_GR:5;   /* number saved *//* 11..15 */
@@ -130,22 +133,22 @@ struct unwind_table_entry
     unsigned int Frame_Extension_Millicode:1;  /* 19 */
     unsigned int Stack_Overflow_Check:1;       /* 20 */
     unsigned int Two_Instruction_SP_Increment:1;       /* 21 */
-    unsigned int Ada_Region:1; /* 22 */
+    unsigned int sr4export:1;  /* 22 */
     unsigned int cxx_info:1;   /* 23 */
     unsigned int cxx_try_catch:1;      /* 24 */
     unsigned int sched_entry_seq:1;    /* 25 */
-    unsigned int reserved2:1;  /* 26 */
+    unsigned int reserved1:1;  /* 26 */
     unsigned int Save_SP:1;    /* 27 */
     unsigned int Save_RP:1;    /* 28 */
     unsigned int Save_MRP_in_frame:1;  /* 29 */
-    unsigned int extn_ptr_defined:1;   /* 30 */
+    unsigned int save_r19:1;   /* 30 */
     unsigned int Cleanup_defined:1;    /* 31 */
 
     unsigned int MPE_XL_interrupt_marker:1;    /* 0 */
     unsigned int HP_UX_interrupt_marker:1;     /* 1 */
     unsigned int Large_frame:1;        /* 2 */
-    unsigned int Pseudo_SP_Set:1;      /* 3 */
-    unsigned int reserved4:1;  /* 4 */
+    unsigned int alloca_frame:1;       /* 3 */
+    unsigned int reserved2:1;  /* 4 */
     unsigned int Total_frame_size:27;  /* 5..31 */
 
     /* This is *NOT* part of an actual unwind_descriptor in an object
@@ -222,15 +225,15 @@ 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_read_pc (struct regcache *regcache);
+extern void hppa_write_pc (struct regcache *regcache, CORE_ADDR pc);
 extern CORE_ADDR hppa_unwind_pc (struct gdbarch *gdbarch,
                                 struct frame_info *next_frame);
 
@@ -241,4 +244,7 @@ extern struct minimal_symbol *
 extern struct hppa_objfile_private *
 hppa_init_objfile_priv_data (struct objfile *objfile);
 
-#endif  /* HPPA_TDEP_H */
+extern int hppa_in_solib_call_trampoline (CORE_ADDR pc, char *name);
+extern CORE_ADDR hppa_skip_trampoline_code (struct frame_info *, CORE_ADDR pc);
+
+#endif  /* hppa-tdep.h */
This page took 0.024876 seconds and 4 git commands to generate.