runtime: check for gsignal in racecall on loong64

This issue has been fixed for amd64, arm64 and other platforms
in CL 643875, but it was missed when the race support was
submitted for loong64.

Fixes #71395.

Change-Id: I678f381e868214f1b3399be43187db49e1660933
Reviewed-on: https://go-review.googlesource.com/c/go/+/679055
Reviewed-by: Meidan Li <limeidan@loongson.cn>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
This commit is contained in:
Guoqi Chen 2025-06-05 19:23:55 +08:00 committed by abner chenc
parent 0ccfbc834a
commit d184f8dc02

View File

@ -461,8 +461,13 @@ TEXT racecall<>(SB), NOSPLIT|NOFRAME, $0-0
// Switch to g0 stack.
MOVV R3, R23 // callee-saved, preserved across the CALL
MOVV R1, R24 // callee-saved, preserved across the CALL
// Switch to g0 stack if we aren't already on g0 or gsignal.
MOVV m_gsignal(R12), R13
BEQ R13, g, call
MOVV m_g0(R12), R13
BEQ R13, g, call // already on g0
BEQ R13, g, call
MOVV (g_sched+gobuf_sp)(R13), R3
call:
JAL (RCALL)