Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 32 for sigpanic0 (0.17 sec)

  1. src/runtime/asm.s

    // Use of this source code is governed by a BSD-style
    // license that can be found in the LICENSE file.
    
    #include "textflag.h"
    
    #ifndef GOARCH_amd64
    TEXT ·sigpanic0(SB),NOSPLIT,$0-0
    	JMP	·sigpanic<ABIInternal>(SB)
    #endif
    
    // See map.go comment on the need for this routine.
    TEXT ·mapinitnoop<ABIInternal>(SB),NOSPLIT,$0-0
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 16 21:49:14 UTC 2024
    - 386 bytes
    - Viewed (0)
  2. src/runtime/os3_plan9.go

    			flags = t.flags
    			break
    		}
    	}
    	if flags&_SigPanic != 0 && gp.throwsplit {
    		// We can't safely sigpanic because it may grow the
    		// stack. Abort in the signal handler instead.
    		flags = (flags &^ _SigPanic) | _SigThrow
    	}
    	if flags&_SigGoExit != 0 {
    		exits((*byte)(add(unsafe.Pointer(note), 9))) // Strip "go: exit " prefix.
    	}
    	if flags&_SigPanic != 0 {
    		// Copy the error string from sigtramp's stack into m->notesig so
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 4K bytes
    - Viewed (0)
  3. 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
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 17 20:32:29 UTC 2023
    - 14.5K bytes
    - Viewed (0)
  4. src/runtime/stubs.go

    func addmoduledata()
    
    // Injected by the signal handler for panicking signals.
    // Initializes any registers that have fixed meaning at calls but
    // are scratch in bodies and calls sigpanic.
    // On many platforms it just jumps to sigpanic.
    func sigpanic0()
    
    // intArgRegs is used by the various register assignment
    // algorithm implementations in the runtime. These include:.
    // - Finalizers (mfinal.go)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 20.2K bytes
    - Viewed (0)
  5. src/runtime/asm_amd64.s

    	RET
    
    // Initialize special registers then jump to sigpanic.
    // This function is injected from the signal handler for panicking
    // signals. It is quite painful to set X15 in the signal context,
    // so we do it here.
    TEXT ·sigpanic0(SB),NOSPLIT,$0-0
    	get_tls(R14)
    	MOVQ	g(R14), R14
    #ifndef GOOS_plan9
    	XORPS	X15, X15
    #endif
    	JMP	·sigpanic<ABIInternal>(SB)
    
    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/runtime/signal_unix.go

    // instead.
    //
    // This must NOT be nosplit because the linker doesn't know where
    // sigpanic calls can be injected.
    //
    // The signal handler must not inject a call to sigpanic if
    // getg().throwsplit, since sigpanic may need to grow the stack.
    //
    // This is exported via linkname to assembly in runtime/cgo.
    //
    //go:linkname sigpanic
    func sigpanic() {
    	gp := getg()
    	if !canpanic() {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 10 16:04:54 UTC 2024
    - 45K bytes
    - Viewed (0)
  7. src/runtime/signal_arm64.go

    	// Frame pointer unwinding won't visit the sigpanic frame, since
    	// sigpanic will save the same frame pointer before calling into a panic
    	// function.
    	*(*uint64)(unsafe.Pointer(uintptr(sp - goarch.PtrSize))) = c.r29()
    
    	pc := gp.sigpc
    
    	if shouldPushSigpanic(gp, pc, uintptr(c.lr())) {
    		// Make it look the like faulting PC called sigpanic.
    		c.set_lr(uint64(pc))
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Apr 05 18:16:00 UTC 2023
    - 3.8K bytes
    - Viewed (0)
  8. src/runtime/panic.go

    		return false
    	}
    	releasem(mp)
    	return true
    }
    
    // shouldPushSigpanic reports whether pc should be used as sigpanic's
    // return PC (pushing a frame for the call). Otherwise, it should be
    // left alone so that LR is used as sigpanic's return PC, effectively
    // replacing the top-most frame with sigpanic. This is used by
    // preparePanic.
    func shouldPushSigpanic(gp *g, pc, lr uintptr) bool {
    	if pc == 0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 43.8K bytes
    - Viewed (0)
  9. src/runtime/signal_loong64.go

    func (c *sigctxt) fault() uintptr { return uintptr(c.sigaddr()) }
    
    // preparePanic sets up the stack to look like a call to sigpanic.
    func (c *sigctxt) preparePanic(sig uint32, gp *g) {
    	// We arrange link, and pc to pretend the panicking
    	// function calls sigpanic directly.
    	// Always save LINK to stack so that panics in leaf
    	// functions are correctly handled. This smashes
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Mar 21 06:51:28 UTC 2023
    - 3K bytes
    - Viewed (0)
  10. src/runtime/signal_ppc64x.go

    	if shouldPushSigpanic(gp, pc, uintptr(c.link())) {
    		// Make it look the like faulting PC called sigpanic.
    		c.set_link(uint64(pc))
    	}
    
    	// In case we are panicking from external C code
    	c.set_r0(0)
    	c.set_r30(uint64(uintptr(unsafe.Pointer(gp))))
    	c.set_r12(uint64(abi.FuncPCABIInternal(sigpanic)))
    	c.set_pc(uint64(abi.FuncPCABIInternal(sigpanic)))
    }
    
    func (c *sigctxt) pushCall(targetPC, resumePC uintptr) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Sep 08 15:08:04 UTC 2023
    - 3.7K bytes
    - Viewed (0)
Back to top