aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/preempt_arm64.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/preempt_arm64.s')
-rw-r--r--src/runtime/preempt_arm64.s5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/runtime/preempt_arm64.s b/src/runtime/preempt_arm64.s
index 3c27b52de1..2b70a28479 100644
--- a/src/runtime/preempt_arm64.s
+++ b/src/runtime/preempt_arm64.s
@@ -3,14 +3,15 @@
#include "go_asm.h"
#include "textflag.h"
-TEXT ·asyncPreempt(SB),NOSPLIT|NOFRAME,$0-0
+// Note: asyncPreempt doesn't use the internal ABI, but we must be able to inject calls to it from the signal handler, so Go code has to see the PC of this function literally.
+TEXT ·asyncPreempt<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-0
MOVD R30, -496(RSP)
SUB $496, RSP
#ifdef GOOS_linux
MOVD R29, -8(RSP)
SUB $8, RSP, R29
#endif
- #ifdef GOOS_darwin
+ #ifdef GOOS_ios
MOVD R30, (RSP)
#endif
MOVD R0, 8(RSP)