Skip to content

Commit 7607888

Browse files
XiaodongLoongianlancetaylor
authored andcommitted
runtime: load/save TLS variable g on loong64
Contributors to the loong64 port are: Weining Lu <[email protected]> Lei Wang <[email protected]> Lingqin Gong <[email protected]> Xiaolin Zhao <[email protected]> Meidan Li <[email protected]> Xiaojuan Zhai <[email protected]> Qiyuan Pu <[email protected]> Guoqi Chen <[email protected]> This port has been updated to Go 1.15.6: https://github.com/loongson/go Updates #46229 Change-Id: I5e09759ce9201596e89a01fc4a6f7fd7e205449f Reviewed-on: https://go-review.googlesource.com/c/go/+/368074 Reviewed-by: David Chase <[email protected]> Auto-Submit: Ian Lance Taylor <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]> Run-TryBot: Ian Lance Taylor <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
1 parent 13147f7 commit 7607888

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

src/runtime/stubs_loong64.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// Copyright 2022 The Go Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style
3+
// license that can be found in the LICENSE file.
4+
5+
//go:build loong64
6+
7+
package runtime
8+
9+
// Called from assembly only; declared for go vet.
10+
func load_g()
11+
func save_g()

src/runtime/tls_loong64.s

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Copyright 2022 The Go Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style
3+
// license that can be found in the LICENSE file.
4+
5+
#include "go_asm.h"
6+
#include "go_tls.h"
7+
#include "funcdata.h"
8+
#include "textflag.h"
9+
10+
// If !iscgo, this is a no-op.
11+
//
12+
// NOTE: mcall() assumes this clobbers only R30 (REGTMP).
13+
TEXT runtime·save_g(SB),NOSPLIT|NOFRAME,$0-0
14+
MOVB runtime·iscgo(SB), R30
15+
BEQ R30, nocgo
16+
17+
MOVV g, runtime·tls_g(SB)
18+
19+
nocgo:
20+
RET
21+
22+
TEXT runtime·load_g(SB),NOSPLIT|NOFRAME,$0-0
23+
MOVV runtime·tls_g(SB), g
24+
RET
25+
26+
GLOBL runtime·tls_g(SB), TLSBSS, $8

0 commit comments

Comments
 (0)