diff options
| author | Keith Randall <khr@golang.org> | 2025-07-19 09:34:04 -0700 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2025-07-21 10:01:15 -0700 |
| commit | 5dac42363ba8281a3f4f08e03af2292b763adc38 (patch) | |
| tree | 59263a812ed9a397e0db9d8c37f99c003b043449 | |
| parent | e5502e0959bb54ec70ca500e8d2b6f5ac5efbc53 (diff) | |
| download | go-5dac42363ba8281a3f4f08e03af2292b763adc38.tar.xz | |
runtime: fix asan wrapper for riscv64
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>
| -rw-r--r-- | src/runtime/asan_riscv64.s | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/runtime/asan_riscv64.s b/src/runtime/asan_riscv64.s index eb76e61ffb..5a333361dd 100644 --- a/src/runtime/asan_riscv64.s +++ b/src/runtime/asan_riscv64.s @@ -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 |
