--- devel/libffi/files/patch-src_arm_sysv.S (revision 458999) +++ devel/libffi/files/patch-src_arm_sysv.S (working copy) @@ -4,6 +4,15 @@ --- src/arm/sysv.S.orig 2015-01-01 10:47:51 UTC +++ src/arm/sysv.S +@@ -360,7 +360,7 @@ ARM_FUNC_START(ffi_call_VFP) + cmp r0, #3 + sub ip, fp, #64 + flddle d0, [ip] +- fldmiadgt ip, {d0-d7} ++ vldmiagt ip, {d0-d7} + + LSYM(Lbase_args): + @ move first 4 parameters in registers @@ -396,7 +396,7 @@ LSYM(Lbase_args): beq LSYM(Lepilogue_vfp) @@ -13,3 +22,34 @@ beq LSYM(Lepilogue_vfp) cmp r3, #FFI_TYPE_FLOAT +@@ -409,7 +409,7 @@ LSYM(Lbase_args): + + cmp r3, #FFI_TYPE_STRUCT_VFP_FLOAT + cmpne r3, #FFI_TYPE_STRUCT_VFP_DOUBLE +- fstmiadeq r2, {d0-d3} ++ vstmiaeq r2, {d0-d3} + + LSYM(Lepilogue_vfp): + RETLDM "r0-r3,fp" +@@ -420,7 +420,7 @@ LSYM(Lepilogue_vfp): + + + ARM_FUNC_START(ffi_closure_VFP) +- fstmfdd sp!, {d0-d7} ++ vstmdb sp!, {d0-d7} + @ r0-r3, then d0-d7 + UNWIND .pad #80 + add ip, sp, #80 +@@ -470,10 +470,10 @@ ARM_FUNC_START(ffi_closure_VFP) + ldmia sp, {r0, r1} + b .Lclosure_epilogue_vfp + .Lretfloat_struct_vfp: +- fldmiad sp, {d0-d1} ++ vldmia sp, {d0-d1} + b .Lclosure_epilogue_vfp + .Lretdouble_struct_vfp: +- fldmiad sp, {d0-d3} ++ vldmia sp, {d0-d3} + b .Lclosure_epilogue_vfp + + .ffi_closure_VFP_end: