diff options
-rw-r--r-- | libffi/ChangeLog | 5 | ||||
-rw-r--r-- | libffi/src/powerpc/ffi_darwin.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/libffi/ChangeLog b/libffi/ChangeLog index 2d875a3..b2cef85 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,8 @@ +2009-12-04 David Edelsohn <edelsohn@gnu.org> + + * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment + pfr for long double split between fpr13 and stack. + 2009-12-03 David Edelsohn <edelsohn@gnu.org> * 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 ff480b0..def92a5 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 { |