Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 27 for Xchg64 (0.12 sec)

  1. src/internal/runtime/atomic/atomic_amd64.s

    	MOVL	AX, ret+16(FP)
    	RET
    
    // uint64 Xchg64(ptr *uint64, new uint64)
    // Atomically:
    //	old := *ptr;
    //	*ptr = new;
    //	return old;
    TEXT ·Xchg64(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 ·Xchgint32(SB), NOSPLIT, $0-20
    	JMP	·Xchg(SB)
    
    TEXT ·Xchgint64(SB), NOSPLIT, $0-24
    	JMP	·Xchg64(SB)
    
    TEXT ·Xchguintptr(SB), NOSPLIT, $0-24
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 5.2K bytes
    - Viewed (0)
  2. src/internal/runtime/atomic/atomic_mipsx.go

    // license that can be found in the LICENSE file.
    
    //go:build mips || mipsle
    
    // Export some functions via linkname to assembly in sync/atomic.
    //
    //go:linkname Xadd64
    //go:linkname Xchg64
    //go:linkname Cas64
    //go:linkname Load64
    //go:linkname Store64
    //go:linkname Or64
    //go:linkname And64
    
    package atomic
    
    import (
    	"internal/cpu"
    	"unsafe"
    )
    
    // TODO implement lock striping
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 20:08:37 UTC 2024
    - 3.2K bytes
    - Viewed (0)
  3. src/internal/runtime/atomic/atomic_mips64x.s

    	MOVW	new+8(FP), R5
    
    	SYNC
    	MOVV	R5, R3
    	LL	(R2), R1
    	SC	R3, (R2)
    	BEQ	R3, -3(PC)
    	MOVW	R1, ret+16(FP)
    	SYNC
    	RET
    
    // uint64 Xchg64(ptr *uint64, new uint64)
    // Atomically:
    //	old := *ptr;
    //	*ptr = new;
    //	return old;
    TEXT ·Xchg64(SB), NOSPLIT, $0-24
    	MOVV	ptr+0(FP), R2
    	MOVV	new+8(FP), R5
    
    	SYNC
    	MOVV	R5, R3
    	LLV	(R2), R1
    	SCV	R3, (R2)
    	BEQ	R3, -3(PC)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Sat May 11 21:29:34 UTC 2024
    - 7.2K bytes
    - Viewed (0)
  4. src/internal/runtime/atomic/atomic_s390x.s

    	MOVD	ptr+0(FP), R4
    	MOVW	new+8(FP), R3
    	MOVW	(R4), R6
    repeat:
    	CS	R6, R3, (R4) // if R6==(R4) then (R4)=R3 else R6=(R4)
    	BNE	repeat
    	MOVW	R6, ret+16(FP)
    	RET
    
    // func Xchg64(ptr *uint64, new uint64) uint64
    TEXT ·Xchg64(SB), NOSPLIT, $0-24
    	MOVD	ptr+0(FP), R4
    	MOVD	new+8(FP), R3
    	MOVD	(R4), R6
    repeat:
    	CSG	R6, R3, (R4) // if R6==(R4) then (R4)=R3 else R6=(R4)
    	BNE	repeat
    	MOVD	R6, ret+16(FP)
    	RET
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 7.1K bytes
    - Viewed (0)
  5. src/internal/runtime/atomic/atomic_riscv64.s

    // func Xchg(ptr *uint32, new uint32) uint32
    TEXT ·Xchg(SB), NOSPLIT, $0-20
    	MOV	ptr+0(FP), A0
    	MOVW	new+8(FP), A1
    	AMOSWAPW A1, (A0), A1
    	MOVW	A1, ret+16(FP)
    	RET
    
    // func Xchg64(ptr *uint64, new uint64) uint64
    TEXT ·Xchg64(SB), NOSPLIT, $0-24
    	MOV	ptr+0(FP), A0
    	MOV	new+8(FP), A1
    	AMOSWAPD A1, (A0), A1
    	MOV	A1, ret+16(FP)
    	RET
    
    // Atomically:
    //      *val += delta;
    //      return *val;
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 7K bytes
    - Viewed (0)
  6. src/internal/runtime/atomic/atomic_arm64.s

    #ifndef GOARM64_LSE
    load_store_loop:
    	LDAXRW	(R0), R2
    	STLXRW	R1, (R0), R3
    	CBNZ	R3, load_store_loop
    	MOVW	R2, ret+16(FP)
    	RET
    #endif
    
    // uint64 Xchg64(ptr *uint64, new uint64)
    // Atomically:
    //	old := *ptr;
    //	*ptr = new;
    //	return old;
    TEXT ·Xchg64(SB), NOSPLIT, $0-24
    	MOVD	ptr+0(FP), R0
    	MOVD	new+8(FP), R1
    #ifndef GOARM64_LSE
    	MOVBU	internal∕cpu·ARM64+const_offsetARM64HasATOMICS(SB), R4
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 9K bytes
    - Viewed (0)
  7. src/internal/runtime/atomic/atomic_ppc64x.s

    	MOVW	new+8(FP), R5
    	LWSYNC
    	LWAR	(R4), R3
    	STWCCC	R5, (R4)
    	BNE	-2(PC)
    	ISYNC
    	MOVW	R3, ret+16(FP)
    	RET
    
    // uint64 Xchg64(ptr *uint64, new uint64)
    // Atomically:
    //	old := *ptr;
    //	*ptr = new;
    //	return old;
    TEXT ·Xchg64(SB), NOSPLIT, $0-24
    	MOVD	ptr+0(FP), R4
    	MOVD	new+8(FP), R5
    	LWSYNC
    	LDAR	(R4), R3
    	STDCCC	R5, (R4)
    	BNE	-2(PC)
    	ISYNC
    	MOVD	R3, ret+16(FP)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 7.5K bytes
    - Viewed (0)
  8. src/internal/runtime/atomic/atomic_wasm.go

    //go:linkname Loaduintptr
    //go:linkname LoadAcquintptr
    //go:linkname Xadd
    //go:linkname Xaddint32
    //go:linkname Xaddint64
    //go:linkname Xadd64
    //go:linkname Xadduintptr
    //go:linkname Xchg
    //go:linkname Xchg64
    //go:linkname Xchgint32
    //go:linkname Xchgint64
    //go:linkname Xchguintptr
    //go:linkname Cas
    //go:linkname Cas64
    //go:linkname Casint32
    //go:linkname Casint64
    //go:linkname Casuintptr
    //go:linkname Store
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 19:57:43 UTC 2024
    - 5.4K bytes
    - Viewed (0)
  9. src/internal/runtime/atomic/atomic_mips64x.go

    //go:noescape
    func Xadd64(ptr *uint64, delta int64) uint64
    
    //go:noescape
    func Xadduintptr(ptr *uintptr, delta uintptr) uintptr
    
    //go:noescape
    func Xchg(ptr *uint32, new uint32) uint32
    
    //go:noescape
    func Xchg64(ptr *uint64, new uint64) uint64
    
    //go:noescape
    func Xchguintptr(ptr *uintptr, new uintptr) uintptr
    
    //go:noescape
    func Load(ptr *uint32) uint32
    
    //go:noescape
    func Load8(ptr *uint8) uint8
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Sat May 11 21:29:34 UTC 2024
    - 2.1K bytes
    - Viewed (0)
  10. src/internal/runtime/atomic/atomic_386.go

    //go:noescape
    func Xadd64(ptr *uint64, delta int64) uint64
    
    //go:noescape
    func Xadduintptr(ptr *uintptr, delta uintptr) uintptr
    
    //go:noescape
    func Xadd(ptr *uint32, delta int32) uint32
    
    //go:noescape
    func Xchg64(ptr *uint64, new uint64) uint64
    
    //go:noescape
    func Xchg(ptr *uint32, new uint32) uint32
    
    //go:noescape
    func Xchguintptr(ptr *uintptr, new uintptr) uintptr
    
    //go:noescape
    func Load64(ptr *uint64) uint64
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 19:57:43 UTC 2024
    - 2.2K bytes
    - Viewed (0)
Back to top