]> Cypherpunks repositories - gostls13.git/commit
runtime: not mark save_g NOFRAME on ARM
authorCherry Mui <cherryyz@google.com>
Tue, 10 May 2022 20:09:54 +0000 (16:09 -0400)
committerCherry Mui <cherryyz@google.com>
Tue, 10 May 2022 20:38:07 +0000 (20:38 +0000)
commitaeaf4b0e5b21ea0819b4e862ed86ce44760516bf
tree12c65f885af21f3bed05d347004afcb3d19ff5f3
parent2ecf747e088fa6568621d719fbdf41c0d9221cc5
runtime: not mark save_g NOFRAME on ARM

On ARM, when GOARM<=6 the TLS pointer is fetched via a call to a
kernel helper. This call clobbers LR, even just temporarily. If
the function is NOFRAME, if a profiling signal lands right after
the call returns, the unwinder will find the wrong LR. Not mark it
NOFRAME, so the LR will be saved in the usual way and stack
unwinding should work.

May fix #52829.

Change-Id: I419a31dcf4afbcff8d7ab8f179eec3c477589e60
Reviewed-on: https://go-review.googlesource.com/c/go/+/405482
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
src/runtime/tls_arm.s