summaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2004-04-09 23:24:05 +0000
committerMark Kettenis <kettenis@gnu.org>2004-04-09 23:24:05 +0000
commite03b048ad366ea8211dcf085ff24e6d4523d0388 (patch)
tree96c672cda756bd3e8f17c2961e2718e7966e666d /gdb
parentf31bbc00891a3a2264d96c369a923bc45d84fd76 (diff)
downloadgdb-e03b048ad366ea8211dcf085ff24e6d4523d0388.tar.gz
* amd64-tdep.c (amd64_supply_fxsave): Only fiddle with
I387_FISEG_REGNUM and I387_FOSEG_REGNUM in 64-bit mode. (amd64_collect_fxsave): Likewise.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/amd64-tdep.c13
2 files changed, 12 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 764a05cbac3..6522015a0ac 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2004-04-10 Mark Kettenis <kettenis@gnu.org>
+ * amd64-tdep.c (amd64_supply_fxsave): Only fiddle with
+ I387_FISEG_REGNUM and I387_FOSEG_REGNUM in 64-bit mode.
+ (amd64_collect_fxsave): Likewise.
+
* i386-sol2-tdep.c: Include "gdb_string.h".
(i386_sol2_sigtramp_p): Recognize signal trampoline based on its
name.
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
index 0bec55504cf..d16571411bd 100644
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -1171,7 +1171,7 @@ amd64_supply_fxsave (struct regcache *regcache, int regnum,
{
i387_supply_fxsave (regcache, regnum, fxsave);
- if (fxsave)
+ if (fxsave && gdbarch_ptr_bit (get_regcache_arch (regcache)) == 64)
{
const char *regs = fxsave;
@@ -1195,8 +1195,11 @@ amd64_collect_fxsave (const struct regcache *regcache, int regnum,
i387_collect_fxsave (regcache, regnum, fxsave);
- if (regnum == -1 || regnum == I387_FISEG_REGNUM)
- regcache_raw_collect (regcache, I387_FISEG_REGNUM, regs + 12);
- if (regnum == -1 || regnum == I387_FOSEG_REGNUM)
- regcache_raw_collect (regcache, I387_FOSEG_REGNUM, regs + 20);
+ if (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 64)
+ {
+ if (regnum == -1 || regnum == I387_FISEG_REGNUM)
+ regcache_raw_collect (regcache, I387_FISEG_REGNUM, regs + 12);
+ if (regnum == -1 || regnum == I387_FOSEG_REGNUM)
+ regcache_raw_collect (regcache, I387_FOSEG_REGNUM, regs + 20);
+ }
}