Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 32 for cas64 (0.06 sec)

  1. src/internal/runtime/atomic/atomic_mipsx.go

    	unlock()
    	return
    }
    
    //go:nosplit
    func Or64(addr *uint64, val uint64) (old uint64) {
    	for {
    		old = *addr
    		if Cas64(addr, old, old|val) {
    			return old
    		}
    	}
    }
    
    //go:nosplit
    func And64(addr *uint64, val uint64) (old uint64) {
    	for {
    		old = *addr
    		if Cas64(addr, old, old&val) {
    			return old
    		}
    	}
    }
    
    //go:noescape
    func Xadd(ptr *uint32, delta int32) uint32
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 20:08:37 UTC 2024
    - 3.2K bytes
    - Viewed (0)
  2. src/internal/runtime/atomic/atomic_andor_generic.go

    			return old
    		}
    	}
    }
    
    //go:nosplit
    func And64(ptr *uint64, val uint64) uint64 {
    	for {
    		old := *ptr
    		if Cas64(ptr, old, old&val) {
    			return old
    		}
    	}
    }
    
    //go:nosplit
    func Or64(ptr *uint64, val uint64) uint64 {
    	for {
    		old := *ptr
    		if Cas64(ptr, old, old|val) {
    			return old
    		}
    	}
    }
    
    //go:nosplit
    func Anduintptr(ptr *uintptr, val uintptr) uintptr {
    	for {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 20:08:37 UTC 2024
    - 1.2K bytes
    - Viewed (0)
  3. src/runtime/lfstack.go

    	for {
    		old := atomic.Load64((*uint64)(head))
    		node.next = old
    		if atomic.Cas64((*uint64)(head), old, new) {
    			break
    		}
    	}
    }
    
    func (head *lfstack) pop() unsafe.Pointer {
    	for {
    		old := atomic.Load64((*uint64)(head))
    		if old == 0 {
    			return nil
    		}
    		node := lfstackUnpack(old)
    		next := atomic.Load64(&node.next)
    		if atomic.Cas64((*uint64)(head), old, next) {
    			return unsafe.Pointer(node)
    		}
    	}
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 2K bytes
    - Viewed (0)
  4. src/internal/runtime/atomic/atomic_amd64.s

    	MOVQ	ptr+0(FP), BX
    	MOVL	old+8(FP), AX
    	MOVL	new+12(FP), CX
    	LOCK
    	CMPXCHGL	CX, 0(BX)
    	SETEQ	ret+16(FP)
    	RET
    
    // bool	·Cas64(uint64 *val, uint64 old, uint64 new)
    // Atomically:
    //	if(*val == old){
    //		*val = new;
    //		return 1;
    //	} else {
    //		return 0;
    //	}
    TEXT ·Cas64(SB), NOSPLIT, $0-25
    	MOVQ	ptr+0(FP), BX
    	MOVQ	old+8(FP), AX
    	MOVQ	new+16(FP), CX
    	LOCK
    	CMPXCHGQ	CX, 0(BX)
    	SETEQ	ret+24(FP)
    	RET
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 5.2K bytes
    - Viewed (0)
  5. src/internal/runtime/atomic/atomic_mips64x.s

    	BEQ	R3, cas_again
    	MOVV	$1, R1
    	MOVB	R1, ret+16(FP)
    	SYNC
    	RET
    cas_fail:
    	MOVV	$0, R1
    	JMP	-4(PC)
    
    // bool	cas64(uint64 *ptr, uint64 old, uint64 new)
    // Atomically:
    //	if(*val == old){
    //		*val = new;
    //		return 1;
    //	} else {
    //		return 0;
    //	}
    TEXT ·Cas64(SB), NOSPLIT, $0-25
    	MOVV	ptr+0(FP), R1
    	MOVV	old+8(FP), R2
    	MOVV	new+16(FP), R5
    	SYNC
    cas64_again:
    	MOVV	R5, R3
    	LLV	(R1), R4
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Sat May 11 21:29:34 UTC 2024
    - 7.2K bytes
    - Viewed (0)
  6. src/internal/runtime/atomic/atomic_s390x.s

    	BNE	cas_fail
    	MOVB	$1, ret+16(FP)
    	RET
    cas_fail:
    	MOVB	$0, ret+16(FP)
    	RET
    
    // func Cas64(ptr *uint64, old, new uint64) bool
    // Atomically:
    //	if *ptr == old {
    //		*ptr = new
    //		return 1
    //	} else {
    //		return 0
    //	}
    TEXT ·Cas64(SB), NOSPLIT, $0-25
    	MOVD	ptr+0(FP), R3
    	MOVD	old+8(FP), R4
    	MOVD	new+16(FP), R5
    	CSG	R4, R5, 0(R3)    //  if (R4 == 0(R3)) then 0(R3)= R5
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 7.1K bytes
    - Viewed (0)
  7. src/internal/runtime/atomic/atomic_riscv64.s

    	MOV	ptr+0(FP), A0
    	MOV	val+8(FP), A1
    	AMOSWAPD A1, (A0), ZERO
    	RET
    
    TEXT ·Casp1(SB), NOSPLIT, $0-25
    	JMP	·Cas64(SB)
    
    TEXT ·Casint32(SB),NOSPLIT,$0-17
    	JMP	·Cas(SB)
    
    TEXT ·Casint64(SB),NOSPLIT,$0-25
    	JMP	·Cas64(SB)
    
    TEXT ·Casuintptr(SB),NOSPLIT,$0-25
    	JMP	·Cas64(SB)
    
    TEXT ·CasRel(SB), NOSPLIT, $0-17
    	JMP	·Cas(SB)
    
    TEXT ·Loaduintptr(SB),NOSPLIT,$0-16
    	JMP	·Load64(SB)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 7K bytes
    - Viewed (0)
  8. src/internal/runtime/atomic/atomic_arm64.s

    // license that can be found in the LICENSE file.
    
    #include "go_asm.h"
    #include "textflag.h"
    
    TEXT ·Casint32(SB), NOSPLIT, $0-17
    	B	·Cas(SB)
    
    TEXT ·Casint64(SB), NOSPLIT, $0-25
    	B	·Cas64(SB)
    
    TEXT ·Casuintptr(SB), NOSPLIT, $0-25
    	B	·Cas64(SB)
    
    TEXT ·CasRel(SB), NOSPLIT, $0-17
    	B	·Cas(SB)
    
    TEXT ·Loadint32(SB), NOSPLIT, $0-12
    	B	·Load(SB)
    
    TEXT ·Loadint64(SB), NOSPLIT, $0-16
    	B	·Load64(SB)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 9K bytes
    - Viewed (0)
  9. src/internal/runtime/atomic/atomic_ppc64x.s

    	MOVD	$1, R3
    	LWSYNC
    	MOVB	R3, ret+16(FP)
    	RET
    cas_fail:
    	LWSYNC
    	MOVB	R0, ret+16(FP)
    	RET
    
    // bool	·Cas64(uint64 *ptr, uint64 old, uint64 new)
    // Atomically:
    //	if(*val == old){
    //		*val = new;
    //		return 1;
    //	} else {
    //		return 0;
    //	}
    TEXT ·Cas64(SB), NOSPLIT, $0-25
    	MOVD	ptr+0(FP), R3
    	MOVD	old+8(FP), R4
    	MOVD	new+16(FP), R5
    	LWSYNC
    cas64_again:
    	LDAR	(R3), R6
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 7.5K bytes
    - Viewed (0)
  10. src/internal/runtime/atomic/atomic_loong64.s

    	BEQ	R7, cas_again
    	MOVV	$1, R4
    	MOVB	R4, ret+16(FP)
    	DBAR
    	RET
    cas_fail:
    	MOVV	$0, R4
    	JMP	-4(PC)
    
    // bool	cas64(uint64 *ptr, uint64 old, uint64 new)
    // Atomically:
    //	if(*ptr == old){
    //		*ptr = new;
    //		return 1;
    //	} else {
    //		return 0;
    //	}
    TEXT ·Cas64(SB), NOSPLIT, $0-25
    	MOVV	ptr+0(FP), R4
    	MOVV	old+8(FP), R5
    	MOVV	new+16(FP), R6
    	DBAR
    cas64_again:
    	MOVV	R6, R7
    	LLV	(R4), R8
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 6.3K bytes
    - Viewed (0)
Back to top