Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 196 for spill (0.09 sec)

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

    		// Rematerialize instead of loading from the spill location.
    		c = v.copyIntoWithXPos(s.curBlock, pos)
    	} else {
    		// Load v from its spill location.
    		spill := s.makeSpill(v, s.curBlock)
    		if s.f.pass.debug > logSpills {
    			s.f.Warnl(vi.spill.Pos, "load spill for %v from %v", v, spill)
    		}
    		c = s.curBlock.NewValue1(pos, OpLoadReg, v.Type, spill)
    	}
    
    	s.setOrig(c, v)
    
    	if onWasmStack {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 17:49:56 UTC 2023
    - 87.2K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/debug.go

    			cloRegStore = v
    			continue
    		}
    		if ok, r := isRegMoveLike(v); ok {
    			if removed := removeReg(r); removed {
    				if len(regArgs) == 0 {
    					// Found our last spill; return the value after
    					// it. Note that it is possible that this spill is
    					// the last instruction in the block. If so, then
    					// return the "end of block" sentinel.
    					if k < len(f.Entry.Values)-1 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 58.4K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ppc64/ssa.go

    		ssagen.AddrAuto(&p.To, v)
    
    	case ssa.OpArgIntReg, ssa.OpArgFloatReg:
    		// The assembler needs to wrap the entry safepoint/stack growth code with spill/unspill
    		// The loop only runs once.
    		for _, a := range v.Block.Func.RegArgs {
    			// Pass the spill/unspill information along to the assembler, offset by size of
    			// the saved LR slot.
    			addr := ssagen.SpillSlotAddr(a, ppc64.REGSP, base.Ctxt.Arch.FixedFrameSize)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 19:59:38 UTC 2024
    - 55.4K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/_gen/ARM64Ops.go

    		//	STP.P	(ZR,ZR), 16(R16)
    		//	CMP	Rarg1, R16
    		//	BLE	-2(PC)
    		// Note: the-end-of-the-memory may be not a valid pointer. it's a problem if it is spilled.
    		// the-end-of-the-memory - 16 is with the area to zero, ok to spill.
    		{
    			name:      "LoweredZero",
    			argLength: 3,
    			reg: regInfo{
    				inputs:   []regMask{buildReg("R16"), gp},
    				clobbers: buildReg("R16"),
    			},
    			clobberFlags:   true,
    			faultOnNilArg0: true,
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 15:49:20 UTC 2024
    - 58.8K bytes
    - Viewed (0)
  5. src/runtime/asm_amd64.s

    goodm:
    	MOVQ	R14, AX		// AX (and arg 0) = g
    	MOVQ	SI, R14		// g = g.m.g0
    	get_tls(CX)		// Set G in TLS
    	MOVQ	R14, g(CX)
    	MOVQ	(g_sched+gobuf_sp)(R14), SP	// sp = g0.sched.sp
    	PUSHQ	AX	// open up space for fn's arg spill slot
    	MOVQ	0(DX), R12
    	CALL	R12		// fn(g)
    	// The Windows native stack unwinder incorrectly classifies the next instruction
    	// as part of the function epilogue, producing a wrong call stack.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Sat May 11 20:38:24 UTC 2024
    - 60.4K bytes
    - Viewed (0)
  6. src/cmd/internal/obj/riscv/obj.go

    	if framesize == 0 {
    		return p
    	}
    
    	if ctxt.Flag_maymorestack != "" {
    		// Save LR and REGCTXT
    		const frameSize = 16
    		p = ctxt.StartUnsafePoint(p, newprog)
    
    		// Spill Arguments. This has to happen before we open
    		// any more frame space.
    		p = cursym.Func().SpillRegisterArgs(p, newprog)
    
    		// MOV LR, -16(SP)
    		p = obj.Appendp(p, newprog)
    		p.As = AMOV
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Sun Apr 07 03:32:27 UTC 2024
    - 77K bytes
    - Viewed (0)
  7. src/reflect/type.go

    	abid = newAbiDesc(t, rcvr)
    
    	// build dummy rtype holding gc program
    	x := &abi.Type{
    		Align_: goarch.PtrSize,
    		// Don't add spill space here; it's only necessary in
    		// reflectcall's frame, not in the allocated frame.
    		// TODO(mknyszek): Remove this comment when register
    		// spill space in the frame is no longer required.
    		Size_:    align(abid.retOffset+abid.ret.stackBytes, goarch.PtrSize),
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 85.5K bytes
    - Viewed (0)
  8. src/runtime/traceback.go

    		if !isLive(off, slotIdx) {
    			print("?")
    		}
    	}
    
    	start := true
    	printcomma := func() {
    		if !start {
    			print(", ")
    		}
    	}
    	pi := 0
    	slotIdx := uint8(0) // register arg spill slot index
    printloop:
    	for {
    		o := p[pi]
    		pi++
    		switch o {
    		case abi.TraceArgsEndSeq:
    			break printloop
    		case abi.TraceArgsStartAgg:
    			printcomma()
    			print("{")
    			start = true
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 16:25:21 UTC 2024
    - 55.1K bytes
    - Viewed (0)
  9. src/cmd/link/internal/ld/elf.go

    	}
    
    	// Verify the amount of space allocated for the elf header is sufficient.  The file offsets are
    	// already computed in layout, so we could spill into another section.
    	if a > int64(HEADR) {
    		Errorf(nil, "HEADR too small: %d > %d with %d text sections", a, HEADR, numtext)
    	}
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 22 13:29:54 UTC 2024
    - 63.6K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssa/_gen/AMD64.rules

    (MOVLi2f <t> (Arg <u> [off] {sym})) && t.Size() == u.Size() => @b.Func.Entry (Arg <t> [off] {sym})
    
    // LEAQ is rematerializeable, so this helps to avoid register spill.
    // See issue 22947 for details
    (ADD(Q|L)const [off] x:(SP)) => (LEA(Q|L) [off] x)
    
    // HMULx is commutative, but its first argument must go in AX.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Mar 12 19:38:41 UTC 2024
    - 93.9K bytes
    - Viewed (0)
Back to top