diff options
author | Mark Kettenis <kettenis@gnu.org> | 2003-08-23 13:58:18 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2003-08-23 13:58:18 +0000 |
commit | 0485f6ad303a1c0cbc03d83af4fa380987c0fc38 (patch) | |
tree | 65e98dbd548129b5dd80b6fc586ce556b337bfa1 /gdb/x86-64-tdep.c | |
parent | c77161335bc01d9717915314b1249bc7d1986084 (diff) | |
download | gdb-0485f6ad303a1c0cbc03d83af4fa380987c0fc38.zip gdb-0485f6ad303a1c0cbc03d83af4fa380987c0fc38.tar.gz gdb-0485f6ad303a1c0cbc03d83af4fa380987c0fc38.tar.bz2 |
* x86-64-tdep.c (x86_64_supply_fxsave): Add `regnum' argument.
Update comments.
* x86-64-tdep.h (x86_64_supply_fxsave): Adjust prototype. Update
comments.
* x86-64-linux-tdep.c (fetch_core_registers): Adjust call to
x86_64_supply_fxsave.
* x86-64-linux-nat.c (supply_fpregset): Adjust call to
x86_64_supply_fxsave.
* amd64fbsd-nat.c (supply_fpregset): Adjust call to
x86_64_supply_fxsave.
Diffstat (limited to 'gdb/x86-64-tdep.c')
-rw-r--r-- | gdb/x86-64-tdep.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/gdb/x86-64-tdep.c b/gdb/x86-64-tdep.c index 86cb2fc..e855503 100644 --- a/gdb/x86-64-tdep.c +++ b/gdb/x86-64-tdep.c @@ -1288,24 +1288,27 @@ x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) bits of these pointers (instead of just the 16-bits of the segment selector). */ -/* Fill GDB's register array with the floating-point and SSE register - values in *FXSAVE. This function masks off any of the reserved - bits in *FXSAVE. */ +/* Fill register REGNUM in GDB's register cache with the appropriate + floating-point or SSE register value from *FXSAVE. If REGNUM is + -1, do this for all registers. This function masks off any of the + reserved bits in *FXSAVE. */ void -x86_64_supply_fxsave (char *fxsave) +x86_64_supply_fxsave (const char *fxsave, int regnum) { - i387_supply_fxsave (fxsave, -1); + i387_supply_fxsave (fxsave, regnum); if (fxsave) { - supply_register (I387_FISEG_REGNUM, fxsave + 12); + if (regnum == -1 || regnum == I387_FISEG_REGNUM) + supply_register (I387_FISEG_REGNUM, fxsave + 12); + if (regnum == -1 || regnum == I387_FOSEG_REGNUM) supply_register (I387_FOSEG_REGNUM, fxsave + 20); } } /* Fill register REGNUM (if it is a floating-point or SSE register) in - *FXSAVE with the value in GDB's register array. If REGNUM is -1, do + *FXSAVE with the value in GDB's register cache. If REGNUM is -1, do this for all registers. This function doesn't touch any of the reserved bits in *FXSAVE. */ |