diff options
author | Mark Kettenis <kettenis@gnu.org> | 2003-10-30 23:03:36 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2003-10-30 23:03:36 +0000 |
commit | 66a72d250dbbacfac500c32ee25871ef6eea7fc5 (patch) | |
tree | 53312fa3e46a8cb0ec44ed68a2c1788d94c80d3a | |
parent | 3084807aa698583bb731a13ac784c91e12738e6a (diff) | |
download | gdb-66a72d250dbbacfac500c32ee25871ef6eea7fc5.zip gdb-66a72d250dbbacfac500c32ee25871ef6eea7fc5.tar.gz gdb-66a72d250dbbacfac500c32ee25871ef6eea7fc5.tar.bz2 |
* i386-tdep.c (i386_supply_fpregset): Support floating-point
registers in `fxsave' format.
(i386_regset_from_core_section): Deal with ".reg-xfp" sections.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/i386-tdep.c | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7e08e30..b5a9fa5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2003-10-31 Mark Kettenis <kettenis@gnu.org> + + * i386-tdep.c (i386_supply_fpregset): Support floating-point + registers in `fxsave' format. + (i386_regset_from_core_section): Deal with ".reg-xfp" sections. + 2003-10-30 Mark Kettenis <kettenis@gnu.org> * i386-linux-tdep.c (i386_linux_gregset_reg_offset): New variable. diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index e8d42a1..69db1fa 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) { |