diff options
author | Mark Kettenis <kettenis@gnu.org> | 2004-05-30 16:56:08 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2004-05-30 16:56:08 +0000 |
commit | 593adc23491c6e80fb4a54c6ee3489e5dac5c55c (patch) | |
tree | 57b303d5b39c45cd9de2566d49a600191552e7ee /gdb/amd64-tdep.c | |
parent | 8d1b517b9789929e4505a7e8e16cb41b368203c0 (diff) | |
download | gdb-593adc23491c6e80fb4a54c6ee3489e5dac5c55c.zip gdb-593adc23491c6e80fb4a54c6ee3489e5dac5c55c.tar.gz gdb-593adc23491c6e80fb4a54c6ee3489e5dac5c55c.tar.bz2 |
* amd64-tdep.c (amd64_supply_fpregset): Adjust comment.
(amd64_collect_fpregset): New function.
(amd64_regset_from_core_section): Use amd64_collect_fpregset.
Diffstat (limited to 'gdb/amd64-tdep.c')
-rw-r--r-- | gdb/amd64-tdep.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index 2ce8efc..4a64bf3 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -1048,9 +1048,9 @@ amd64_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp) } -/* Supply register REGNUM from the floating-point register set REGSET - to register cache REGCACHE. If REGNUM is -1, do this for all - registers in REGSET. */ +/* Supply register REGNUM from the buffer specified by FPREGS and LEN + in the floating-point register set REGSET to register cache + REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */ static void amd64_supply_fpregset (const struct regset *regset, struct regcache *regcache, @@ -1062,6 +1062,22 @@ amd64_supply_fpregset (const struct regset *regset, struct regcache *regcache, amd64_supply_fxsave (regcache, regnum, fpregs); } +/* Collect register REGNUM from the register cache REGCACHE and store + it in the buffer specified by FPREGS and LEN as described by the + floating-point register set REGSET. If REGNUM is -1, do this for + all registers in REGSET. */ + +static void +amd64_collect_fpregset (const struct regset *regset, + const struct regcache *regcache, + int regnum, void *fpregs, size_t len) +{ + const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); + + gdb_assert (len == tdep->sizeof_fpregset); + amd64_collect_fxsave (regcache, regnum, fpregs); +} + /* Return the appropriate register set for the core section identified by SECT_NAME and SECT_SIZE. */ @@ -1074,7 +1090,8 @@ amd64_regset_from_core_section (struct gdbarch *gdbarch, if (strcmp (sect_name, ".reg2") == 0 && sect_size == tdep->sizeof_fpregset) { if (tdep->fpregset == NULL) - tdep->fpregset = regset_alloc (gdbarch, amd64_supply_fpregset, NULL); + tdep->fpregset = regset_alloc (gdbarch, amd64_supply_fpregset, + amd64_collect_fpregset); return tdep->fpregset; } |