[dev.typeparams] runtime: use internal/abi.FuncPCABI0 for syscall wrappers on OpenBSD

Same as CL 313230, for OpenBSD.

Change-Id: I56f4a8a368e1a17615a01db4e2b6c53e4ed263bd
Reviewed-on: https://go-review.googlesource.com/c/go/+/320889
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
Cherry Mui 2021-05-13 18:07:57 -04:00
parent bbc0059b03
commit 140cd7c1d3
7 changed files with 64 additions and 50 deletions

View file

@ -5,6 +5,7 @@
package runtime package runtime
import ( import (
"internal/abi"
"runtime/internal/atomic" "runtime/internal/atomic"
"unsafe" "unsafe"
) )
@ -192,7 +193,7 @@ func setsig(i uint32, fn uintptr) {
sa.sa_flags = _SA_SIGINFO | _SA_ONSTACK | _SA_RESTART sa.sa_flags = _SA_SIGINFO | _SA_ONSTACK | _SA_RESTART
sa.sa_mask = uint32(sigset_all) sa.sa_mask = uint32(sigset_all)
if fn == funcPC(sighandler) { if fn == funcPC(sighandler) {
fn = funcPC(sigtramp) fn = abi.FuncPCABI0(sigtramp)
} }
sa.sa_sigaction = fn sa.sa_sigaction = fn
sigaction(i, &sa, nil) sigaction(i, &sa, nil)

View file

@ -8,6 +8,7 @@
package runtime package runtime
import ( import (
"internal/abi"
"unsafe" "unsafe"
) )
@ -48,7 +49,7 @@ func newosproc(mp *m) {
// setup and then calls mstart. // setup and then calls mstart.
var oset sigset var oset sigset
sigprocmask(_SIG_SETMASK, &sigset_all, &oset) sigprocmask(_SIG_SETMASK, &sigset_all, &oset)
err := pthread_create(&attr, funcPC(mstart_stub), unsafe.Pointer(mp)) err := pthread_create(&attr, abi.FuncPCABI0(mstart_stub), unsafe.Pointer(mp))
sigprocmask(_SIG_SETMASK, &oset, nil) sigprocmask(_SIG_SETMASK, &oset, nil)
if err != 0 { if err != 0 {
write(2, unsafe.Pointer(&failThreadCreate[0]), int32(len(failThreadCreate))) write(2, unsafe.Pointer(&failThreadCreate[0]), int32(len(failThreadCreate)))

View file

@ -7,7 +7,10 @@
package runtime package runtime
import "unsafe" import (
"internal/abi"
"unsafe"
)
// The *_trampoline functions convert from the Go calling convention to the C calling convention // The *_trampoline functions convert from the Go calling convention to the C calling convention
// and then call the underlying libc function. These are defined in sys_openbsd_$ARCH.s. // and then call the underlying libc function. These are defined in sys_openbsd_$ARCH.s.
@ -15,35 +18,35 @@ import "unsafe"
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func pthread_attr_init(attr *pthreadattr) int32 { func pthread_attr_init(attr *pthreadattr) int32 {
return libcCall(unsafe.Pointer(funcPC(pthread_attr_init_trampoline)), unsafe.Pointer(&attr)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(pthread_attr_init_trampoline)), unsafe.Pointer(&attr))
} }
func pthread_attr_init_trampoline() func pthread_attr_init_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func pthread_attr_destroy(attr *pthreadattr) int32 { func pthread_attr_destroy(attr *pthreadattr) int32 {
return libcCall(unsafe.Pointer(funcPC(pthread_attr_destroy_trampoline)), unsafe.Pointer(&attr)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(pthread_attr_destroy_trampoline)), unsafe.Pointer(&attr))
} }
func pthread_attr_destroy_trampoline() func pthread_attr_destroy_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func pthread_attr_getstacksize(attr *pthreadattr, size *uintptr) int32 { func pthread_attr_getstacksize(attr *pthreadattr, size *uintptr) int32 {
return libcCall(unsafe.Pointer(funcPC(pthread_attr_getstacksize_trampoline)), unsafe.Pointer(&attr)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(pthread_attr_getstacksize_trampoline)), unsafe.Pointer(&attr))
} }
func pthread_attr_getstacksize_trampoline() func pthread_attr_getstacksize_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func pthread_attr_setdetachstate(attr *pthreadattr, state int) int32 { func pthread_attr_setdetachstate(attr *pthreadattr, state int) int32 {
return libcCall(unsafe.Pointer(funcPC(pthread_attr_setdetachstate_trampoline)), unsafe.Pointer(&attr)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(pthread_attr_setdetachstate_trampoline)), unsafe.Pointer(&attr))
} }
func pthread_attr_setdetachstate_trampoline() func pthread_attr_setdetachstate_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func pthread_create(attr *pthreadattr, start uintptr, arg unsafe.Pointer) int32 { func pthread_create(attr *pthreadattr, start uintptr, arg unsafe.Pointer) int32 {
return libcCall(unsafe.Pointer(funcPC(pthread_create_trampoline)), unsafe.Pointer(&attr)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(pthread_create_trampoline)), unsafe.Pointer(&attr))
} }
func pthread_create_trampoline() func pthread_create_trampoline()

