diff options
author | Mark Kettenis <kettenis@gnu.org> | 2004-10-11 20:03:55 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2004-10-11 20:03:55 +0000 |
commit | 3303a2761a3f8b2c2a9e1c683a5f43fae5625be3 (patch) | |
tree | 1d9f8e13266a032fd7f940db1c6fb8a9cc525272 /gdb/i386gnu-nat.c | |
parent | 653cfe8544fcfa851946baa338fed32c71567def (diff) | |
download | gdb-3303a2761a3f8b2c2a9e1c683a5f43fae5625be3.zip gdb-3303a2761a3f8b2c2a9e1c683a5f43fae5625be3.tar.gz gdb-3303a2761a3f8b2c2a9e1c683a5f43fae5625be3.tar.bz2 |
* i386gnu-nat.c: Include "gdb_string.h".
(fetch_fpregs): Use i387_supply_fxsave to fill the floating-point
registers when the floating-point state isn't initialized.
* Makefile.in (i386gnu-nat.o): Update dependencies.
Diffstat (limited to 'gdb/i386gnu-nat.c')
-rw-r--r-- | gdb/i386gnu-nat.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/gdb/i386gnu-nat.c b/gdb/i386gnu-nat.c index f694eba..023fbb7 100644 --- a/gdb/i386gnu-nat.c +++ b/gdb/i386gnu-nat.c @@ -28,6 +28,7 @@ #include "gdb_assert.h" #include <errno.h> #include <stdio.h> +#include "gdb_string.h" #include <mach.h> #include <mach_error.h> @@ -60,8 +61,9 @@ static int reg_offset[] = #define REG_ADDR(state, regnum) ((char *)(state) + reg_offset[regnum]) -/* Get the whole floating-point state of THREAD and record the - values of the corresponding (pseudo) registers. */ +/* Get the whole floating-point state of THREAD and record the values + of the corresponding (pseudo) registers. */ + static void fetch_fpregs (struct proc *thread) { @@ -79,18 +81,15 @@ fetch_fpregs (struct proc *thread) } if (!state.initialized) - /* The floating-point state isn't initialized. */ { - int i; - - for (i = FP0_REGNUM; i <= FOP_REGNUM; i++) - regcache_raw_supply (current_regcache, i, NULL); - - return; + /* The floating-point state isn't initialized. */ + i387_supply_fsave (current_regcache, -1, NULL); + } + else + { + /* Supply the floating-point registers. */ + i387_supply_fsave (current_regcache, -1, state.hw_state); } - - /* Supply the floating-point registers. */ - i387_supply_fsave (current_regcache, -1, state.hw_state); } #ifdef HAVE_SYS_PROCFS_H |