aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2009-12-04 15:36:50 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2009-12-04 10:36:50 -0500
commit0c5526222ccc8870c9ea1d8fd43efb4ea7e674fa (patch)
tree8daa0c6a81dd374fbff0bc45491abb1557555374
parent246551974690175d93ce481e65ce2a26bdb37958 (diff)
downloadgcc-0c5526222ccc8870c9ea1d8fd43efb4ea7e674fa.zip
gcc-0c5526222ccc8870c9ea1d8fd43efb4ea7e674fa.tar.gz
gcc-0c5526222ccc8870c9ea1d8fd43efb4ea7e674fa.tar.bz2
ffi_darwin.c (ffi_closure_helper_DARWIN): Increment pfr for long double split between fpr13 and stack.
* src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment pfr for long double split between fpr13 and stack. From-SVN: r154983
-rw-r--r--libffi/ChangeLog5
-rw-r--r--libffi/src/powerpc/ffi_darwin.c3
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
{