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:
parent
04f054d334
commit
a8e2ecc8b1
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user