66 lines
1.9 KiB
Plaintext
66 lines
1.9 KiB
Plaintext
Index: libffi/ChangeLog
|
|
===================================================================
|
|
--- libffi.orig/ChangeLog
|
|
+++ libffi/ChangeLog
|
|
@@ -1,3 +1,11 @@
|
|
+2012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
|
|
+
|
|
+ * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
|
|
+ ffi_call_VFP().
|
|
+ (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
|
|
+ ffi_closure_VFP.
|
|
+ * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
|
|
+
|
|
2012-03-21 Peter Rosin <peda@lysator.liu.se>
|
|
|
|
* testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
|
|
Index: libffi/src/arm/ffi.c
|
|
===================================================================
|
|
--- libffi.orig/src/arm/ffi.c
|
|
+++ libffi/src/arm/ffi.c
|
|
@@ -251,8 +251,10 @@ void ffi_call(ffi_cif *cif, void (*fn)(v
|
|
break;
|
|
|
|
case FFI_VFP:
|
|
+#ifdef __ARM_EABI__
|
|
ffi_call_VFP (fn, &ecif, cif->bytes, cif->flags, ecif.rvalue);
|
|
break;
|
|
+#endif
|
|
|
|
default:
|
|
FFI_ASSERT(0);
|
|
@@ -609,8 +611,10 @@ ffi_prep_closure_loc (ffi_closure* closu
|
|
|
|
if (cif->abi == FFI_SYSV)
|
|
closure_func = &ffi_closure_SYSV;
|
|
+#ifdef __ARM_EABI__
|
|
else if (cif->abi == FFI_VFP)
|
|
closure_func = &ffi_closure_VFP;
|
|
+#endif
|
|
else
|
|
return FFI_BAD_ABI;
|
|
|
|
Index: libffi/src/arm/sysv.S
|
|
===================================================================
|
|
--- libffi.orig/src/arm/sysv.S
|
|
+++ libffi/src/arm/sysv.S
|
|
@@ -334,7 +334,9 @@ ARM_FUNC_START ffi_closure_SYSV
|
|
|
|
|
|
/* Below are VFP hard-float ABI call and closure implementations.
|
|
- Add VFP FPU directive here. */
|
|
+ Add VFP FPU directive here. This is only compiled into the library
|
|
+ under EABI. */
|
|
+#ifdef __ARM_EABI__
|
|
.fpu vfp
|
|
|
|
@ r0: fn
|
|
@@ -491,6 +493,7 @@ ARM_FUNC_START ffi_closure_VFP
|
|
.ffi_closure_VFP_end:
|
|
UNWIND .fnend
|
|
.size CNAME(ffi_closure_VFP),.ffi_closure_VFP_end-CNAME(ffi_closure_VFP)
|
|
+#endif
|
|
|
|
ENTRY(ffi_arm_trampoline)
|
|
stmfd sp!, {r0-r3}
|