View file

@ -7,31 +7,34 @@
package runtime package runtime
import "unsafe" import (
"internal/abi"
"unsafe"
)
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func thrsleep(ident uintptr, clock_id int32, tsp *timespec, lock uintptr, abort *uint32) int32 { func thrsleep(ident uintptr, clock_id int32, tsp *timespec, lock uintptr, abort *uint32) int32 {
return libcCall(unsafe.Pointer(funcPC(thrsleep_trampoline)), unsafe.Pointer(&ident)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(thrsleep_trampoline)), unsafe.Pointer(&ident))
} }
func thrsleep_trampoline() func thrsleep_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func thrwakeup(ident uintptr, n int32) int32 { func thrwakeup(ident uintptr, n int32) int32 {
return libcCall(unsafe.Pointer(funcPC(thrwakeup_trampoline)), unsafe.Pointer(&ident)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(thrwakeup_trampoline)), unsafe.Pointer(&ident))
} }
func thrwakeup_trampoline() func thrwakeup_trampoline()
//go:nosplit //go:nosplit
func osyield() { func osyield() {
libcCall(unsafe.Pointer(funcPC(sched_yield_trampoline)), unsafe.Pointer(nil)) libcCall(unsafe.Pointer(abi.FuncPCABI0(sched_yield_trampoline)), unsafe.Pointer(nil))
} }
func sched_yield_trampoline() func sched_yield_trampoline()
//go:nosplit //go:nosplit
func osyield_no_g() { func osyield_no_g() {
asmcgocall_no_g(unsafe.Pointer(funcPC(sched_yield_trampoline)), unsafe.Pointer(nil)) asmcgocall_no_g(unsafe.Pointer(abi.FuncPCABI0(sched_yield_trampoline)), unsafe.Pointer(nil))
} }
//go:cgo_import_dynamic libc_thrsleep __thrsleep "libc.so" //go:cgo_import_dynamic libc_thrsleep __thrsleep "libc.so"

View file

