aboutsummaryrefslogtreecommitdiff
path: root/libphobos
diff options
context:
space:
mode:
Diffstat (limited to 'libphobos')
-rw-r--r--libphobos/libdruntime/config/aarch64/switchcontext.S9
-rw-r--r--libphobos/libdruntime/config/arm/switchcontext.S8
-rw-r--r--libphobos/libdruntime/core/thread/fiber.d1
3 files changed, 17 insertions, 1 deletions
diff --git a/libphobos/libdruntime/config/aarch64/switchcontext.S b/libphobos/libdruntime/config/aarch64/switchcontext.S
index 5cfa2f6..d3bd646 100644
--- a/libphobos/libdruntime/config/aarch64/switchcontext.S
+++ b/libphobos/libdruntime/config/aarch64/switchcontext.S
@@ -44,7 +44,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
*/
.text
.global CSYM(fiber_switchContext)
+#ifndef __APPLE__
.type CSYM(fiber_switchContext), %function
+#endif
.align 4
CSYM(fiber_switchContext):
.cfi_startproc
@@ -77,8 +79,9 @@ CSYM(fiber_switchContext):
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
@@ -93,11 +96,15 @@ CSYM(fiber_switchContext):
.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
diff --git a/libphobos/libdruntime/config/arm/switchcontext.S b/libphobos/libdruntime/config/arm/switchcontext.S
index 3f9b35e..f1f2060 100644
--- a/libphobos/libdruntime/config/arm/switchcontext.S
+++ b/libphobos/libdruntime/config/arm/switchcontext.S
@@ -60,11 +60,15 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
*/
.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
@@ -111,8 +115,12 @@ CSYM(fiber_switchContext):
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
diff --git a/libphobos/libdruntime/core/thread/fiber.d b/libphobos/libdruntime/core/thread/fiber.d
index 4590ff1..66fb9da 100644
--- a/libphobos/libdruntime/core/thread/fiber.d
+++ b/libphobos/libdruntime/core/thread/fiber.d
@@ -1785,6 +1785,7 @@ version (OSX)
{
version (X86) version = UnsafeFiberMigration;
version (X86_64) version = UnsafeFiberMigration;
+ version (AArch64) version = UnsafeFiberMigration;
}
version (UnsafeFiberMigration)