2002-11-08 Jeff Johnston <jjohnstn@redhat.com>
[deliverable/binutils-gdb.git] / gdb / ppc-tdep.h
index 8745cb0685f91fb4b6d5b79b385eeec43bb5d7f2..48c5647e5da72faae67a27a42fe3215fe9de2fe1 100644 (file)
@@ -22,6 +22,8 @@
 #ifndef PPC_TDEP_H
 #define PPC_TDEP_H
 
+#include "osabi.h"
+
 struct frame_info;
 struct value;
 
@@ -31,10 +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... */
@@ -43,13 +49,14 @@ 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. */
 
 struct gdbarch_tdep
   {
     int wordsize;              /* size in bytes of fixed-point word */
-    int osabi;                 /* OS / ABI from ELF header */
+    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 */
@@ -60,7 +67,15 @@ struct gdbarch_tdep
     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.024084 seconds and 4 git commands to generate.