* irix5-nat.c (fetch_core_registers): Replace use of
authorJoel Brobecker <brobecker@gnat.com>
Sat, 13 Nov 2004 23:49:31 +0000 (23:49 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Sat, 13 Nov 2004 23:49:31 +0000 (23:49 +0000)
        deprecated_registers by equivalent code.

gdb/ChangeLog
gdb/irix5-nat.c

index 20161f4..ab1b438 100644 (file)
@@ -1,5 +1,10 @@
 2004-11-13  Joel Brobecker  <brobecker@gnat.com>
 
+       * irix5-nat.c (fetch_core_registers): Replace use of
+       deprecated_registers by equivalent code.
+
+2004-11-13  Joel Brobecker  <brobecker@gnat.com>
+
        * irix5-nat.c (fill_gregset): Replace use of deprecated_registers
        with equivalent code.
        (fill_fpregset): Likewise.
index 9948d4a..9461c0c 100644 (file)
@@ -221,52 +221,33 @@ static void
 fetch_core_registers (char *core_reg_sect, unsigned core_reg_size,
                      int which, CORE_ADDR reg_addr)
 {
+  char *srcp = core_reg_sect;
+  int regno;
+
   if (core_reg_size == deprecated_register_bytes ())
     {
-      memcpy ((char *) deprecated_registers, core_reg_sect, core_reg_size);
+      for (regno = 0; regno < NUM_REGS; regno++)
+        {
+          regcache_raw_write (current_regcache, regno, srcp);
+          srcp += register_size (current_gdbarch, regno);
+        }
     }
   else if (mips_isa_regsize (current_gdbarch) == 4 &&
           core_reg_size == (2 * mips_isa_regsize (current_gdbarch)) * NUM_REGS)
     {
       /* This is a core file from a N32 executable, 64 bits are saved
          for all registers.  */
-      char *srcp = core_reg_sect;
-      char *dstp = deprecated_registers;
-      int regno;
-
       for (regno = 0; regno < NUM_REGS; regno++)
        {
          if (regno >= FP0_REGNUM && regno < (FP0_REGNUM + 32))
            {
-             /* FIXME, this is wrong, N32 has 64 bit FP regs, but GDB
-                currently assumes that they are 32 bit.  */
-             *dstp++ = *srcp++;
-             *dstp++ = *srcp++;
-             *dstp++ = *srcp++;
-             *dstp++ = *srcp++;
-             if (register_size (current_gdbarch, regno) == 4)
-               {
-                 /* copying 4 bytes from eight bytes?
-                    I don't see how this can be right...  */
-                 srcp += 4;
-               }
-             else
-               {
-                 /* copy all 8 bytes (sizeof(double)) */
-                 *dstp++ = *srcp++;
-                 *dstp++ = *srcp++;
-                 *dstp++ = *srcp++;
-                 *dstp++ = *srcp++;
-               }
+              regcache_raw_write (current_regcache, regno, srcp);
            }
          else
            {
-             srcp += 4;
-             *dstp++ = *srcp++;
-             *dstp++ = *srcp++;
-             *dstp++ = *srcp++;
-             *dstp++ = *srcp++;
+              regcache_raw_write (current_regcache, regno, srcp + 4);
            }
+          srcp += 8;
        }
     }
   else
@@ -274,8 +255,6 @@ fetch_core_registers (char *core_reg_sect, unsigned core_reg_size,
       warning ("wrong size gregset struct in core file");
       return;
     }
-
-  deprecated_registers_fetched ();
 }
 
 /* Register that we are able to handle irix5 core file formats.