From 302486f4fb52bf49b2a3b581e24c30b9a680da91 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sat, 26 Dec 2009 12:40:27 +0000 Subject: ffi.c (ffi_prep_args_SYSV): Advance intarg_count when a float arguments is passed in memory. * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count when a float arguments is passed in memory. (ffi_closure_helper_SYSV): Mark general registers as used up when a 64bit or soft-float long double argument is passed in memory. From-SVN: r155473 --- libffi/src/powerpc/ffi.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libffi/src') diff --git a/libffi/src/powerpc/ffi.c b/libffi/src/powerpc/ffi.c index fbbfbe2..75784a9 100644 --- a/libffi/src/powerpc/ffi.c +++ b/libffi/src/powerpc/ffi.c @@ -185,6 +185,7 @@ ffi_prep_args_SYSV (extended_cif *ecif, unsigned *const stack) { *next_arg.f = (float) double_tmp; next_arg.u += 1; + intarg_count++; } else *fpr_base.d++ = double_tmp; @@ -1149,6 +1150,7 @@ ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue, pst++; avalue[i] = pst; pst += 2; + ng = 8; } break; @@ -1222,6 +1224,7 @@ ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue, { avalue[i] = pst; pst += 4; + ng = 8; } break; } -- cgit v1.1