* arch-utils.c (set_architecture, set_architecture_from_arch_mach,
[deliverable/binutils-gdb.git] / gdb / ppcnbsd-nat.c
index 3fba3971fd5a129559fd704a1a9a376e65377931..044115b24f03759b9110d0c1e172fc0ed262f53f 100644 (file)
@@ -26,6 +26,7 @@
 #include "defs.h"
 #include "inferior.h"
 #include "gdbcore.h"
+#include "ppc-tdep.h"
 
 #define RF(dst, src) \
         memcpy(&registers[REGISTER_BYTE(dst)], &src, sizeof(src))
@@ -37,23 +38,27 @@ void
 fetch_inferior_registers (int regno)
 {
   struct reg inferior_registers;
+#ifdef PT_GETFPREGS
   struct fpreg inferior_fp_registers;
+#endif
   int i;
 
   ptrace (PT_GETREGS, inferior_pid,
          (PTRACE_ARG3_TYPE) & inferior_registers, 0);
   for (i = 0; i < 32; i++)
     RF (i, inferior_registers.fixreg[i]);
-  RF (LR_REGNUM, inferior_registers.lr);
-  RF (CR_REGNUM, inferior_registers.cr);
-  RF (XER_REGNUM, inferior_registers.xer);
-  RF (CTR_REGNUM, inferior_registers.ctr);
+  RF (PPC_LR_REGNUM, inferior_registers.lr);
+  RF (PPC_CR_REGNUM, inferior_registers.cr);
+  RF (PPC_XER_REGNUM, inferior_registers.xer);
+  RF (PPC_CTR_REGNUM, inferior_registers.ctr);
   RF (PC_REGNUM, inferior_registers.pc);
 
+#ifdef PT_GETFPREGS
   ptrace (PT_GETFPREGS, inferior_pid,
-         (PTRACE_ARG3_TYPE) & inferior_fp_registers, 0);
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers, 0);
   for (i = 0; i < 32; i++)
     RF (FP0_REGNUM + i, inferior_fp_registers.r_regs[i]);
+#endif
 
   registers_fetched ();
 }
@@ -62,30 +67,36 @@ void
 store_inferior_registers (int regno)
 {
   struct reg inferior_registers;
+#ifdef PT_SETFPREGS
   struct fpreg inferior_fp_registers;
+#endif
   int i;
 
   for (i = 0; i < 32; i++)
     RS (i, inferior_registers.fixreg[i]);
-  RS (LR_REGNUM, inferior_registers.lr);
-  RS (CR_REGNUM, inferior_registers.cr);
-  RS (XER_REGNUM, inferior_registers.xer);
-  RS (CTR_REGNUM, inferior_registers.ctr);
+  RS (PPC_LR_REGNUM, inferior_registers.lr);
+  RS (PPC_CR_REGNUM, inferior_registers.cr);
+  RS (PPC_XER_REGNUM, inferior_registers.xer);
+  RS (PPC_CTR_REGNUM, inferior_registers.ctr);
   RS (PC_REGNUM, inferior_registers.pc);
 
   ptrace (PT_SETREGS, inferior_pid,
          (PTRACE_ARG3_TYPE) & inferior_registers, 0);
 
+#ifdef PT_SETFPREGS
   for (i = 0; i < 32; i++)
     RS (FP0_REGNUM + i, inferior_fp_registers.r_regs[i]);
   ptrace (PT_SETFPREGS, inferior_pid,
          (PTRACE_ARG3_TYPE) & inferior_fp_registers, 0);
+#endif
 }
 
 struct md_core
 {
   struct reg intreg;
+#ifdef PT_GETFPREGS
   struct fpreg freg;
+#endif
 };
 
 void
@@ -98,15 +109,17 @@ fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, int which,
   /* Integer registers */
   for (i = 0; i < 32; i++)
     RF (i, core_reg->intreg.fixreg[i]);
-  RF (LR_REGNUM, core_reg->intreg.lr);
-  RF (CR_REGNUM, core_reg->intreg.cr);
-  RF (XER_REGNUM, core_reg->intreg.xer);
-  RF (CTR_REGNUM, core_reg->intreg.ctr);
+  RF (PPC_LR_REGNUM, core_reg->intreg.lr);
+  RF (PPC_CR_REGNUM, core_reg->intreg.cr);
+  RF (PPC_XER_REGNUM, core_reg->intreg.xer);
+  RF (PPC_CTR_REGNUM, core_reg->intreg.ctr);
   RF (PC_REGNUM, core_reg->intreg.pc);
 
+#ifdef PT_FPGETREGS
   /* Floating point registers */
   for (i = 0; i < 32; i++)
     RF (FP0_REGNUM + i, core_reg->freg.r_regs[i]);
+#endif
 
   registers_fetched ();
 }
This page took 0.025072 seconds and 4 git commands to generate.