Replace RETLDM macro. The macro is incompatible with Apple's assembler; switch to a simple inline version.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
diff --git a/src/arm/sysv.S b/src/arm/sysv.S
index 14a7f03..95329d7 100644
--- a/src/arm/sysv.S
+++ b/src/arm/sysv.S
@@ -147,23 +147,6 @@ _L__\name:
.endm
#endif
-.macro RETLDM regs=, cond=, dirn=ia
-#if defined (__INTERWORKING__)
- .ifc "\regs",""
- ldr\cond lr, [sp], #4
- .else
- ldm\cond\dirn sp!, {\regs, lr}
- .endif
- bx\cond lr
-#else
- .ifc "\regs",""
- ldr\cond pc, [sp], #4
- .else
- ldm\cond\dirn sp!, {\regs, pc}
- .endif
-#endif
-.endm
-
@ r0: ffi_prep_args
@ r1: &ecif
@ r2: cif->bytes
@@ -424,7 +407,12 @@ LSYM(Lbase_args):
fstmiadeq r2, {d0-d3}
LSYM(Lepilogue_vfp):
- RETLDM "r0-r3,fp"
+#if defined (__INTERWORKING__)
+ ldmia sp!, {r0-r3,fp, lr}
+ bx lr
+#else
+ ldmia sp!, {r0-r3,fp, pc}
+#endif
.ffi_call_VFP_end:
UNWIND .fnend