1
0
mirror of https://github.com/golang/go synced 2024-11-25 22:07:58 -07:00

internal/runtime/atomic: add Xchg8 for 386

For #69735

Change-Id: I5b9f57315d693d613dc88dc02c10bee39aeeef76
GitHub-Last-Rev: 690337e5b8
GitHub-Pull-Request: golang/go#69923
Reviewed-on: https://go-review.googlesource.com/c/go/+/620756
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
Mauri de Souza Meneguzzo 2024-10-17 12:57:26 +00:00 committed by Gopher Robot
parent 04f054d334
commit a8e2ecc8b1
3 changed files with 12 additions and 1 deletions

View File

@ -53,6 +53,9 @@ func Xchg64(ptr *uint64, new uint64) uint64
//go:noescape
func Xchg(ptr *uint32, new uint32) uint32
//go:noescape
func Xchg8(ptr *uint8, new uint8) uint8
//go:noescape
func Xchguintptr(ptr *uintptr, new uintptr) uintptr

View File

@ -153,6 +153,14 @@ addloop:
MOVL CX, ret_hi+16(FP)
RET
// uint8 Xchg8(uint8 *ptr, uint8 new)
TEXT ·Xchg8(SB), NOSPLIT, $0-9
MOVL ptr+0(FP), BX
MOVB new+4(FP), AX
XCHGB AX, 0(BX)
MOVB AX, ret+8(FP)
RET
TEXT ·Xchg(SB), NOSPLIT, $0-12
MOVL ptr+0(FP), BX
MOVL new+4(FP), AX

View 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 || ppc64 || ppc64le
//go:build 386 || amd64 || arm64 || ppc64 || ppc64le
package atomic_test