*/
.text
.global CSYM(fiber_switchContext)
+#ifndef __APPLE__
.type CSYM(fiber_switchContext), %function
+#endif
.align 4
CSYM(fiber_switchContext):
.cfi_startproc
ldp d15, d14, [sp], #20*8
ret
.cfi_endproc
+#ifndef __APPLE__
.size CSYM(fiber_switchContext),.-CSYM(fiber_switchContext)
-
+#endif
/**
* When generating any kind of backtrace (gdb, exception handling) for
* a function called in a Fiber, we need to tell the unwinder to stop
.text
.global CSYM(fiber_trampoline)
.p2align 2
+#ifndef __APPLE__
.type CSYM(fiber_trampoline), %function
+#endif
CSYM(fiber_trampoline):
.cfi_startproc
.cfi_undefined x30
// fiber_entryPoint never returns
bl CSYM(fiber_entryPoint)
.cfi_endproc
+#ifndef __APPLE__
.size CSYM(fiber_trampoline),.-CSYM(fiber_trampoline)
+#endif
*/
.text
+#ifndef __APPLE__
#if defined(__ARM_PCS_VFP) || (defined(__ARM_PCS) && !defined(__SOFTFP__))
.fpu vfp
#endif
.global CSYM(fiber_switchContext)
.type CSYM(fiber_switchContext), %function
+#else
+ .global CSYM(fiber_switchContext)
+#endif
.align 4
CSYM(fiber_switchContext):
.cfi_sections .debug_frame
mov lr, #0
// return by writing lr into pc
mov pc, r1
+#ifndef __APPLE__
.fnend
.cfi_endproc
.size CSYM(fiber_switchContext),.-CSYM(fiber_switchContext)
+#else
+ .cfi_endproc
+#endif
#endif
{
version (X86) version = UnsafeFiberMigration;
version (X86_64) version = UnsafeFiberMigration;
+ version (AArch64) version = UnsafeFiberMigration;
}
version (UnsafeFiberMigration)