summaryrefslogtreecommitdiff
path: root/gdb/i386-tdep.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2003-10-30 23:03:36 +0000
committerMark Kettenis <kettenis@gnu.org>2003-10-30 23:03:36 +0000
commit16b2f0246349665f3fa02e6ad08c1e07dbae8ce5 (patch)
tree801b93d316ef5d51705c78827b9aad6373fbefe3 /gdb/i386-tdep.c
parent26e298172e2da0a0a47573d04d1c5baa4491cea9 (diff)
downloadgdb-16b2f0246349665f3fa02e6ad08c1e07dbae8ce5.tar.gz
* i386-tdep.c (i386_supply_fpregset): Support floating-point
registers in `fxsave' format. (i386_regset_from_core_section): Deal with ".reg-xfp" sections.
Diffstat (limited to 'gdb/i386-tdep.c')
-rw-r--r--gdb/i386-tdep.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index e8d42a12b97..69db1fa820e 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -1576,6 +1576,12 @@ i386_supply_fpregset (const struct regset *regset, struct regcache *regcache,
{
const struct gdbarch_tdep *tdep = regset->descr;
+ if (len == I387_SIZEOF_FXSAVE)
+ {
+ i387_supply_fxsave (regcache, regnum, fpregs);
+ return;
+ }
+
gdb_assert (len == tdep->sizeof_fpregset);
i387_supply_fsave (regcache, regnum, fpregs);
}
@@ -1600,7 +1606,9 @@ i386_regset_from_core_section (struct gdbarch *gdbarch,
return tdep->gregset;
}
- if (strcmp (sect_name, ".reg2") == 0 && sect_size == tdep->sizeof_fpregset)
+ if ((strcmp (sect_name, ".reg2") == 0 && sect_size == tdep->sizeof_fpregset)
+ || (strcmp (sect_name, ".reg-xfp") == 0
+ && sect_size == I387_SIZEOF_FXSAVE))
{
if (tdep->fpregset == NULL)
{