diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2009-12-11 10:06:18 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2009-12-11 10:06:18 +0000 |
commit | fb01d970c404ce167315c13e59a42b6c60f86569 (patch) | |
tree | 1d5ee09121a1c4994864ab34fef775697470df53 | |
parent | 2ea54b81da0e6f24047b8974aa0c3fa18b3cdeae (diff) | |
download | gcc-fb01d970c404ce167315c13e59a42b6c60f86569.zip gcc-fb01d970c404ce167315c13e59a42b6c60f86569.tar.gz gcc-fb01d970c404ce167315c13e59a42b6c60f86569.tar.bz2 |
ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long double' arguments.
* src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
double' arguments.
From-SVN: r155152
-rw-r--r-- | libffi/ChangeLog | 5 | ||||
-rw-r--r-- | libffi/src/sparc/ffi.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/libffi/ChangeLog b/libffi/ChangeLog index 8f28614..517ac4ef 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,5 +1,10 @@ 2009-12-11 Eric Botcazou <ebotcazou@adacore.com> + * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long + double' arguments. + +2009-12-11 Eric Botcazou <ebotcazou@adacore.com> + * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10. 2009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> diff --git a/libffi/src/sparc/ffi.c b/libffi/src/sparc/ffi.c index 3b73f0c..1d01f59 100644 --- a/libffi/src/sparc/ffi.c +++ b/libffi/src/sparc/ffi.c @@ -599,6 +599,11 @@ ffi_closure_sparc_inner_v9(ffi_closure *closure, /* Right-justify. */ argn += ALIGN(arg_types[i]->size, FFI_SIZEOF_ARG) / FFI_SIZEOF_ARG; + /* Align on a 16-byte boundary. */ +#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE + if (arg_types[i]->type == FFI_TYPE_LONGDOUBLE && (argn % 2) != 0) + argn++; +#endif if (i < fp_slot_max && (arg_types[i]->type == FFI_TYPE_FLOAT || arg_types[i]->type == FFI_TYPE_DOUBLE |