blob: 54f035d36b43add8f1a83a34fd73644c35fa699f [file] [log] [blame]
Fix libffi build with clang because of unsupported asm syntax.
https://crbug.com/524171
diff -Nuar old/src/arm/sysv.S new/src/arm/sysv.S
--- old/src/arm/sysv.S
+++ new/src/arm/sysv.S
@@ -360,7 +360,7 @@
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 @@
beq LSYM(Lepilogue_vfp)
cmp r3, #FFI_TYPE_SINT64
- stmeqia r2, {r0, r1}
+ stmiaeq r2, {r0, r1}
beq LSYM(Lepilogue_vfp)
cmp r3, #FFI_TYPE_FLOAT
@@ -409,7 +409,7 @@
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 @@
ARM_FUNC_START(ffi_closure_VFP)
- fstmfdd sp!, {d0-d7}
+ vpush {d0-d7}
@ r0-r3, then d0-d7
UNWIND .pad #80
add ip, sp, #80
@@ -470,10 +470,10 @@
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: