Search Options

Results per page
Sort
Preferred Languages
Advance

Results 11 - 19 of 19 for opcodeTable (0.43 sec)

  1. src/cmd/compile/internal/ssa/check.go

    		}
    
    		for _, v := range b.Values {
    			// Check to make sure argument count makes sense (argLen of -1 indicates
    			// variable length args)
    			nArgs := opcodeTable[v.Op].argLen
    			if nArgs != -1 && int32(len(v.Args)) != nArgs {
    				f.Fatalf("value %s has %d args, expected %d", v.LongString(),
    					len(v.Args), nArgs)
    			}
    
    			// Check to make sure aux values make sense.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 09 16:41:23 UTC 2024
    - 17.6K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/flagalloc.go

    			v := b.Values[j]
    			if v.Op == OpInvalid {
    				continue
    			}
    			b.Values[i] = v
    			i++
    		}
    		b.truncateValues(i)
    	}
    }
    
    func (v *Value) clobbersFlags() bool {
    	if opcodeTable[v.Op].clobberFlags {
    		return true
    	}
    	if v.Type.IsTuple() && (v.Type.FieldType(0).IsFlags() || v.Type.FieldType(1).IsFlags()) {
    		// This case handles the possibility where a flag value is generated but never used.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 6.7K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/fuse.go

    // There may be false positives.
    func isEmpty(b *Block) bool {
    	for _, v := range b.Values {
    		if v.Uses > 0 || v.Op.IsCall() || v.Op.HasSideEffects() || v.Type.IsVoid() || opcodeTable[v.Op].nilCheck {
    			return false
    		}
    	}
    	return true
    }
    
    // fuseBlockPlain handles a run of blocks with length >= 2,
    // whose interior has single predecessors and successors,
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 31 20:45:54 UTC 2023
    - 9K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/cse.go

    		// partition can grow in the loop. By not using a range loop here,
    		// we process new additions as they arrive, avoiding O(n^2) behavior.
    		for i := 0; i < len(partition); i++ {
    			e := partition[i]
    
    			if opcodeTable[e[0].Op].commutative {
    				// Order the first two args before comparison.
    				for _, v := range e {
    					if valueEqClass[v.Args[0].ID] > valueEqClass[v.Args[1].ID] {
    						v.Args[0], v.Args[1] = v.Args[1], v.Args[0]
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 9.6K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/config.go

    			c.useSSE = false
    		}
    	}
    
    	if ctxt.Flag_shared {
    		// LoweredWB is secretly a CALL and CALLs on 386 in
    		// shared mode get rewritten by obj6.go to go through
    		// the GOT, which clobbers BX.
    		opcodeTable[Op386LoweredWB].reg.clobbers |= 1 << 3 // BX
    	}
    
    	// Create the GC register map index.
    	// TODO: This is only used for debug printing. Maybe export config.registers?
    	gcRegMapSize := int16(0)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 02 16:11:47 UTC 2024
    - 12.9K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/branchelim.go

    	// or anything else with side-effects
    	for _, v := range b.Values {
    		if v.Op == OpPhi || isDivMod(v.Op) || isPtrArithmetic(v.Op) || v.Type.IsMemory() ||
    			v.MemoryArg() != nil || opcodeTable[v.Op].hasSideEffects {
    			return false
    		}
    	}
    	return true
    }
    
    func isDivMod(op Op) bool {
    	switch op {
    	case OpDiv8, OpDiv8u, OpDiv16, OpDiv16u,
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Nov 30 17:46:51 UTC 2022
    - 12.7K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/debug.go

    		state.currentState.slots[slot] = loc
    	}
    
    	// Handle any register clobbering. Call operations, for example,
    	// clobber all registers even though they don't explicitly write to
    	// them.
    	clobbers := uint64(opcodeTable[v.Op].reg.clobbers)
    	for {
    		if clobbers == 0 {
    			break
    		}
    		reg := uint8(bits.TrailingZeros64(clobbers))
    		clobbers &^= 1 << reg
    
    		for _, slot := range locs.registers[reg] {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 58.4K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/rewrite.go

    		return false
    	}
    	baseAndOffset := func(ptr *Value) (base *Value, offset int64) {
    		base, offset = ptr, 0
    		for base.Op == OpOffPtr {
    			offset += base.AuxInt
    			base = base.Args[0]
    		}
    		if opcodeTable[base.Op].nilCheck {
    			base = base.Args[0]
    		}
    		return base, offset
    	}
    	p1, off1 := baseAndOffset(p1)
    	p2, off2 := baseAndOffset(p2)
    	if isSamePtr(p1, p2) {
    		return !overlap(off1, n1, off2, n2)
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 64.2K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/ssa/opGen.go

    func (o Op) Asm() obj.As          { return opcodeTable[o].asm }
    func (o Op) Scale() int16         { return int16(opcodeTable[o].scale) }
    func (o Op) String() string       { return opcodeTable[o].name }
    func (o Op) SymEffect() SymEffect { return opcodeTable[o].symEffect }
    func (o Op) IsCall() bool         { return opcodeTable[o].call }
    func (o Op) IsTailCall() bool     { return opcodeTable[o].tailCall }
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 15:49:20 UTC 2024
    - 1M bytes
    - Viewed (0)
Back to top