* configure.tgt (i[3456]86-*-openbsd*): Set gdb_target to obds.
[deliverable/binutils-gdb.git] / gdb / ppc-tdep.h
index c22ec13bbe381b7fafbdc8a0a8f510f2d87b4ebe..48c5647e5da72faae67a27a42fe3215fe9de2fe1 100644 (file)
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
+#ifndef PPC_TDEP_H
+#define PPC_TDEP_H
+
+#include "osabi.h"
+
+struct frame_info;
+struct value;
+
 /* From ppc-linux-tdep.c... */
 CORE_ADDR ppc_linux_frame_saved_pc (struct frame_info *fi);
 void ppc_linux_init_extra_frame_info (int fromleaf, struct frame_info *);
 int ppc_linux_frameless_function_invocation (struct frame_info *);
 void ppc_linux_frame_init_saved_regs (struct frame_info *);
 CORE_ADDR ppc_linux_frame_chain (struct frame_info *);
-CORE_ADDR ppc_sysv_abi_push_arguments (int, value_ptr *, CORE_ADDR, int,
+int ppc_sysv_abi_use_struct_convention (int, struct type *);
+int ppc_sysv_abi_broken_use_struct_convention (int, struct type *);
+CORE_ADDR ppc_sysv_abi_push_arguments (int, struct value **, CORE_ADDR, int,
                                       CORE_ADDR);
 int ppc_linux_memory_remove_breakpoint (CORE_ADDR addr, char *contents_cache);
+struct link_map_offsets *ppc_linux_svr4_fetch_link_map_offsets (void);
+void ppc_linux_supply_gregset (char *buf);
+void ppc_linux_supply_fpregset (char *buf);
 
 
 /* From rs6000-tdep.c... */
@@ -36,14 +49,33 @@ void rs6000_init_extra_frame_info (int fromleaf, struct frame_info *);
 int rs6000_frameless_function_invocation (struct frame_info *);
 void rs6000_frame_init_saved_regs (struct frame_info *);
 CORE_ADDR rs6000_frame_chain (struct frame_info *);
+int altivec_register_p (int regno);
+
+/* Private data that this module attaches to struct gdbarch. */
 
-/* Some important register numbers. */
+struct gdbarch_tdep
+  {
+    int wordsize;              /* size in bytes of fixed-point word */
+    enum gdb_osabi osabi;      /* OS / ABI from ELF header */
+    int *regoff;               /* byte offsets in register arrays */
+    const struct reg *regs;    /* from current variant */
+    int ppc_gp0_regnum;                /* GPR register 0 */
+    int ppc_gplast_regnum;     /* GPR register 31 */
+    int ppc_toc_regnum;                /* TOC register */
+    int ppc_ps_regnum;         /* Processor (or machine) status (%msr) */
+    int ppc_cr_regnum;         /* Condition register */
+    int ppc_lr_regnum;         /* Link register */
+    int ppc_ctr_regnum;                /* Count register */
+    int ppc_xer_regnum;                /* Integer exception register */
+    int ppc_fpscr_regnum;      /* Floating point status and condition
+                                  register */
+    int ppc_mq_regnum;         /* Multiply/Divide extension register */
+    int ppc_vr0_regnum;                /* First AltiVec register */
+    int ppc_vrsave_regnum;     /* Last AltiVec register */
+    int ppc_ev0_regnum;         /* First ev register */
+    int ppc_ev31_regnum;        /* Last ev register */
+    int lr_frame_offset;       /* Offset to ABI specific location where
+                                   link register is saved.  */
+};
 
-#define        PPC_GP0_REGNUM 0                /* GPR register 0 */
-#define        PPC_TOC_REGNUM 2                /* TOC register */
-#define PPC_PS_REGNUM 65               /* Processor (or machine) status (%msr) */
-#define        PPC_CR_REGNUM 66                /* Condition register */
-#define        PPC_LR_REGNUM 67                /* Link register */
-#define        PPC_CTR_REGNUM 68               /* Count register */
-#define        PPC_XER_REGNUM 69               /* Integer exception register */
-#define        PPC_MQ_REGNUM 70                /* Multiply/Divide extension register */
+#endif
This page took 0.064635 seconds and 4 git commands to generate.