Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 13 for asyncPreempt (0.55 sec)

  1. src/runtime/preempt.go

    }
    
    //go:generate go run mkpreempt.go
    
    // asyncPreempt saves all user registers and calls asyncPreempt2.
    //
    // When stack scanning encounters an asyncPreempt frame, it scans that
    // frame and its parent frame conservatively.
    //
    // asyncPreempt is implemented in assembly.
    func asyncPreempt()
    
    //go:nosplit
    func asyncPreempt2() {
    	gp := getg()
    	gp.asyncSafePoint = true
    	if gp.preemptStop {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 15.1K bytes
    - Viewed (0)
  2. src/cmd/internal/objabi/funcid.go

    package objabi
    
    import (
    	"internal/abi"
    	"strings"
    )
    
    var funcIDs = map[string]abi.FuncID{
    	"abort":              abi.FuncID_abort,
    	"asmcgocall":         abi.FuncID_asmcgocall,
    	"asyncPreempt":       abi.FuncID_asyncPreempt,
    	"cgocallback":        abi.FuncID_cgocallback,
    	"corostart":          abi.FuncID_corostart,
    	"debugCallV2":        abi.FuncID_debugCallV2,
    	"gcBgMarkWorker":     abi.FuncID_gcBgMarkWorker,
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Dec 06 21:33:59 UTC 2023
    - 1.6K bytes
    - Viewed (0)
  3. src/runtime/preempt_arm.s

    // Code generated by mkpreempt.go; DO NOT EDIT.
    
    #include "go_asm.h"
    #include "textflag.h"
    
    TEXT ·asyncPreempt(SB),NOSPLIT|NOFRAME,$0-0
    	MOVW.W R14, -188(R13)
    	MOVW R0, 4(R13)
    	MOVW R1, 8(R13)
    	MOVW R2, 12(R13)
    	MOVW R3, 16(R13)
    	MOVW R4, 20(R13)
    	MOVW R5, 24(R13)
    	MOVW R6, 28(R13)
    	MOVW R7, 32(R13)
    	MOVW R8, 36(R13)
    	MOVW R9, 40(R13)
    	MOVW R11, 44(R13)
    	MOVW R12, 48(R13)
    	MOVW CPSR, R0
    	MOVW R0, 52(R13)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Nov 20 17:19:36 UTC 2023
    - 1.5K bytes
    - Viewed (0)
  4. src/runtime/signal_windows.go

    	// won't get to see who faulted.)
    	// Also don't push a sigpanic frame if the faulting PC
    	// is the entry of asyncPreempt. In this case, we suspended
    	// the thread right between the fault and the exception handler
    	// starting to run, and we have pushed an asyncPreempt call.
    	// The exception is not from asyncPreempt, so not to push a
    	// sigpanic call to make it look like that. Instead, just
    	// overwrite the PC. (See issue #35773)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 17 20:32:29 UTC 2023
    - 14.5K bytes
    - Viewed (0)
  5. src/runtime/preempt_riscv64.s

    // Code generated by mkpreempt.go; DO NOT EDIT.
    
    #include "go_asm.h"
    #include "textflag.h"
    
    TEXT ·asyncPreempt(SB),NOSPLIT|NOFRAME,$0-0
    	MOV X1, -464(X2)
    	SUB $464, X2
    	MOV X5, 8(X2)
    	MOV X6, 16(X2)
    	MOV X7, 24(X2)
    	MOV X8, 32(X2)
    	MOV X9, 40(X2)
    	MOV X10, 48(X2)
    	MOV X11, 56(X2)
    	MOV X12, 64(X2)
    	MOV X13, 72(X2)
    	MOV X14, 80(X2)
    	MOV X15, 88(X2)
    	MOV X16, 96(X2)
    	MOV X17, 104(X2)
    	MOV X18, 112(X2)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Nov 09 13:57:06 UTC 2023
    - 2.3K bytes
    - Viewed (0)
  6. src/runtime/mkpreempt.go

    // Copyright 2019 The Go Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style
    // license that can be found in the LICENSE file.
    
    //go:build ignore
    
    // mkpreempt generates the asyncPreempt functions for each
    // architecture.
    package main
    
    import (
    	"flag"
    	"fmt"
    	"io"
    	"log"
    	"os"
    	"strings"
    )
    
    // Copied from cmd/compile/internal/ssa/gen/*Ops.go
    
    var regNames386 = []string{
    	"AX",
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Nov 20 17:19:36 UTC 2023
    - 15.3K bytes
    - Viewed (0)
  7. src/runtime/os_windows.go

    	gp := gFromSP(mp, c.sp())
    	if gp != nil && wantAsyncPreempt(gp) {
    		if ok, newpc := isAsyncSafePoint(gp, c.ip(), c.sp(), c.lr()); ok {
    			// Inject call to asyncPreempt
    			targetPC := abi.FuncPCABI0(asyncPreempt)
    			switch GOARCH {
    			default:
    				throw("unsupported architecture")
    			case "386", "amd64":
    				// Make it look like the thread called targetPC.
    				sp := c.sp()
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 26 22:55:25 UTC 2024
    - 41.5K bytes
    - Viewed (0)
  8. src/runtime/signal_unix.go

    	// preempt.
    	if wantAsyncPreempt(gp) {
    		if ok, newpc := isAsyncSafePoint(gp, ctxt.sigpc(), ctxt.sigsp(), ctxt.siglr()); ok {
    			// Adjust the PC and inject a call to asyncPreempt.
    			ctxt.pushCall(abi.FuncPCABI0(asyncPreempt), newpc)
    		}
    	}
    
    	// Acknowledge the preemption.
    	gp.m.preemptGen.Add(1)
    	gp.m.signalPending.Store(0)
    
    	if GOOS == "darwin" || GOOS == "ios" {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 10 16:04:54 UTC 2024
    - 45K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/ssa/_gen/LOONG64Ops.go

    	"F15",
    	"F16",
    	"F17",
    	"F18",
    	"F19",
    	"F20",
    	"F21",
    	"F22",
    	"F23",
    	"F24",
    	"F25",
    	"F26",
    	"F27",
    	"F28",
    	"F29",
    	"F30",
    	"F31",
    
    	// If you add registers, update asyncPreempt in runtime.
    
    	// pseudo-registers
    	"SB",
    }
    
    func init() {
    	// Make map from reg names to reg integers.
    	if len(regNamesLOONG64) > 64 {
    		panic("too many registers")
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 19:04:19 UTC 2023
    - 25.2K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssa/_gen/PPC64Ops.go

    	"F23",
    	"F24",
    	"F25",
    	"F26",
    	"F27",
    	"F28",
    	"F29",
    	"F30",
    	// "F31", the allocator is limited to 64 entries. We sacrifice this FPR to support XER.
    
    	"XER",
    
    	// If you add registers, update asyncPreempt in runtime.
    
    	// "CR0",
    	// "CR1",
    	// "CR2",
    	// "CR3",
    	// "CR4",
    	// "CR5",
    	// "CR6",
    	// "CR7",
    
    	// "CR",
    	// "LR",
    	// "CTR",
    }
    
    func init() {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 19:59:38 UTC 2024
    - 43.8K bytes
    - Viewed (0)
Back to top