Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 9 of 9 for StartUnsafePoint (0.23 sec)

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

    	pcdata.To.Type = TYPE_CONST
    	pcdata.To.Offset = -1
    
    	return pcdata
    }
    
    // StartUnsafePoint generates PCDATA Progs after p to mark the
    // beginning of an unsafe point. The unsafe point starts immediately
    // after p.
    // It returns the last Prog generated.
    func (ctxt *Link) StartUnsafePoint(p *Prog, newprog ProgAlloc) *Prog {
    	pcdata := Appendp(p, newprog)
    	pcdata.As = APCDATA
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Sep 01 15:52:41 UTC 2023
    - 11.5K bytes
    - Viewed (0)
  2. src/cmd/internal/obj/s390x/objz.go

    				// code will not see a half-updated stack frame.
    				// This sequence is not async preemptible, as if we open a frame
    				// at the current SP, it will clobber the saved LR.
    				q = c.ctxt.StartUnsafePoint(p, c.newprog)
    
    				q = obj.Appendp(q, c.newprog)
    				q.As = AMOVD
    				q.From.Type = obj.TYPE_REG
    				q.From.Reg = REG_LR
    				q.To.Type = obj.TYPE_MEM
    				q.To.Reg = REGSP
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 21 19:28:53 UTC 2023
    - 21K bytes
    - Viewed (0)
  3. src/cmd/internal/obj/loong64/obj.go

    				// code will not see a half-updated stack frame.
    				// This sequence is not async preemptible, as if we open a frame
    				// at the current SP, it will clobber the saved LR.
    				q = c.ctxt.StartUnsafePoint(q, c.newprog)
    
    				q = obj.Appendp(q, newprog)
    				q.As = mov
    				q.Pos = p.Pos
    				q.From.Type = obj.TYPE_REG
    				q.From.Reg = REGLINK
    				q.To.Type = obj.TYPE_MEM
    				q.To.Offset = int64(-autosize)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 19:22:18 UTC 2023
    - 19.7K bytes
    - Viewed (0)
  4. src/cmd/internal/obj/arm64/obj7.go

    	// If we get preempted here, when resumed the preemption request is
    	// cleared, but we'll still call morestack, which will double the stack
    	// unnecessarily. See issue #35470.
    	p = c.ctxt.StartUnsafePoint(p, c.newprog)
    
    	q := (*obj.Prog)(nil)
    	if framesize <= abi.StackSmall {
    		// small stack: SP < stackguard
    		//	CMP	stackguard, SP
    
    		p = obj.Appendp(p, c.newprog)
    		p.As = ACMP
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Nov 08 05:46:32 UTC 2023
    - 28.4K bytes
    - Viewed (0)
  5. src/cmd/internal/obj/x86/obj6.go

    		// If we get preempted here, when resumed the preemption request is
    		// cleared, but we'll still call morestack, which will double the stack
    		// unnecessarily. See issue #35470.
    		p = ctxt.StartUnsafePoint(p, newprog)
    	} else if framesize <= abi.StackBig {
    		// large stack: SP-framesize <= stackguard-StackSmall
    		//	LEAQ -xxx(SP), tmp
    		//	CMPQ tmp, stackguard
    		p = obj.Appendp(p, newprog)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Sep 08 18:36:45 UTC 2023
    - 40.9K bytes
    - Viewed (0)
  6. src/cmd/internal/obj/arm/obj5.go

    	// If we get preempted here, when resumed the preemption request is
    	// cleared, but we'll still call morestack, which will double the stack
    	// unnecessarily. See issue #35470.
    	p = c.ctxt.StartUnsafePoint(p, c.newprog)
    
    	if framesize <= abi.StackSmall {
    		// small stack: SP < stackguard
    		//	CMP	stackguard, SP
    		p = obj.Appendp(p, c.newprog)
    
    		p.As = ACMP
    		p.From.Type = obj.TYPE_REG
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Nov 20 17:19:36 UTC 2023
    - 21.4K bytes
    - Viewed (0)
  7. src/cmd/internal/obj/mips/obj0.go

    				// code will not see a half-updated stack frame.
    				// This sequence is not async preemptible, as if we open a frame
    				// at the current SP, it will clobber the saved LR.
    				q = c.ctxt.StartUnsafePoint(q, c.newprog)
    
    				q = obj.Appendp(q, newprog)
    				q.As = mov
    				q.Pos = p.Pos
    				q.From.Type = obj.TYPE_REG
    				q.From.Reg = REGLINK
    				q.To.Type = obj.TYPE_MEM
    				q.To.Offset = int64(-autosize)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 21 19:28:53 UTC 2023
    - 30.6K bytes
    - Viewed (0)
  8. src/cmd/internal/obj/ppc64/obj9.go

    					q.From.Type = obj.TYPE_REG
    					q.From.Reg = REG_LR
    					q.To.Type = obj.TYPE_REG
    					q.To.Reg = REG_R29 // REGTMP may be used to synthesize large offset in the next instruction
    
    					q = c.ctxt.StartUnsafePoint(q, c.newprog)
    
    					q = obj.Appendp(q, c.newprog)
    					q.As = AMOVD
    					q.Pos = p.Pos
    					q.From.Type = obj.TYPE_REG
    					q.From.Reg = REG_R29
    					q.To.Type = obj.TYPE_MEM
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 18:17:17 UTC 2024
    - 40.8K bytes
    - Viewed (0)
  9. src/cmd/internal/obj/riscv/obj.go

    	prologue := text
    
    	if !cursym.Func().Text.From.Sym.NoSplit() {
    		prologue = stacksplit(ctxt, prologue, cursym, newprog, stacksize) // emit split check
    	}
    
    	if stacksize != 0 {
    		prologue = ctxt.StartUnsafePoint(prologue, newprog)
    
    		// Actually save LR.
    		prologue = obj.Appendp(prologue, newprog)
    		prologue.As = AMOV
    		prologue.From = obj.Addr{Type: obj.TYPE_REG, Reg: REG_LR}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Sun Apr 07 03:32:27 UTC 2024
    - 77K bytes
    - Viewed (0)
Back to top