mirror of
https://git.freebsd.org/ports.git
synced 2025-06-08 14:20:33 -04:00
55 lines
1.3 KiB
ArmAsm
55 lines
1.3 KiB
ArmAsm
# Description: 3.2.1 fails to build with clang 3.5.0 on arm
|
|
# Issue ID: https://github.com/atgreen/libffi/issues/162
|
|
# Submitted by: sbruno
|
|
|
|
--- 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)
|
|
|
|
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 @@ 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:
|