* config/tc-dvp.c (VU_LABEL_PREFIX): New macro.
[deliverable/binutils-gdb.git] / gdb / sun3-nat.c
index 082ee0f4853834d3e7f0b1fe1af8722fe342aa26..30f4a44e139a526fafd72adebe878fb283b547ee 100644 (file)
@@ -15,7 +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., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
 #include "inferior.h"
@@ -25,6 +25,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define KERNEL         /* To get floating point reg definitions */
 #include <machine/reg.h>
 
+static void fetch_core_registers PARAMS ((char *, unsigned, int, CORE_ADDR));
+
 void
 fetch_inferior_registers (regno)
      int regno;
@@ -44,16 +46,16 @@ fetch_inferior_registers (regno)
          (PTRACE_ARG3_TYPE) &inferior_fp_registers);
 #endif 
   
-  bcopy (&inferior_registers, registers, 16 * 4);
+  memcpy (registers, &inferior_registers, 16 * 4);
 #ifdef FP0_REGNUM
-  bcopy (&inferior_fp_registers, &registers[REGISTER_BYTE (FP0_REGNUM)],
+  memcpy (&registers[REGISTER_BYTE (FP0_REGNUM)], &inferior_fp_registers,
         sizeof inferior_fp_registers.fps_regs);
 #endif 
   *(int *)&registers[REGISTER_BYTE (PS_REGNUM)] = inferior_registers.r_ps;
   *(int *)&registers[REGISTER_BYTE (PC_REGNUM)] = inferior_registers.r_pc;
 #ifdef FP0_REGNUM
-  bcopy (&inferior_fp_registers.fps_control,
-        &registers[REGISTER_BYTE (FPC_REGNUM)],
+  memcpy (&registers[REGISTER_BYTE (FPC_REGNUM)],
+        &inferior_fp_registers.fps_control,
         sizeof inferior_fp_registers - sizeof inferior_fp_registers.fps_regs);
 #endif 
 }
@@ -72,17 +74,17 @@ store_inferior_registers (regno)
 #endif
   extern char registers[];
 
-  bcopy (registers, &inferior_registers, 16 * 4);
+  memcpy (&inferior_registers, registers, 16 * 4);
 #ifdef FP0_REGNUM
-  bcopy (&registers[REGISTER_BYTE (FP0_REGNUM)], &inferior_fp_registers,
+  memcpy (&inferior_fp_registers, &registers[REGISTER_BYTE (FP0_REGNUM)],
         sizeof inferior_fp_registers.fps_regs);
 #endif
   inferior_registers.r_ps = *(int *)&registers[REGISTER_BYTE (PS_REGNUM)];
   inferior_registers.r_pc = *(int *)&registers[REGISTER_BYTE (PC_REGNUM)];
 
 #ifdef FP0_REGNUM
-  bcopy (&registers[REGISTER_BYTE (FPC_REGNUM)],
-        &inferior_fp_registers.fps_control,
+  memcpy (&inferior_fp_registers.fps_control,
+        &registers[REGISTER_BYTE (FPC_REGNUM)],
         sizeof inferior_fp_registers - sizeof inferior_fp_registers.fps_regs);
 #endif
 
@@ -98,12 +100,12 @@ store_inferior_registers (regno)
 /* All of this stuff is only relevant if both host and target are sun3.  */
 /* Machine-dependent code for pulling registers out of a Sun-3 core file. */
 
-void
+static void
 fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
      char *core_reg_sect;
      unsigned core_reg_size;
      int which;
-     unsigned int reg_addr;    /* Unused in this version */
+     CORE_ADDR reg_addr;       /* Unused in this version */
 {
   extern char registers[];
   struct regs *regs = (struct regs *) core_reg_sect;
@@ -112,7 +114,7 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
     if (core_reg_size < sizeof (struct regs))
       error ("Can't find registers in core file");
 
-    bcopy ((char *)regs, registers, 16 * 4);
+    memcpy (registers, (char *)regs, 16 * 4);
     supply_register (PS_REGNUM, (char *)&regs->r_ps);
     supply_register (PC_REGNUM, (char *)&regs->r_pc);
 
@@ -123,16 +125,33 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
     if (core_reg_size >= sizeof (struct fpu))
       {
 #ifdef FP0_REGNUM
-       bcopy (fpustruct->f_fpstatus.fps_regs,
-             &registers[REGISTER_BYTE (FP0_REGNUM)],
+       memcpy (&registers[REGISTER_BYTE (FP0_REGNUM)],
+             fpustruct->f_fpstatus.fps_regs,
              sizeof fpustruct->f_fpstatus.fps_regs);
-       bcopy (&fpustruct->f_fpstatus.fps_control,
-             &registers[REGISTER_BYTE (FPC_REGNUM)],
+       memcpy (&registers[REGISTER_BYTE (FPC_REGNUM)],
+             &fpustruct->f_fpstatus.fps_control,
              sizeof fpustruct->f_fpstatus - 
                sizeof fpustruct->f_fpstatus.fps_regs);
 #endif
       }
     else
-      fprintf (stderr, "Couldn't read float regs from core file\n");
+      fprintf_unfiltered (gdb_stderr, "Couldn't read float regs from core file\n");
   }
 }
+
+\f
+/* Register that we are able to handle sun3 core file formats.
+   FIXME: is this really bfd_target_unknown_flavour? */
+
+static struct core_fns sun3_core_fns =
+{
+  bfd_target_unknown_flavour,
+  fetch_core_registers,
+  NULL
+};
+
+void
+_initialize_core_sun3 ()
+{
+  add_core_fns (&sun3_core_fns);
+}
This page took 0.028387 seconds and 4 git commands to generate.