mirror of
https://github.com/golang/go
synced 2024-11-23 20:10:08 -07:00
runtime: remove unused xchgp/xchgp1
I noticed that they were unimplemented on arm64 but then that they were in fact not used at all. Change-Id: Iee579feda2a5e374fa571bcc8c89e4ef607d50f6 Reviewed-on: https://go-review.googlesource.com/13951 Run-TryBot: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
b9e4867e8d
commit
d497eeb005
@ -551,13 +551,6 @@ TEXT runtime·xchg(SB), NOSPLIT, $0-12
|
|||||||
MOVL AX, ret+8(FP)
|
MOVL AX, ret+8(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·xchgp1(SB), NOSPLIT, $0-12
|
|
||||||
MOVL ptr+0(FP), BX
|
|
||||||
MOVL new+4(FP), AX
|
|
||||||
XCHGL AX, 0(BX)
|
|
||||||
MOVL AX, ret+8(FP)
|
|
||||||
RET
|
|
||||||
|
|
||||||
TEXT runtime·xchguintptr(SB), NOSPLIT, $0-12
|
TEXT runtime·xchguintptr(SB), NOSPLIT, $0-12
|
||||||
JMP runtime·xchg(SB)
|
JMP runtime·xchg(SB)
|
||||||
|
|
||||||
|
@ -563,13 +563,6 @@ TEXT runtime·xchg64(SB), NOSPLIT, $0-24
|
|||||||
MOVQ AX, ret+16(FP)
|
MOVQ AX, ret+16(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·xchgp1(SB), NOSPLIT, $0-24
|
|
||||||
MOVQ ptr+0(FP), BX
|
|
||||||
MOVQ new+8(FP), AX
|
|
||||||
XCHGQ AX, 0(BX)
|
|
||||||
MOVQ AX, ret+16(FP)
|
|
||||||
RET
|
|
||||||
|
|
||||||
TEXT runtime·xchguintptr(SB), NOSPLIT, $0-24
|
TEXT runtime·xchguintptr(SB), NOSPLIT, $0-24
|
||||||
JMP runtime·xchg64(SB)
|
JMP runtime·xchg64(SB)
|
||||||
|
|
||||||
|
@ -517,13 +517,6 @@ TEXT runtime·xchg64(SB), NOSPLIT, $0-24
|
|||||||
MOVQ AX, ret+16(FP)
|
MOVQ AX, ret+16(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·xchgp1(SB), NOSPLIT, $0-12
|
|
||||||
MOVL ptr+0(FP), BX
|
|
||||||
MOVL new+4(FP), AX
|
|
||||||
XCHGL AX, 0(BX)
|
|
||||||
MOVL AX, ret+8(FP)
|
|
||||||
RET
|
|
||||||
|
|
||||||
TEXT runtime·xchguintptr(SB), NOSPLIT, $0-12
|
TEXT runtime·xchguintptr(SB), NOSPLIT, $0-12
|
||||||
JMP runtime·xchg(SB)
|
JMP runtime·xchg(SB)
|
||||||
|
|
||||||
|
@ -584,9 +584,6 @@ TEXT runtime·xchg64(SB), NOSPLIT, $0-24
|
|||||||
MOVD R3, ret+16(FP)
|
MOVD R3, ret+16(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·xchgp1(SB), NOSPLIT, $0-24
|
|
||||||
BR runtime·xchg64(SB)
|
|
||||||
|
|
||||||
TEXT runtime·xchguintptr(SB), NOSPLIT, $0-24
|
TEXT runtime·xchguintptr(SB), NOSPLIT, $0-24
|
||||||
BR runtime·xchg64(SB)
|
BR runtime·xchg64(SB)
|
||||||
|
|
||||||
|
@ -52,9 +52,6 @@ func xadd(ptr *uint32, delta int32) uint32
|
|||||||
//go:noescape
|
//go:noescape
|
||||||
func xchg(ptr *uint32, new uint32) uint32
|
func xchg(ptr *uint32, new uint32) uint32
|
||||||
|
|
||||||
// NO go:noescape annotation; see atomic_pointer.go.
|
|
||||||
func xchgp1(ptr unsafe.Pointer, new unsafe.Pointer) unsafe.Pointer
|
|
||||||
|
|
||||||
//go:noescape
|
//go:noescape
|
||||||
func xchguintptr(ptr *uintptr, new uintptr) uintptr
|
func xchguintptr(ptr *uintptr, new uintptr) uintptr
|
||||||
|
|
||||||
|
@ -45,9 +45,6 @@ func xchg(ptr *uint32, new uint32) uint32
|
|||||||
//go:noescape
|
//go:noescape
|
||||||
func xchg64(ptr *uint64, new uint64) uint64
|
func xchg64(ptr *uint64, new uint64) uint64
|
||||||
|
|
||||||
// NO go:noescape annotation; see atomic_pointer.go.
|
|
||||||
func xchgp1(ptr unsafe.Pointer, new unsafe.Pointer) unsafe.Pointer
|
|
||||||
|
|
||||||
//go:noescape
|
//go:noescape
|
||||||
func xchguintptr(ptr *uintptr, new uintptr) uintptr
|
func xchguintptr(ptr *uintptr, new uintptr) uintptr
|
||||||
|
|
||||||
|
@ -41,16 +41,6 @@ func xchg(addr *uint32, v uint32) uint32 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//go:nosplit
|
|
||||||
func xchgp1(addr unsafe.Pointer, v unsafe.Pointer) unsafe.Pointer {
|
|
||||||
for {
|
|
||||||
old := *(*unsafe.Pointer)(addr)
|
|
||||||
if casp1((*unsafe.Pointer)(addr), old, v) {
|
|
||||||
return old
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//go:nosplit
|
//go:nosplit
|
||||||
func xchguintptr(addr *uintptr, v uintptr) uintptr {
|
func xchguintptr(addr *uintptr, v uintptr) uintptr {
|
||||||
return uintptr(xchg((*uint32)(unsafe.Pointer(addr)), uint32(v)))
|
return uintptr(xchg((*uint32)(unsafe.Pointer(addr)), uint32(v)))
|
||||||
|
@ -22,9 +22,6 @@ func xchg(ptr *uint32, new uint32) uint32
|
|||||||
//go:noescape
|
//go:noescape
|
||||||
func xchg64(ptr *uint64, new uint64) uint64
|
func xchg64(ptr *uint64, new uint64) uint64
|
||||||
|
|
||||||
// NO go:noescape annotation; see atomic_pointer.go.
|
|
||||||
func xchgp1(ptr unsafe.Pointer, new unsafe.Pointer) unsafe.Pointer
|
|
||||||
|
|
||||||
//go:noescape
|
//go:noescape
|
||||||
func xchguintptr(ptr *uintptr, new uintptr) uintptr
|
func xchguintptr(ptr *uintptr, new uintptr) uintptr
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ import "unsafe"
|
|||||||
// because while ptr does not escape, new does.
|
// because while ptr does not escape, new does.
|
||||||
// If new is marked as not escaping, the compiler will make incorrect
|
// If new is marked as not escaping, the compiler will make incorrect
|
||||||
// escape analysis decisions about the pointer value being stored.
|
// escape analysis decisions about the pointer value being stored.
|
||||||
// Instead, these are wrappers around the actual atomics (xchgp1 and so on)
|
// Instead, these are wrappers around the actual atomics (casp1 and so on)
|
||||||
// that use noescape to convey which arguments do not escape.
|
// that use noescape to convey which arguments do not escape.
|
||||||
//
|
//
|
||||||
// Additionally, these functions must update the shadow heap for
|
// Additionally, these functions must update the shadow heap for
|
||||||
@ -22,13 +22,6 @@ func atomicstorep(ptr unsafe.Pointer, new unsafe.Pointer) {
|
|||||||
writebarrierptr_nostore((*uintptr)(ptr), uintptr(new))
|
writebarrierptr_nostore((*uintptr)(ptr), uintptr(new))
|
||||||
}
|
}
|
||||||
|
|
||||||
//go:nosplit
|
|
||||||
func xchgp(ptr unsafe.Pointer, new unsafe.Pointer) unsafe.Pointer {
|
|
||||||
old := xchgp1(noescape(ptr), new)
|
|
||||||
writebarrierptr_nostore((*uintptr)(ptr), uintptr(new))
|
|
||||||
return old
|
|
||||||
}
|
|
||||||
|
|
||||||
//go:nosplit
|
//go:nosplit
|
||||||
func casp(ptr *unsafe.Pointer, old, new unsafe.Pointer) bool {
|
func casp(ptr *unsafe.Pointer, old, new unsafe.Pointer) bool {
|
||||||
if !casp1((*unsafe.Pointer)(noescape(unsafe.Pointer(ptr))), noescape(old), new) {
|
if !casp1((*unsafe.Pointer)(noescape(unsafe.Pointer(ptr))), noescape(old), new) {
|
||||||
|
@ -24,9 +24,6 @@ func xchg(ptr *uint32, new uint32) uint32
|
|||||||
//go:noescape
|
//go:noescape
|
||||||
func xchg64(ptr *uint64, new uint64) uint64
|
func xchg64(ptr *uint64, new uint64) uint64
|
||||||
|
|
||||||
// NO go:noescape annotation; see atomic_pointer.go.
|
|
||||||
func xchgp1(ptr unsafe.Pointer, new unsafe.Pointer) unsafe.Pointer
|
|
||||||
|
|
||||||
//go:noescape
|
//go:noescape
|
||||||
func xchguintptr(ptr *uintptr, new uintptr) uintptr
|
func xchguintptr(ptr *uintptr, new uintptr) uintptr
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user