Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 2 of 2 for goXchg64 (0.21 sec)

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

    	}
    	_ = *addr // if nil, fault before taking the lock
    	var r uint64
    	addrLock(addr).lock()
    	r = *addr + uint64(delta)
    	*addr = r
    	addrLock(addr).unlock()
    	return r
    }
    
    //go:nosplit
    func goXchg64(addr *uint64, v uint64) uint64 {
    	if uintptr(unsafe.Pointer(addr))&7 != 0 {
    		*(*int)(nil) = 0 // crash on unaligned uint64
    	}
    	_ = *addr // if nil, fault before taking the lock
    	var r uint64
    	addrLock(addr).lock()
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 19:57:43 UTC 2024
    - 4.8K bytes
    - Viewed (0)
  2. src/internal/runtime/atomic/atomic_arm.s

    TEXT ·Xchg64(SB),NOSPLIT,$-4-20
    	NO_LOCAL_POINTERS
    	MOVW	addr+0(FP), R1
    	CHECK_ALIGN
    
    #ifndef GOARM_7
    	MOVB	internal∕cpu·ARM+const_offsetARMHasV7Atomics(SB), R11
    	CMP	$1, R11
    	BEQ	2(PC)
    	JMP	·goXchg64(SB)
    #endif
    	JMP	armXchg64<>(SB)
    
    TEXT ·Load64(SB),NOSPLIT,$-4-12
    	NO_LOCAL_POINTERS
    	MOVW	addr+0(FP), R1
    	CHECK_ALIGN
    
    #ifndef GOARM_7
    	MOVB	internal∕cpu·ARM+const_offsetARMHasV7Atomics(SB), R11
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 5.7K bytes
    - Viewed (0)
Back to top