]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: don't use cgo_unsafe_args for syscall9 wrapper
authorKeith Randall <khr@golang.org>
Tue, 15 Apr 2025 16:19:36 +0000 (09:19 -0700)
committerKeith Randall <khr@golang.org>
Wed, 16 Apr 2025 06:25:16 +0000 (23:25 -0700)
It uses less stack space this way.

Similar to CL 386719
Update #71302

Change-Id: I585bde5f681a90a6900cbd326994ab8a122fd148
Reviewed-on: https://go-review.googlesource.com/c/go/+/665695
Reviewed-by: Keith Randall <khr@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/runtime/sys_darwin.go

index 5c769a71ea95ed4c1c6e9cc7f2519fc20cc3ef23..ad423afc60d7417491978beffb934a934f7f1adc 100644 (file)
@@ -70,12 +70,12 @@ func syscall6()
 //
 //go:linkname syscall_syscall9 syscall.syscall9
 //go:nosplit
-//go:cgo_unsafe_args
 func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2, err uintptr) {
+       args := struct{ fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, r1, r2, err uintptr }{fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, r1, r2, err}
        entersyscall()
-       libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall9)), unsafe.Pointer(&fn))
+       libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall9)), unsafe.Pointer(&args))
        exitsyscall()
-       return
+       return args.r1, args.r2, args.err
 }
 func syscall9()