summaryrefslogtreecommitdiffstats
path: root/libffi/src/powerpc
diff options
context:
space:
mode:
authorschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>2009-12-26 12:40:27 +0000
committerschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>2009-12-26 12:40:27 +0000
commit81b376aefe496a92f695ce84f8a7271a9bcee8c1 (patch)
tree9935e6a734031f551b99d61c12d084336d953765 /libffi/src/powerpc
parentcac80d0085ca525541bce267350935212980ccb1 (diff)
downloadppe42-gcc-81b376aefe496a92f695ce84f8a7271a9bcee8c1.tar.gz
ppe42-gcc-81b376aefe496a92f695ce84f8a7271a9bcee8c1.zip
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155473 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libffi/src/powerpc')
-rw-r--r--libffi/src/powerpc/ffi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libffi/src/powerpc/ffi.c b/libffi/src/powerpc/ffi.c
index fbbfbe2e2ea..75784a96d3b 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;
}
OpenPOWER on IntegriCloud