diff options
author | Mark Kettenis <kettenis@gnu.org> | 2004-04-09 23:24:05 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2004-04-09 23:24:05 +0000 |
commit | e03b048ad366ea8211dcf085ff24e6d4523d0388 (patch) | |
tree | 96c672cda756bd3e8f17c2961e2718e7966e666d /gdb | |
parent | f31bbc00891a3a2264d96c369a923bc45d84fd76 (diff) | |
download | gdb-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/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/amd64-tdep.c | 13 |
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); + } } |