[PATCH,committed] More libffi fixes for Darwin
David Edelsohn
dje.gcc@gmail.com
Fri Dec 4 16:00:00 GMT 2009
Some more long double corner cases.
* src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
pfr for long double split between fpr13 and stack.
* src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
fparg_count twice for long double.
@@ -825,6 +856,7 @@ int ffi_closure_helper_DARWIN (ffi_closu
memcpy (&temp_ld.lb[0], pfr, sizeof(ldbits));
memcpy (&temp_ld.lb[1], pgr + 2, sizeof(ldbits));
avalue[i] = &temp_ld.ld;
+ pfr++;
}
else
{
@@ -150,11 +154,21 @@ void ffi_prep_args(extended_cif *ecif, u
else
*(double *) next_arg = double_tmp;
+ next_arg += 2;
+ fparg_count++;
double_tmp = ((double *) *p_argv)[1];
if (fparg_count < NUM_FPR_ARG_REGISTERS)
More information about the Gcc-patches
mailing list