@ -7,21 +7,24 @@
package runtime package runtime
import "unsafe" import (
"internal/abi"
"unsafe"
)
// This is exported via linkname to assembly in runtime/cgo. // This is exported via linkname to assembly in runtime/cgo.
//go:linkname exit //go:linkname exit
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func exit(code int32) { func exit(code int32) {
libcCall(unsafe.Pointer(funcPC(exit_trampoline)), unsafe.Pointer(&code)) libcCall(unsafe.Pointer(abi.FuncPCABI0(exit_trampoline)), unsafe.Pointer(&code))
} }
func exit_trampoline() func exit_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func getthrid() (tid int32) { func getthrid() (tid int32) {
libcCall(unsafe.Pointer(funcPC(getthrid_trampoline)), unsafe.Pointer(&tid)) libcCall(unsafe.Pointer(abi.FuncPCABI0(getthrid_trampoline)), unsafe.Pointer(&tid))
return return
} }
func getthrid_trampoline() func getthrid_trampoline()
@ -29,14 +32,14 @@ func getthrid_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func raiseproc(sig uint32) { func raiseproc(sig uint32) {
libcCall(unsafe.Pointer(funcPC(raiseproc_trampoline)), unsafe.Pointer(&sig)) libcCall(unsafe.Pointer(abi.FuncPCABI0(raiseproc_trampoline)), unsafe.Pointer(&sig))
} }
func raiseproc_trampoline() func raiseproc_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func thrkill(tid int32, sig int) { func thrkill(tid int32, sig int) {
libcCall(unsafe.Pointer(funcPC(thrkill_trampoline)), unsafe.Pointer(&tid)) libcCall(unsafe.Pointer(abi.FuncPCABI0(thrkill_trampoline)), unsafe.Pointer(&tid))
} }
func thrkill_trampoline() func thrkill_trampoline()
@ -53,7 +56,7 @@ func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uint32) (un
ret1 unsafe.Pointer ret1 unsafe.Pointer
ret2 int ret2 int
}{addr, n, prot, flags, fd, off, nil, 0} }{addr, n, prot, flags, fd, off, nil, 0}
libcCall(unsafe.Pointer(funcPC(mmap_trampoline)), unsafe.Pointer(&args)) libcCall(unsafe.Pointer(abi.FuncPCABI0(mmap_trampoline)), unsafe.Pointer(&args))
return args.ret1, args.ret2 return args.ret1, args.ret2
} }
func mmap_trampoline() func mmap_trampoline()
@ -61,42 +64,42 @@ func mmap_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func munmap(addr unsafe.Pointer, n uintptr) { func munmap(addr unsafe.Pointer, n uintptr) {
libcCall(unsafe.Pointer(funcPC(munmap_trampoline)), unsafe.Pointer(&addr)) libcCall(unsafe.Pointer(abi.FuncPCABI0(munmap_trampoline)), unsafe.Pointer(&addr))
} }
func munmap_trampoline() func munmap_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func madvise(addr unsafe.Pointer, n uintptr, flags int32) { func madvise(addr unsafe.Pointer, n uintptr, flags int32) {
libcCall(unsafe.Pointer(funcPC(madvise_trampoline)), unsafe.Pointer(&addr)) libcCall(unsafe.Pointer(abi.FuncPCABI0(madvise_trampoline)), unsafe.Pointer(&addr))
} }
func madvise_trampoline() func madvise_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func open(name *byte, mode, perm int32) (ret int32) { func open(name *byte, mode, perm int32) (ret int32) {
return libcCall(unsafe.Pointer(funcPC(open_trampoline)), unsafe.Pointer(&name)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(open_trampoline)), unsafe.Pointer(&name))
} }
func open_trampoline() func open_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func closefd(fd int32) int32 { func closefd(fd int32) int32 {
return libcCall(unsafe.Pointer(funcPC(close_trampoline)), unsafe.Pointer(&fd)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(close_trampoline)), unsafe.Pointer(&fd))
} }
func close_trampoline() func close_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func read(fd int32, p unsafe.Pointer, n int32) int32 { func read(fd int32, p unsafe.Pointer, n int32) int32 {
return libcCall(unsafe.Pointer(funcPC(read_trampoline)), unsafe.Pointer(&fd)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(read_trampoline)), unsafe.Pointer(&fd))
} }
func read_trampoline() func read_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func write1(fd uintptr, p unsafe.Pointer, n int32) int32 { func write1(fd uintptr, p unsafe.Pointer, n int32) int32 {
return libcCall(unsafe.Pointer(funcPC(write_trampoline)), unsafe.Pointer(&fd)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(write_trampoline)), unsafe.Pointer(&fd))
} }
func write_trampoline() func write_trampoline()
@ -110,7 +113,7 @@ func pipe2(flags int32) (r, w int32, errno int32) {
p unsafe.Pointer p unsafe.Pointer
flags int32 flags int32
}{noescape(unsafe.Pointer(&p)), flags} }{noescape(unsafe.Pointer(&p)), flags}
errno = libcCall(unsafe.Pointer(funcPC(pipe2_trampoline)), unsafe.Pointer(&args)) errno = libcCall(unsafe.Pointer(abi.FuncPCABI0(pipe2_trampoline)), unsafe.Pointer(&args))
return p[0], p[1], errno return p[0], p[1], errno
} }
func pipe2_trampoline() func pipe2_trampoline()
@ -118,34 +121,34 @@ func pipe2_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func setitimer(mode int32, new, old *itimerval) { func setitimer(mode int32, new, old *itimerval) {
libcCall(unsafe.Pointer(funcPC(setitimer_trampoline)), unsafe.Pointer(&mode)) libcCall(unsafe.Pointer(abi.FuncPCABI0(setitimer_trampoline)), unsafe.Pointer(&mode))
} }
func setitimer_trampoline() func setitimer_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func usleep(usec uint32) { func usleep(usec uint32) {
libcCall(unsafe.Pointer(funcPC(usleep_trampoline)), unsafe.Pointer(&usec)) libcCall(unsafe.Pointer(abi.FuncPCABI0(usleep_trampoline)), unsafe.Pointer(&usec))
} }
func usleep_trampoline() func usleep_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func usleep_no_g(usec uint32) { func usleep_no_g(usec uint32) {
asmcgocall_no_g(unsafe.Pointer(funcPC(usleep_trampoline)), unsafe.Pointer(&usec)) asmcgocall_no_g(unsafe.Pointer(abi.FuncPCABI0(usleep_trampoline)), unsafe.Pointer(&usec))
} }
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func sysctl(mib *uint32, miblen uint32, out *byte, size *uintptr, dst *byte, ndst uintptr) int32 { func sysctl(mib *uint32, miblen uint32, out *byte, size *uintptr, dst *byte, ndst uintptr) int32 {
return libcCall(unsafe.Pointer(funcPC(sysctl_trampoline)), unsafe.Pointer(&mib)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(sysctl_trampoline)), unsafe.Pointer(&mib))
} }
func sysctl_trampoline() func sysctl_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func fcntl(fd, cmd, arg int32) int32 { func fcntl(fd, cmd, arg int32) int32 {
return libcCall(unsafe.Pointer(funcPC(fcntl_trampoline)), unsafe.Pointer(&fd)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(fcntl_trampoline)), unsafe.Pointer(&fd))
} }
func fcntl_trampoline() func fcntl_trampoline()
@ -156,7 +159,7 @@ func nanotime1() int64 {
clock_id int32 clock_id int32
tp unsafe.Pointer tp unsafe.Pointer
}{_CLOCK_MONOTONIC, unsafe.Pointer(&ts)} }{_CLOCK_MONOTONIC, unsafe.Pointer(&ts)}
libcCall(unsafe.Pointer(funcPC(clock_gettime_trampoline)), unsafe.Pointer(&args)) libcCall(unsafe.Pointer(abi.FuncPCABI0(clock_gettime_trampoline)), unsafe.Pointer(&args))
return ts.tv_sec*1e9 + int64(ts.tv_nsec) return ts.tv_sec*1e9 + int64(ts.tv_nsec)
} }
func clock_gettime_trampoline() func clock_gettime_trampoline()
@ -168,42 +171,42 @@ func walltime() (int64, int32) {
clock_id int32 clock_id int32
tp unsafe.Pointer tp unsafe.Pointer
}{_CLOCK_REALTIME, unsafe.Pointer(&ts)} }{_CLOCK_REALTIME, unsafe.Pointer(&ts)}
libcCall(unsafe.Pointer(funcPC(clock_gettime_trampoline)), unsafe.Pointer(&args)) libcCall(unsafe.Pointer(abi.FuncPCABI0(clock_gettime_trampoline)), unsafe.Pointer(&args))
return ts.tv_sec, int32(ts.tv_nsec) return ts.tv_sec, int32(ts.tv_nsec)
} }
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func kqueue() int32 { func kqueue() int32 {
return libcCall(unsafe.Pointer(funcPC(kqueue_trampoline)), nil) return libcCall(unsafe.Pointer(abi.FuncPCABI0(kqueue_trampoline)), nil)
} }
func kqueue_trampoline() func kqueue_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func kevent(kq int32, ch *keventt, nch int32, ev *keventt, nev int32, ts *timespec) int32 { func kevent(kq int32, ch *keventt, nch int32, ev *keventt, nev int32, ts *timespec) int32 {
return libcCall(unsafe.Pointer(funcPC(kevent_trampoline)), unsafe.Pointer(&kq)) return libcCall(unsafe.Pointer(abi.FuncPCABI0(kevent_trampoline)), unsafe.Pointer(&kq))
} }
func kevent_trampoline() func kevent_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func sigaction(sig uint32, new *sigactiont, old *sigactiont) { func sigaction(sig uint32, new *sigactiont, old *sigactiont) {
libcCall(unsafe.Pointer(funcPC(sigaction_trampoline)), unsafe.Pointer(&sig)) libcCall(unsafe.Pointer(abi.FuncPCABI0(sigaction_trampoline)), unsafe.Pointer(&sig))
} }
func sigaction_trampoline() func sigaction_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func sigprocmask(how uint32, new *sigset, old *sigset) { func sigprocmask(how uint32, new *sigset, old *sigset) {
libcCall(unsafe.Pointer(funcPC(sigprocmask_trampoline)), unsafe.Pointer(&how)) libcCall(unsafe.Pointer(abi.FuncPCABI0(sigprocmask_trampoline)), unsafe.Pointer(&how))
} }
func sigprocmask_trampoline() func sigprocmask_trampoline()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func sigaltstack(new *stackt, old *stackt) { func sigaltstack(new *stackt, old *stackt) {
libcCall(unsafe.Pointer(funcPC(sigaltstack_trampoline)), unsafe.Pointer(&new)) libcCall(unsafe.Pointer(abi.FuncPCABI0(sigaltstack_trampoline)), unsafe.Pointer(&new))
} }
func sigaltstack_trampoline() func sigaltstack_trampoline()

