]> Cypherpunks repositories - gostls13.git/commitdiff
runtime/internal/atomic: enable atomic 64bit types for all functions on linux/loong64
authorGuoqi Chen <chenguoqi@loongson.cn>
Mon, 27 Jun 2022 12:36:27 +0000 (20:36 +0800)
committerWayne Zuo <wdvxdr@golangcn.org>
Sat, 29 Oct 2022 02:44:29 +0000 (02:44 +0000)
ref. CL 356169

Change-Id: I813750d3fe191afe50d4029024ba97800211f688
Reviewed-on: https://go-review.googlesource.com/c/go/+/414414
Reviewed-by: WANG Xuerui <git@xen0n.name>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Wayne Zuo <wdvxdr@golangcn.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/runtime/internal/atomic/atomic_loong64.go
src/runtime/internal/atomic/atomic_loong64.s
src/runtime/internal/atomic/types_64bit.go

index 908a7d69aa376ea88f8b25f437603e7b6a63e4fc..d82a5b8e2ac8beb33cff6c288f9fa5ef8567307c 100644 (file)
@@ -41,6 +41,9 @@ func Loadp(ptr unsafe.Pointer) unsafe.Pointer
 //go:noescape
 func LoadAcq(ptr *uint32) uint32
 
+//go:noescape
+func LoadAcq64(ptr *uint64) uint64
+
 //go:noescape
 func LoadAcquintptr(ptr *uintptr) uintptr
 
@@ -79,5 +82,8 @@ func StorepNoWB(ptr unsafe.Pointer, val unsafe.Pointer)
 //go:noescape
 func StoreRel(ptr *uint32, val uint32)
 
+//go:noescape
+func StoreRel64(ptr *uint64, val uint64)
+
 //go:noescape
 func StoreReluintptr(ptr *uintptr, val uintptr)
index bfb6c7e130d65396185b0a699770dc8695f1822b..3d802beaa74fc47a867ce05b6989d8a0d710a849 100644 (file)
@@ -156,6 +156,9 @@ TEXT ·StorepNoWB(SB), NOSPLIT, $0-16
 TEXT ·StoreRel(SB), NOSPLIT, $0-12
        JMP     ·Store(SB)
 
+TEXT ·StoreRel64(SB), NOSPLIT, $0-16
+       JMP     ·Store64(SB)
+
 TEXT ·StoreReluintptr(SB), NOSPLIT, $0-16
        JMP     ·Store64(SB)
 
@@ -293,6 +296,10 @@ TEXT ·Loadp(SB),NOSPLIT|NOFRAME,$0-16
 TEXT ·LoadAcq(SB),NOSPLIT|NOFRAME,$0-12
        JMP     atomic·Load(SB)
 
+// uint64 ·LoadAcq64(uint64 volatile* ptr)
+TEXT ·LoadAcq64(SB),NOSPLIT|NOFRAME,$0-16
+       JMP     atomic·Load64(SB)
+
 // uintptr ·LoadAcquintptr(uintptr volatile* ptr)
 TEXT ·LoadAcquintptr(SB),NOSPLIT|NOFRAME,$0-16
        JMP     atomic·Load64(SB)
index fda2de9cc4ccaad7fd995bc949208d4e3f58d24b..006e83ba8788ec5d4e86baba8c160cf00875695b 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build amd64 || arm64 || mips64 || mips64le || ppc64 || ppc64le || riscv64 || s390x || wasm
+//go:build amd64 || arm64 || loong64 || mips64 || mips64le || ppc64 || ppc64le || riscv64 || s390x || wasm
 
 package atomic