Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 34 for xadd (0.05 sec)

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

    	MOVW	R1, ret+4(FP)
    	RET
    
    TEXT ·Load8(SB),NOSPLIT,$0-5
    	MOVW	ptr+0(FP), R1
    	SYNC
    	MOVB	0(R1), R1
    	SYNC
    	MOVB	R1, ret+4(FP)
    	RET
    
    // uint32 Xadd(uint32 volatile *val, int32 delta)
    // Atomically:
    //	*val += delta;
    //	return *val;
    TEXT ·Xadd(SB),NOSPLIT,$0-12
    	MOVW	ptr+0(FP), R2
    	MOVW	delta+4(FP), R3
    	SYNC
    try_xadd:
    	LL	(R2), R1	// R1 = *R2
    	ADDU	R1, R3, R4
    	MOVW	R4, R1
    	SC	R4, (R2)	// *R2 = R4
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Sat May 11 21:29:34 UTC 2024
    - 4.9K bytes
    - Viewed (0)
  2. src/internal/runtime/atomic/atomic_arm.go

    }
    
    func addrLock(addr *uint64) *spinlock {
    	return &locktab[(uintptr(unsafe.Pointer(addr))>>3)%uintptr(len(locktab))].l
    }
    
    // Atomic add and return new value.
    //
    //go:nosplit
    func Xadd(val *uint32, delta int32) uint32 {
    	for {
    		oval := *val
    		nval := oval + uint32(delta)
    		if Cas(val, oval, nval) {
    			return nval
    		}
    	}
    }
    
    //go:noescape
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 19:57:43 UTC 2024
    - 4.8K bytes
    - Viewed (0)
  3. src/internal/runtime/atomic/atomic_wasm.go

    //
    //go:linkname Load
    //go:linkname Loadp
    //go:linkname Load64
    //go:linkname Loadint32
    //go:linkname Loadint64
    //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
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 19:57:43 UTC 2024
    - 5.4K bytes
    - Viewed (0)
  4. src/internal/runtime/atomic/atomic_mips64x.go

    // Use of this source code is governed by a BSD-style
    // license that can be found in the LICENSE file.
    
    //go:build mips64 || mips64le
    
    package atomic
    
    import "unsafe"
    
    //go:noescape
    func Xadd(ptr *uint32, delta int32) uint32
    
    //go:noescape
    func Xadd64(ptr *uint64, delta int64) uint64
    
    //go:noescape
    func Xadduintptr(ptr *uintptr, delta uintptr) uintptr
    
    //go:noescape
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Sat May 11 21:29:34 UTC 2024
    - 2.1K bytes
    - Viewed (0)
  5. src/internal/runtime/atomic/atomic_mips64x.s

    	JMP	·Load64(SB)
    
    TEXT ·Xaddint32(SB), NOSPLIT, $0-20
    	JMP	·Xadd(SB)
    
    TEXT ·Xaddint64(SB), NOSPLIT, $0-24
    	JMP	·Xadd64(SB)
    
    // bool casp(void **val, void *old, void *new)
    // Atomically:
    //	if(*val == old){
    //		*val = new;
    //		return 1;
    //	} else
    //		return 0;
    TEXT ·Casp1(SB), NOSPLIT, $0-25
    	JMP ·Cas64(SB)
    
    // uint32 xadd(uint32 volatile *ptr, int32 delta)
    // Atomically:
    //	*val += delta;
    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_386.go

    func LoadAcquintptr(ptr *uintptr) uintptr {
    	return *ptr
    }
    
    //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
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 19:57:43 UTC 2024
    - 2.2K bytes
    - Viewed (0)
  7. src/internal/runtime/atomic/atomic_mipsx.go

    		}
    	}
    }
    
    //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
    
    //go:noescape
    func Xadduintptr(ptr *uintptr, delta uintptr) uintptr
    
    //go:noescape
    func Xchg(ptr *uint32, new uint32) uint32
    
    //go:noescape
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 20:08:37 UTC 2024
    - 3.2K bytes
    - Viewed (0)
  8. src/cmd/link/internal/ld/data.go

    			// pass through to the external linker.
    			rr.Xadd = 0
    			if target.IsElf() {
    				rr.Xadd -= int64(siz)
    			}
    			rr.Xsym = rs
    			break
    		}
    		if rs != 0 && (ldr.SymSect(rs) != ldr.SymSect(s) || rt == objabi.R_GOTPCREL) {
    			// set up addend for eventual relocation via outer symbol.
    			rs := rs
    			rs, off := FoldSubSymbolOffset(ldr, rs)
    			rr.Xadd = r.Add() + off
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Jun 12 15:10:50 UTC 2024
    - 100.5K bytes
    - Viewed (1)
  9. src/runtime/sema.go

    func semrelease(addr *uint32) {
    	semrelease1(addr, false, 0)
    }
    
    func semrelease1(addr *uint32, handoff bool, skipframes int) {
    	root := semtable.rootFor(addr)
    	atomic.Xadd(addr, 1)
    
    	// Easy case: no waiters?
    	// This check must happen after the xadd, to avoid a missed wakeup
    	// (see loop in semacquire).
    	if root.nwait.Load() == 0 {
    		return
    	}
    
    	// Harder case: search for a waiter and wake it.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 19K bytes
    - Viewed (0)
  10. src/runtime/mgc.go

    		// Flush the write barrier buffer, since this may add
    		// work to the gcWork.
    		wbBufFlush1(pp)
    
    		// Flush the gcWork, since this may create global work
    		// and set the flushedWork flag.
    		//
    		// TODO(austin): Break up these workbufs to
    		// better distribute work.
    		pp.gcw.dispose()
    		// Collect the flushedWork flag.
    		if pp.gcw.flushedWork {
    			atomic.Xadd(&gcMarkDoneFlushed, 1)
    			pp.gcw.flushedWork = false
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 16:25:21 UTC 2024
    - 62K bytes
    - Viewed (0)
Back to top