]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix asan wrapper for riscv64
authorKeith Randall <khr@golang.org>
Sat, 19 Jul 2025 16:34:04 +0000 (09:34 -0700)
committerGopher Robot <gobot@golang.org>
Mon, 21 Jul 2025 17:01:15 +0000 (10:01 -0700)
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>

src/runtime/asan_riscv64.s

index eb76e61ffb2ef902939b27497696e7c7b28977ac..5a333361dde90d3acb7d8d9b79f4376af1c2a42f 100644 (file)
@@ -81,13 +81,13 @@ TEXT        asancall<>(SB), NOSPLIT, $0-0
        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