aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2003-07-13 16:31:43 +0000
committerMark Kettenis <kettenis@gnu.org>2003-07-13 16:31:43 +0000
commit01e4b823654bfc22487dd3e81bc90926f420d010 (patch)
tree2a145c02ced897455ca8845798c2c11dcf17eca6
parent68cc0bfb7dd8503a99124c6fe752a0df8ddfe4ed (diff)
downloadgdb-01e4b823654bfc22487dd3e81bc90926f420d010.zip
gdb-01e4b823654bfc22487dd3e81bc90926f420d010.tar.gz
gdb-01e4b823654bfc22487dd3e81bc90926f420d010.tar.bz2
* x86-64-tdep.c (x86_64_store_return_value): Use an intermediate
buffer when storing double and float varibles into %xmm0.
-rw-r--r--gdb/ChangeLog3
-rw-r--r--gdb/x86-64-tdep.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1013883..fbff9fc 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,8 @@
2003-07-13 Mark Kettenis <kettenis@gnu.org>
+ * x86-64-tdep.c (x86_64_store_return_value): Use an intermediate
+ buffer when storing double and float varibles into %xmm0.
+
* configure.host: Add x86_64-*-freebsd*.
* configure.tgt: Add x86_64-*-freebsd*.
* Makefile.in (amd64fbsd-nat.o, amd64fbsd-tdep.o): New targets.
diff --git a/gdb/x86-64-tdep.c b/gdb/x86-64-tdep.c
index 544f29f..8bb507c 100644
--- a/gdb/x86-64-tdep.c
+++ b/gdb/x86-64-tdep.c
@@ -788,7 +788,7 @@ x86_64_store_return_value (struct type *type, struct regcache *regcache,
else if (TYPE_CODE_FLT == TYPE_CODE (type))
{
/* Handle double and float variables. */
- regcache_cooked_write (regcache, X86_64_XMM0_REGNUM, valbuf);
+ regcache_cooked_write_part (regcache, X86_64_XMM0_REGNUM, 0, len, buf);
}
/* XXX: What about complex floating point types? */
else