runtime: mark osyield nosplit on OpenBSD

osyield is called in code paths that are not allowed to split
stack, e.g. casgstatus called from entersyscall/exitsyscall.
It is nosplit on all other platforms. Mark it nosplit on OpenBSD
as well.

Change-Id: I3fed5d7f58b3d50610beca6eed2c7e902b8ec52c
Reviewed-on: https://go-review.googlesource.com/c/go/+/319969
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Joel Sing <joel@sing.id.au>
This commit is contained in:
Cherry Mui 2021-05-13 18:19:42 -04:00
parent 3d324f127d
commit 02699f810a

View file

@ -23,6 +23,7 @@ func thrwakeup(ident uintptr, n int32) int32 {
}
func thrwakeup_trampoline()
//go:nosplit
func osyield() {
libcCall(unsafe.Pointer(funcPC(sched_yield_trampoline)), unsafe.Pointer(nil))
}