Make sure we keep the M in X21. The instruction at line 87
needs to be loading from the M, not from the gsignal.
Fixes #73979, maybe?
Change-Id: I3aba1c35454636138b305bca26e20dbc8e6b1d6e
Reviewed-on: https://go-review.googlesource.com/c/go/+/688975
Reviewed-by: Joel Sing <joel@sing.id.au>
Reviewed-by: Michael Pratt <mpratt@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Meng Zhuo <mengzhuo1203@gmail.com>
Reviewed-by: Mark Ryan <markdryan@rivosinc.com>
Auto-Submit: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
MOV g_m(g), X21
// Switch to g0 stack if we aren't already on g0 or gsignal.
- MOV m_gsignal(X21), X21
- BEQ X21, g, call
+ MOV m_gsignal(X21), X22
+ BEQ X22, g, call
- MOV m_g0(X21), X21
- BEQ X21, g, call
+ MOV m_g0(X21), X22
+ BEQ X22, g, call
- MOV (g_sched+gobuf_sp)(X21), X2
+ MOV (g_sched+gobuf_sp)(X22), X2
call:
JALR RA, X14