From: Guoqi Chen Date: Thu, 5 Jun 2025 11:23:55 +0000 (+0800) Subject: runtime: check for gsignal in racecall on loong64 X-Git-Tag: go1.25rc1~2^2~2 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d184f8dc02;p=gostls13.git 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 Reviewed-by: Michael Knyszek Reviewed-by: sophie zhao LUCI-TryBot-Result: Go LUCI Reviewed-by: Carlos Amedee --- diff --git a/src/runtime/race_loong64.s b/src/runtime/race_loong64.s index 597e0cc6b9..d731871d44 100644 --- a/src/runtime/race_loong64.s +++ b/src/runtime/race_loong64.s @@ -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)