aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/sys_darwin_arm64.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/sys_darwin_arm64.s')
-rw-r--r--src/runtime/sys_darwin_arm64.s6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/runtime/sys_darwin_arm64.s b/src/runtime/sys_darwin_arm64.s
index 788fdf87b7..a3901bdb3b 100644
--- a/src/runtime/sys_darwin_arm64.s
+++ b/src/runtime/sys_darwin_arm64.s
@@ -724,13 +724,9 @@ TEXT runtime·syscall9(SB),NOSPLIT,$0
MOVD 56(R0), R6 // a7
MOVD 64(R0), R7 // a8
MOVD 72(R0), R8 // a9
+ MOVD R8, 0(RSP) // the 9th arg and onwards must be passed on the stack
MOVD 8(R0), R0 // a1
- // If fn is declared as vararg, we have to pass the vararg arguments on the stack.
- // See syscall above. The only function this applies to is openat, for which the 4th
- // arg must be on the stack.
- MOVD R3, (RSP)
-
BL (R12)
MOVD 8(RSP), R2 // pop structure pointer