]> Cypherpunks repositories - gostls13.git/commit
runtime: extend internal atomics to comply with sync/atomic
authorRuslan Andreev <ruslan.andreev@huawei.com>
Wed, 13 Jan 2021 14:36:19 +0000 (22:36 +0800)
committerKeith Randall <khr@golang.org>
Mon, 5 Apr 2021 15:56:14 +0000 (15:56 +0000)
commitaf1789a61c02fa769fcd4ab8addcbb9a160b987b
tree4650a9edcb748b903dfef7362dd3f2171690088a
parenta4b8241d97fb180e1b9cb41c4828345c931d1aaf
runtime: extend internal atomics to comply with sync/atomic

The CV add changes according to TODO in Go source-code.
Internal atomic set does not comply with sync/atomic library and has shortage
operations for signed integers.
This patch extend internal atomic set by Int32 and Int64 operations. It's
implemented new aliases and asm versions of operations. As a result Cas64 was
replaced by Casint64 in findRunnableGCWorker without type casting.
Another purpose is unified structure of internal atomics' source code. Before,
assembly impementations for different archs were in different files. For
example, filename for AMD64 was asm_amd64.s, but filename for RISC-V was
atomic_riscv64.s. Some arches have both files without any meaning. So, assembly
files were merged and renamed to atomic_{$ARCH}.s filenames.

Change-Id: I29a05a7cbf5f4a9cc146e8315536c038af545677
Reviewed-on: https://go-review.googlesource.com/c/go/+/289152
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
20 files changed:
src/cmd/compile/internal/ssagen/ssa.go
src/runtime/internal/atomic/asm_amd64.s [deleted file]
src/runtime/internal/atomic/asm_arm64.s [deleted file]
src/runtime/internal/atomic/asm_mips64x.s [deleted file]
src/runtime/internal/atomic/asm_mipsx.s [deleted file]
src/runtime/internal/atomic/asm_ppc64x.s [deleted file]
src/runtime/internal/atomic/atomic_386.s [moved from src/runtime/internal/atomic/asm_386.s with 90% similarity]
src/runtime/internal/atomic/atomic_amd64.s [new file with mode: 0644]
src/runtime/internal/atomic/atomic_arm.s [moved from src/runtime/internal/atomic/asm_arm.s with 91% similarity]
src/runtime/internal/atomic/atomic_arm64.s
src/runtime/internal/atomic/atomic_mips64x.s
src/runtime/internal/atomic/atomic_mipsx.s
src/runtime/internal/atomic/atomic_ppc64x.s
src/runtime/internal/atomic/atomic_riscv64.s
src/runtime/internal/atomic/atomic_s390x.s [moved from src/runtime/internal/atomic/asm_s390x.s with 86% similarity]
src/runtime/internal/atomic/atomic_wasm.go
src/runtime/internal/atomic/atomic_wasm.s [moved from src/runtime/internal/atomic/asm_wasm.s with 78% similarity]
src/runtime/internal/atomic/stubs.go
src/runtime/internal/atomic/sys_linux_arm.s
src/runtime/mgc.go