30 lines
692 B
Text
30 lines
692 B
Text
|
Index: src/runtime/tls_riscv64.s
|
||
|
--- src/runtime/tls_riscv64.s.orig
|
||
|
+++ src/runtime/tls_riscv64.s
|
||
|
@@ -11,20 +11,16 @@
|
||
|
//
|
||
|
// NOTE: mcall() assumes this clobbers only X31 (REG_TMP).
|
||
|
TEXT runtime·save_g(SB),NOSPLIT|NOFRAME,$0-0
|
||
|
+#ifndef GOOS_openbsd
|
||
|
MOVB runtime·iscgo(SB), X31
|
||
|
- BEQ X0, X31, nocgo
|
||
|
-
|
||
|
- MOV runtime·tls_g(SB), X31
|
||
|
- ADD TP, X31 // add offset to thread pointer (X4)
|
||
|
- MOV g, (X31)
|
||
|
-
|
||
|
+ BEQZ X31, nocgo
|
||
|
+#endif
|
||
|
+ MOV g, runtime·tls_g(SB)
|
||
|
nocgo:
|
||
|
RET
|
||
|
|
||
|
TEXT runtime·load_g(SB),NOSPLIT|NOFRAME,$0-0
|
||
|
- MOV runtime·tls_g(SB), X31
|
||
|
- ADD TP, X31 // add offset to thread pointer (X4)
|
||
|
- MOV (X31), g
|
||
|
+ MOV runtime·tls_g(SB), g
|
||
|
RET
|
||
|
|
||
|
GLOBL runtime·tls_g(SB), TLSBSS, $8
|