* x86-64-tdep.c (x86_64_store_return_value): Use an intermediate
authorMark Kettenis <kettenis@gnu.org>
Sun, 13 Jul 2003 16:31:43 +0000 (16:31 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sun, 13 Jul 2003 16:31:43 +0000 (16:31 +0000)
buffer when storing double and float varibles into %xmm0.

gdb/ChangeLog
gdb/x86-64-tdep.c

index 1013883c5bb349e656b5975a04868968a9f60520..fbff9fcdb663c5c170ef7c675d9d7aca1de7543b 100644 (file)
@@ -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.
index 544f29f5b529e956aa8566c54131e6395741e6be..8bb507cd48afbe7034fb33eee38ff71f38dcb6fe 100644 (file)
@@ -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