Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 9 of 9 for stacksplit (0.39 sec)

  1. src/cmd/internal/obj/loong64/obj.go

    			if c.cursym.Func().Text.Mark&LEAF != 0 {
    				c.cursym.Set(obj.AttrLeaf, true)
    				if p.From.Sym.NoFrame() {
    					break
    				}
    			}
    
    			if !p.From.Sym.NoSplit() {
    				p = c.stacksplit(p, autosize) // emit split check
    			}
    
    			q = p
    
    			if autosize != 0 {
    				// Make sure to save link register for non-empty frame, even if
    				// it is a leaf function, so that traceback works.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 19:22:18 UTC 2023
    - 19.7K bytes
    - Viewed (0)
  2. src/cmd/internal/obj/arm/obj5.go

    			if cursym.Func().Text.Mark&LEAF != 0 {
    				cursym.Set(obj.AttrLeaf, true)
    				if p.From.Sym.NoFrame() {
    					break
    				}
    			}
    
    			if !p.From.Sym.NoSplit() {
    				p = c.stacksplit(p, autosize) // emit split check
    			}
    
    			// MOVW.W		R14,$-autosize(SP)
    			p = obj.Appendp(p, c.newprog)
    
    			p.As = AMOVW
    			p.Scond |= C_WBIT
    			p.From.Type = obj.TYPE_REG
    			p.From.Reg = REGLINK
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Nov 20 17:19:36 UTC 2023
    - 21.4K bytes
    - Viewed (0)
  3. src/cmd/internal/obj/arm64/obj7.go

    	ASBC:   true,
    	ASBCW:  true,
    	ASBCS:  true,
    	ASBCSW: true,
    	AADC:   true,
    	AADCW:  true,
    	AADCS:  true,
    	AADCSW: true,
    	AFMOVD: true,
    	AFMOVS: true,
    	AMSR:   true,
    }
    
    func (c *ctxt7) stacksplit(p *obj.Prog, framesize int32) *obj.Prog {
    	if c.ctxt.Flag_maymorestack != "" {
    		p = c.cursym.Func().SpillRegisterArgs(p, c.newprog)
    
    		// Save LR and make room for FP, REGCTXT. Leave room
    		// for caller's saved FP.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Nov 08 05:46:32 UTC 2023
    - 28.4K bytes
    - Viewed (0)
  4. src/cmd/internal/obj/mips/obj0.go

    			if c.cursym.Func().Text.Mark&LEAF != 0 {
    				c.cursym.Set(obj.AttrLeaf, true)
    				if p.From.Sym.NoFrame() {
    					break
    				}
    			}
    
    			if !p.From.Sym.NoSplit() {
    				p = c.stacksplit(p, autosize) // emit split check
    			}
    
    			q = p
    
    			if autosize != 0 {
    				// Make sure to save link register for non-empty frame, even if
    				// it is a leaf function, so that traceback works.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 21 19:28:53 UTC 2023
    - 30.6K bytes
    - Viewed (0)
  5. src/cmd/internal/obj/ppc64/obj9.go

    				rel.Off = 0
    				rel.Siz = 8
    				rel.Sym = c.ctxt.Lookup(".TOC.")
    				rel.Type = objabi.R_ADDRPOWER_PCREL
    			}
    
    			if !c.cursym.Func().Text.From.Sym.NoSplit() {
    				q = c.stacksplit(q, autosize) // emit split check
    			}
    
    			if autosize != 0 {
    				var prologueEnd *obj.Prog
    				// Save the link register and update the SP.  MOVDU is used unless
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 18:17:17 UTC 2024
    - 40.8K bytes
    - Viewed (0)
  6. src/cmd/internal/obj/x86/obj6.go

    	} else {
    		regEntryTmp0, regEntryTmp1 = REG_BX, REG_DI
    	}
    
    	var regg int16
    	if !p.From.Sym.NoSplit() {
    		// Emit split check and load G register
    		p, regg = stacksplit(ctxt, cursym, p, newprog, autoffset, int32(textarg))
    	} else if p.From.Sym.Wrapper() {
    		// Load G register for the wrapper code
    		p, regg = loadG(ctxt, cursym, p, newprog)
    	}
    
    	if bpsize > 0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Sep 08 18:36:45 UTC 2023
    - 40.9K bytes
    - Viewed (0)
  7. src/runtime/stack.go

    	fixedStack5 = fixedStack4 | (fixedStack4 >> 8)
    	fixedStack6 = fixedStack5 | (fixedStack5 >> 16)
    	fixedStack  = fixedStack6 + 1
    
    	// stackNosplit is the maximum number of bytes that a chain of NOSPLIT
    	// functions can use.
    	// This arithmetic must match that in cmd/internal/objabi/stack.go:StackNosplit.
    	stackNosplit = abi.StackNosplitBase * sys.StackGuardMultiplier
    
    	// The stack guard is a pointer this many bytes above the
    	// bottom of the stack.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 22:31:00 UTC 2024
    - 41.1K bytes
    - Viewed (0)
  8. src/cmd/link/internal/ld/stackcheck.go

    	// depth, the stack check test fails.
    	//
    	// The call to morestack in every splittable function ensures
    	// that there are at least StackLimit bytes available below SP
    	// when morestack returns.
    	limit := objabi.StackNosplit(*flagRace) - sc.callSize
    	if buildcfg.GOARCH == "arm64" {
    		// Need an extra 8 bytes below SP to save FP.
    		limit -= 8
    	}
    
    	// Compute stack heights without any back-tracking information.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 24 16:49:08 UTC 2023
    - 11.9K bytes
    - Viewed (0)
  9. src/runtime/preempt.go

    	f = findfunc(abi.FuncPCABIInternal(asyncPreempt2))
    	total += funcMaxSPDelta(f)
    	// Add some overhead for return PCs, etc.
    	asyncPreemptStack = uintptr(total) + 8*goarch.PtrSize
    	if asyncPreemptStack > stackNosplit {
    		// We need more than the nosplit limit. This isn't
    		// unsafe, but it may limit asynchronous preemption.
    		//
    		// This may be a problem if we start using more
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 15.1K bytes
    - Viewed (0)
Back to top