Search Options

Results per page
Sort
Preferred Languages
Advance

Results 21 - 30 of 56 for ITab (0.31 sec)

  1. src/cmd/compile/internal/reflectdata/helpers.go

    }
    
    // ConvIfaceTypeWord asserts that n is conversion to interface type,
    // and returns an expression that yields the *runtime._type or
    // *runtime.itab value necessary for implementing the conversion.
    //
    //   - *runtime._type for the destination type, for I2I conversions
    //   - *runtime.itab, for T2I conversions
    //   - *runtime._type for the source type, for T2E conversions
    func ConvIfaceTypeWord(pos src.XPos, n *ir.ConvExpr) ir.Node {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Sep 12 04:50:32 UTC 2023
    - 7.1K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/decompose.go

    	ptrType := v.Block.Func.Config.Types.BytePtr
    
    	itab := v.Block.NewValue0(v.Pos, OpPhi, uintptrType)
    	data := v.Block.NewValue0(v.Pos, OpPhi, ptrType)
    	for _, a := range v.Args {
    		itab.AddArg(a.Block.NewValue1(v.Pos, OpITab, uintptrType, a))
    		data.AddArg(a.Block.NewValue1(v.Pos, OpIData, ptrType, a))
    	}
    	v.reset(OpIMake)
    	v.AddArg(itab)
    	v.AddArg(data)
    }
    
    func decomposeUser(f *Func) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Aug 23 21:22:15 UTC 2022
    - 13.4K bytes
    - Viewed (0)
  3. src/cmd/link/internal/ld/deadcode.go

    				rs := r.Sym()
    				if d.ldr.IsItab(rs) {
    					// This relocation can also point at an itab, in which case it
    					// means "the Type field of that itab".
    					rs = decodeItabType(d.ldr, d.ctxt.Arch, rs)
    				}
    				if !d.ldr.IsGoType(rs) && !d.ctxt.linkShared {
    					panic(fmt.Sprintf("R_USEIFACE in %s references %s which is not a type or itab", d.ldr.SymName(symIdx), d.ldr.SymName(rs)))
    				}
    				if !d.ldr.AttrUsedInIface(rs) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 14:52:41 UTC 2024
    - 19K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssagen/ssa.go

    			s.startBlock(bOk)
    			// nonempty -> empty
    			// Need to load type from itab
    			off := s.newValue1I(ssa.OpOffPtr, byteptr, rttype.ITab.OffsetOf("Type"), itab)
    			s.vars[typVar] = s.load(byteptr, off)
    			s.endBlock()
    
    			// itab is nil, might as well use that as the nil result.
    			s.startBlock(bFail)
    			s.vars[typVar] = itab
    			s.endBlock()
    
    			// Merge point.
    			bEnd := s.f.NewBlock(ssa.BlockPlain)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 284.9K bytes
    - Viewed (0)
  5. src/cmd/link/internal/ld/decodesym.go

    func decodetypeGcprogShlib(ctxt *Link, data []byte) uint64 {
    	return decodeInuxi(ctxt.Arch, data[2*int32(ctxt.Arch.PtrSize)+8+1*int32(ctxt.Arch.PtrSize):], ctxt.Arch.PtrSize)
    }
    
    // decodeItabType returns the itab.Type field from an itab.
    func decodeItabType(ldr *loader.Loader, arch *sys.Arch, symIdx loader.Sym) loader.Sym {
    	relocs := ldr.Relocs(symIdx)
    	return decodeRelocSym(ldr, symIdx, &relocs, int32(abi.ITabTypeOff(arch.PtrSize)))
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 02 16:25:18 UTC 2024
    - 9.9K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/staticinit/sched.go

    		var itab *ir.AddrExpr
    		if typ.IsEmptyInterface() {
    			itab = reflectdata.TypePtrAt(base.Pos, val.Type())
    		} else {
    			itab = reflectdata.ITabAddrAt(base.Pos, val.Type(), typ)
    		}
    
    		// Create a copy of l to modify while we emit data.
    
    		// Emit itab, advance offset.
    		staticdata.InitAddr(l, loff, itab.X.(*ir.LinksymOffsetExpr).Linksym)
    
    		// Emit data.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 02 17:16:14 UTC 2024
    - 30.7K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/typecheck/subr.go

    	//   c. at least one is a gcshape type.
    	// For assignable but different non-empty interface types,
    	// we want to recompute the itab. Recomputing the itab ensures
    	// that itabs are unique (thus an interface with a compile-time
    	// type I has an itab with interface type I).
    	if types.Identical(src.Underlying(), dst.Underlying()) {
    		if src.IsEmptyInterface() {
    			// Conversion between two empty interfaces
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Oct 05 19:45:58 UTC 2023
    - 20.2K bytes
    - Viewed (0)
  8. src/runtime/runtime-gdb.py

    # fields to python attributes in gdb.py isn't complete: you can't test
    # for presence other than by trapping.
    
    
    def is_iface(val):
    	try:
    		return str(val['tab'].type) == "struct runtime.itab *" and str(val['data'].type) == "void *"
    	except gdb.error:
    		pass
    
    
    def is_eface(val):
    	try:
    		return str(val['_type'].type) == "struct runtime._type *" and str(val['data'].type) == "void *"
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 10 12:59:20 UTC 2023
    - 15.4K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/walk/expr.go

    // walkDynamicDotType walks an ODYNAMICDOTTYPE or ODYNAMICDOTTYPE2 node.
    func walkDynamicDotType(n *ir.DynamicTypeAssertExpr, init *ir.Nodes) ir.Node {
    	n.X = walkExpr(n.X, init)
    	n.RType = walkExpr(n.RType, init)
    	n.ITab = walkExpr(n.ITab, init)
    	// Convert to non-dynamic if we can.
    	if n.RType != nil && n.RType.Op() == ir.OADDR {
    		addr := n.RType.(*ir.AddrExpr)
    		if addr.X.Op() == ir.OLINKSYMOFFSET {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 04 17:34:01 UTC 2024
    - 27.6K bytes
    - Viewed (0)
  10. src/runtime/mfinal.go

    	case fint.Kind_&abi.KindMask == abi.Interface:
    		ityp := (*interfacetype)(unsafe.Pointer(fint))
    		if len(ityp.Methods) == 0 {
    			// ok - satisfies empty interface
    			goto okarg
    		}
    		if itab := assertE2I2(ityp, efaceOf(&obj)._type); itab != nil {
    			goto okarg
    		}
    	}
    	throw("runtime.SetFinalizer: cannot pass " + toRType(etyp).string() + " to finalizer " + toRType(ftyp).string())
    okarg:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 01:56:56 UTC 2024
    - 19K bytes
    - Viewed (0)
Back to top