Search Options

Results per page
Sort
Preferred Languages
Advance

Results 11 - 20 of 23 for writeBarrier (0.43 sec)

  1. src/cmd/compile/internal/typecheck/_builtin/runtime.go

    func chanrecv2(hchan <-chan any, elem *any) bool
    func chansend1(hchan chan<- any, elem *any)
    func closechan(hchan chan<- any)
    func chanlen(hchan any) int
    func chancap(hchan any) int
    
    var writeBarrier struct {
    	enabled bool
    	pad     [3]byte
    	cgo     bool
    	alignme uint64
    }
    
    // *byte is really *runtime.Type
    func typedmemmove(typ *byte, dst *any, src *any)
    func typedmemclr(typ *byte, dst *any)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 21 21:08:03 UTC 2024
    - 10.6K bytes
    - Viewed (0)
  2. src/runtime/map_fast32.go

    				}
    				dst.b.tophash[dst.i&(abi.MapBucketCount-1)] = top // mask dst.i as an optimization, to avoid a bounds check
    
    				// Copy key.
    				if goarch.PtrSize == 4 && t.Key.Pointers() && writeBarrier.enabled {
    					// Write with a write barrier.
    					*(*unsafe.Pointer)(dst.k) = *(*unsafe.Pointer)(k)
    				} else {
    					*(*uint32)(dst.k) = *(*uint32)(k)
    				}
    
    				typedmemmove(t.Elem, dst.e, e)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 01:17:26 UTC 2024
    - 13.9K bytes
    - Viewed (0)
  3. src/runtime/mgc.go

    // barrier insertion code.
    //
    // writeBarrier should be an internal detail,
    // but widely used packages access it using linkname.
    // Notable members of the hall of shame include:
    //   - github.com/bytedance/sonic
    //   - github.com/cloudwego/frugal
    //
    // Do not remove or change the type signature.
    // See go.dev/issue/67401.
    //
    //go:linkname writeBarrier
    var writeBarrier struct {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 16:25:21 UTC 2024
    - 62K bytes
    - Viewed (0)
  4. src/runtime/map_fast64.go

    					dst.e = add(dst.k, abi.MapBucketCount*8)
    				}
    				dst.b.tophash[dst.i&(abi.MapBucketCount-1)] = top // mask dst.i as an optimization, to avoid a bounds check
    
    				// Copy key.
    				if t.Key.Pointers() && writeBarrier.enabled {
    					if goarch.PtrSize == 8 {
    						// Write with a write barrier.
    						*(*unsafe.Pointer)(dst.k) = *(*unsafe.Pointer)(k)
    					} else {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 01:17:26 UTC 2024
    - 14.1K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/typecheck/builtin.go

    	{"makechan", funcTag, 99},
    	{"chanrecv1", funcTag, 101},
    	{"chanrecv2", funcTag, 102},
    	{"chansend1", funcTag, 104},
    	{"closechan", funcTag, 105},
    	{"chanlen", funcTag, 106},
    	{"chancap", funcTag, 106},
    	{"writeBarrier", varTag, 108},
    	{"typedmemmove", funcTag, 109},
    	{"typedmemclr", funcTag, 110},
    	{"typedslicecopy", funcTag, 111},
    	{"selectnbsend", funcTag, 112},
    	{"selectnbrecv", funcTag, 113},
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 21 21:08:03 UTC 2024
    - 16.2K bytes
    - Viewed (0)
  6. src/runtime/mbitmap.go

    //
    //go:nosplit
    func bulkBarrierPreWrite(dst, src, size uintptr, typ *abi.Type) {
    	if (dst|src|size)&(goarch.PtrSize-1) != 0 {
    		throw("bulkBarrierPreWrite: unaligned arguments")
    	}
    	if !writeBarrier.enabled {
    		return
    	}
    	s := spanOf(dst)
    	if s == nil {
    		// If dst is a global, use the data or BSS bitmaps to
    		// execute write barriers.
    		for _, datap := range activeModules() {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 00:18:55 UTC 2024
    - 60K bytes
    - Viewed (0)
  7. test/codegen/comparisons.go

    	// amd64:`CMPQ\t\(.*\), [$]7`
    	return *p < 7
    }
    
    func CmpMem4(p *int) bool {
    	// amd64:`CMPQ\t\(.*\), [$]7`
    	return 7 < *p
    }
    
    func CmpMem5(p **int) {
    	// amd64:`CMPL\truntime.writeBarrier\(SB\), [$]0`
    	*p = nil
    }
    
    func CmpMem6(a []int) int {
    	// 386:`CMPL\s8\([A-Z]+\),`
    	// amd64:`CMPQ\s16\([A-Z]+\),`
    	if a[1] > a[2] {
    		return 1
    	} else {
    		return 2
    	}
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 19 16:31:02 UTC 2024
    - 15.2K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/liveness/plive.go

    					if sym, ok := v.Aux.(*obj.LSym); ok && sym == ir.Syms.WriteBarrier {
    						load = v
    						break
    					}
    					// Some architectures have to materialize the address separate from
    					// the load.
    					if sym, ok := v.Args[0].Aux.(*obj.LSym); ok && sym == ir.Syms.WriteBarrier {
    						load = v
    						break
    					}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 15:22:22 UTC 2024
    - 45.2K bytes
    - Viewed (0)
  9. src/runtime/mgcmark.go

    //
    // Don't set nowritebarrierrec because it's safe for some callees to
    // have write barriers enabled.
    //
    //go:nowritebarrier
    func gcDrain(gcw *gcWork, flags gcDrainFlags) {
    	if !writeBarrier.enabled {
    		throw("gcDrain phase incorrect")
    	}
    
    	// N.B. We must be running in a non-preemptible context, so it's
    	// safe to hold a reference to our P here.
    	gp := getg().m.curg
    	pp := gp.m.p.ptr()
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 18 21:25:11 UTC 2024
    - 52.5K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssagen/ssa.go

    	ir.Syms.Typedmemmove = typecheck.LookupRuntimeFunc("typedmemmove")
    	ir.Syms.Udiv = typecheck.LookupRuntimeVar("udiv")                 // asm func with special ABI
    	ir.Syms.WriteBarrier = typecheck.LookupRuntimeVar("writeBarrier") // struct { bool; ... }
    	ir.Syms.Zerobase = typecheck.LookupRuntimeVar("zerobase")
    
    	if Arch.LinkArch.Family == sys.Wasm {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 284.9K bytes
    - Viewed (0)
Back to top