* Makefile.in (i386nbsd-tdep.o): Add $(arch_utils_h),
[deliverable/binutils-gdb.git] / gdb / ppc-tdep.h
index e8552235374f1d6e5cff98f8eb761746d27a32ca..48c5647e5da72faae67a27a42fe3215fe9de2fe1 100644 (file)
@@ -22,6 +22,8 @@
 #ifndef PPC_TDEP_H
 #define PPC_TDEP_H
 
+#include "osabi.h"
+
 struct frame_info;
 struct value;
 
@@ -31,9 +33,14 @@ 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 *);
+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... */
@@ -42,17 +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. */
-
-#define        PPC_GP0_REGNUM 0                /* GPR register 0 */
-#define        PPC_GPLAST_REGNUM 31            /* GPR register 31 */
-#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 */
+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.  */
+};
 
 #endif
This page took 0.024513 seconds and 4 git commands to generate.