View file

@ -7,7 +7,10 @@
package runtime package runtime
import "unsafe" import (
"internal/abi"
"unsafe"
)
// The X versions of syscall expect the libc call to return a 64-bit result. // The X versions of syscall expect the libc call to return a 64-bit result.
// Otherwise (the non-X version) expects a 32-bit result. // Otherwise (the non-X version) expects a 32-bit result.
@ -20,7 +23,7 @@ import "unsafe"
//go:cgo_unsafe_args //go:cgo_unsafe_args
func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2, err uintptr) { func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2, err uintptr) {
entersyscall() entersyscall()
libcCall(unsafe.Pointer(funcPC(syscall)), unsafe.Pointer(&fn)) libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall)), unsafe.Pointer(&fn))
exitsyscall() exitsyscall()
return return
} }
@ -31,7 +34,7 @@ func syscall()
//go:cgo_unsafe_args //go:cgo_unsafe_args
func syscall_syscallX(fn, a1, a2, a3 uintptr) (r1, r2, err uintptr) { func syscall_syscallX(fn, a1, a2, a3 uintptr) (r1, r2, err uintptr) {
entersyscall() entersyscall()
libcCall(unsafe.Pointer(funcPC(syscallX)), unsafe.Pointer(&fn)) libcCall(unsafe.Pointer(abi.FuncPCABI0(syscallX)), unsafe.Pointer(&fn))
exitsyscall() exitsyscall()
return return
} }
@ -42,7 +45,7 @@ func syscallX()
//go:cgo_unsafe_args //go:cgo_unsafe_args
func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) { func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) {
entersyscall() entersyscall()
libcCall(unsafe.Pointer(funcPC(syscall6)), unsafe.Pointer(&fn)) libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall6)), unsafe.Pointer(&fn))
exitsyscall() exitsyscall()
return return
} }
@ -53,7 +56,7 @@ func syscall6()
//go:cgo_unsafe_args //go:cgo_unsafe_args
func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) { func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) {
entersyscall() entersyscall()
libcCall(unsafe.Pointer(funcPC(syscall6X)), unsafe.Pointer(&fn)) libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall6X)), unsafe.Pointer(&fn))
exitsyscall() exitsyscall()
return return
} }
@ -64,7 +67,7 @@ func syscall6X()
//go:cgo_unsafe_args //go:cgo_unsafe_args
func syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2, err uintptr) { func syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2, err uintptr) {
entersyscall() entersyscall()
libcCall(unsafe.Pointer(funcPC(syscall10)), unsafe.Pointer(&fn)) libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall10)), unsafe.Pointer(&fn))
exitsyscall() exitsyscall()
return return
} }
@ -75,7 +78,7 @@ func syscall10()
//go:cgo_unsafe_args //go:cgo_unsafe_args
func syscall_syscall10X(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2, err uintptr) { func syscall_syscall10X(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2, err uintptr) {
entersyscall() entersyscall()
libcCall(unsafe.Pointer(funcPC(syscall10X)), unsafe.Pointer(&fn)) libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall10X)), unsafe.Pointer(&fn))
exitsyscall() exitsyscall()
return return
} }
@ -85,7 +88,7 @@ func syscall10X()
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2, err uintptr) { func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2, err uintptr) {
libcCall(unsafe.Pointer(funcPC(syscall)), unsafe.Pointer(&fn)) libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall)), unsafe.Pointer(&fn))
return return
} }
@ -93,7 +96,7 @@ func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2, err uintptr) {
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) { func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) {
libcCall(unsafe.Pointer(funcPC(syscall6)), unsafe.Pointer(&fn)) libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall6)), unsafe.Pointer(&fn))
return return
} }
@ -101,7 +104,7 @@ func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintpt
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func syscall_rawSyscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) { func syscall_rawSyscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) {
libcCall(unsafe.Pointer(funcPC(syscall6X)), unsafe.Pointer(&fn)) libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall6X)), unsafe.Pointer(&fn))
return return
} }
@ -109,6 +112,6 @@ func syscall_rawSyscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintp
//go:nosplit //go:nosplit
//go:cgo_unsafe_args //go:cgo_unsafe_args
func syscall_rawSyscall10X(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2, err uintptr) { func syscall_rawSyscall10X(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2, err uintptr) {
libcCall(unsafe.Pointer(funcPC(syscall10X)), unsafe.Pointer(&fn)) libcCall(unsafe.Pointer(abi.FuncPCABI0(syscall10X)), unsafe.Pointer(&fn))
return return
} }

View file

@ -58,7 +58,7 @@ TEXT runtime·sigfwd(SB),NOSPLIT,$0-32
RET RET
// Called using C ABI. // Called using C ABI.
TEXT runtime·sigtramp<ABIInternal>(SB),NOSPLIT,$0 TEXT runtime·sigtramp(SB),NOSPLIT,$0
// Transition from C ABI to Go ABI. // Transition from C ABI to Go ABI.
PUSH_REGS_HOST_TO_ABI0() PUSH_REGS_HOST_TO_ABI0()