From d66a47eece163b82733144c7c26e8d10f060d5e5 Mon Sep 17 00:00:00 2001 From: dje Date: Fri, 4 Dec 2009 15:36:50 +0000 Subject: [PATCH 1/1] * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment pfr for long double split between fpr13 and stack. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154983 138bc75d-0d04-0410-961f-82ee72b054a4 --- libffi/ChangeLog | 5 +++++ libffi/src/powerpc/ffi_darwin.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/libffi/ChangeLog b/libffi/ChangeLog index 2d875a38c73..b2cef85eba8 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,8 @@ +2009-12-04 David Edelsohn + + * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment + pfr for long double split between fpr13 and stack. + 2009-12-03 David Edelsohn * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and diff --git a/libffi/src/powerpc/ffi_darwin.c b/libffi/src/powerpc/ffi_darwin.c index ff480b0413f..def92a56376 100644 --- a/libffi/src/powerpc/ffi_darwin.c +++ b/libffi/src/powerpc/ffi_darwin.c @@ -690,7 +690,7 @@ int ffi_closure_helper_DARWIN (ffi_closure* closure, void * rvalue, ffi_type ** arg_types; long i, avn; ffi_cif * cif; - ffi_dblfl *end_pfr = pfr + NUM_FPR_ARG_REGISTERS; + ffi_dblfl * end_pfr = pfr + NUM_FPR_ARG_REGISTERS; unsigned size_al; cif = closure->cif; @@ -856,6 +856,7 @@ int ffi_closure_helper_DARWIN (ffi_closure* closure, void * rvalue, memcpy (&temp_ld.lb[0], pfr, sizeof(ldbits)); memcpy (&temp_ld.lb[1], pgr + 2, sizeof(ldbits)); avalue[i] = &temp_ld.ld; + pfr++; } else { -- 2.11.0