2007-07-01 H.J. Lu <hongjiu.lu@intel.com>
[deliverable/binutils-gdb.git] / gdb / core-regset.c
index 01afaf6fdd597fdf8000e0931a38f96e29524b5e..7acd99fa0edde11e6ea5831eb9439c17aed34bae 100644 (file)
@@ -1,6 +1,6 @@
 /* Machine independent GDB support for core files on systems using "regsets".
 
-   Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2003
+   Copyright (C) 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2003, 2007
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -17,8 +17,8 @@
 
    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., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 /* This file is used by most systems that use ELF for their core
    dumps.  This includes most systems that have SVR4-ish variant of
@@ -34,6 +34,7 @@
 #include "gdbcore.h"
 #include "inferior.h"
 #include "target.h"
+#include "regcache.h"
 
 #include <fcntl.h>
 #include <errno.h>
    REG_ADDR is ignored.  */
 
 static void
-fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, int which,
+fetch_core_registers (struct regcache *regcache,
+                     char *core_reg_sect, unsigned core_reg_size, int which,
                      CORE_ADDR reg_addr)
 {
   gdb_gregset_t gregset;
   gdb_fpregset_t fpregset;
+  gdb_gregset_t *gregset_p = &gregset;
+  gdb_fpregset_t *fpregset_p = &fpregset;
 
   switch (which)
     {
@@ -73,7 +77,7 @@ fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, int which,
       else
        {
          memcpy (&gregset, core_reg_sect, sizeof (gregset));
-         supply_gregset (&gregset);
+         supply_gregset (regcache, (const gdb_gregset_t *) gregset_p);
        }
       break;
 
@@ -83,8 +87,8 @@ fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, int which,
       else
        {
          memcpy (&fpregset, core_reg_sect, sizeof (fpregset));
-         if (FP0_REGNUM >= 0)
-           supply_fpregset (&fpregset);
+         if (gdbarch_fp0_regnum (current_gdbarch) >= 0)
+           supply_fpregset (regcache, (const gdb_fpregset_t *) fpregset_p);
        }
       break;
 
This page took 0.024112 seconds and 4 git commands to generate.