TEXT runtime·retpolineR14(SB),NOSPLIT|NOFRAME,$0; RETPOLINE(14)
TEXT runtime·retpolineR15(SB),NOSPLIT|NOFRAME,$0; RETPOLINE(15)
-TEXT ·getcallerfp<ABIInternal>(SB),NOSPLIT|NOFRAME,$0
+TEXT ·getfp<ABIInternal>(SB),NOSPLIT|NOFRAME,$0
MOVQ BP, AX
RET
MOVD R3, R1
JMP runtime·goPanicSliceConvert<ABIInternal>(SB)
-TEXT ·getcallerfp<ABIInternal>(SB),NOSPLIT|NOFRAME,$0
+TEXT ·getfp<ABIInternal>(SB),NOSPLIT|NOFRAME,$0
MOVD R29, R0
RET
// FPCallers works like Callers and uses frame pointer unwinding to populate
// pcBuf with the return addresses of the physical frames on the stack.
func FPCallers(pcBuf []uintptr) int {
- return fpTracebackPCs(unsafe.Pointer(getcallerfp()), pcBuf)
+ return fpTracebackPCs(unsafe.Pointer(getfp()), pcBuf)
}
var (
var ctx context
ctx.set_ip(getcallerpc())
ctx.set_sp(getcallersp())
- ctx.set_fp(getcallerfp())
+ ctx.set_fp(getfp())
return ContextStub{ctx}
}
// No threads, so nothing to do.
}
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
-func getcallerfp() uintptr { return 0 }
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
+// TODO: Make this a compiler intrinsic
+func getfp() uintptr { return 0 }
func setProcessCPUProfiler(hz int32) {}
func setThreadCPUProfiler(hz int32) {}
//go:noescape
func asmcgocall_no_g(fn, arg unsafe.Pointer)
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
-func getcallerfp() uintptr { return 0 }
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
+// TODO: Make this a compiler intrinsic
+func getfp() uintptr { return 0 }
func spillArgs()
func unspillArgs()
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
// TODO: Make this a compiler intrinsic
-func getcallerfp() uintptr
+func getfp() uintptr
//go:noescape
func asmcgocall_no_g(fn, arg unsafe.Pointer)
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
-func getcallerfp() uintptr { return 0 }
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
+// TODO: Make this a compiler intrinsic
+func getfp() uintptr { return 0 }
func spillArgs()
func unspillArgs()
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
// TODO: Make this a compiler intrinsic
-func getcallerfp() uintptr
+func getfp() uintptr
func load_g()
func save_g()
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
-func getcallerfp() uintptr { return 0 }
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
+// TODO: Make this a compiler intrinsic
+func getfp() uintptr { return 0 }
//go:noescape
func asmcgocall_no_g(fn, arg unsafe.Pointer)
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
-func getcallerfp() uintptr { return 0 }
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
+// TODO: Make this a compiler intrinsic
+func getfp() uintptr { return 0 }
func load_g()
func save_g()
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
-func getcallerfp() uintptr { return 0 }
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
+// TODO: Make this a compiler intrinsic
+func getfp() uintptr { return 0 }
func spillArgs()
func unspillArgs()
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
-func getcallerfp() uintptr { return 0 }
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
+// TODO: Make this a compiler intrinsic
+func getfp() uintptr { return 0 }
func spillArgs()
func unspillArgs()
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
-func getcallerfp() uintptr { return 0 }
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
+// TODO: Make this a compiler intrinsic
+func getfp() uintptr { return 0 }
func load_g()
func save_g()
-// getcallerfp returns the address of the frame pointer in the callers frame or 0 if not implemented.
-func getcallerfp() uintptr { return 0 }
+// getfp returns the frame pointer register of its caller or 0 if not implemented.
+// TODO: Make this a compiler intrinsic
+func getfp() uintptr { return 0 }
// Fast path: Unwind using frame pointers.
pcBuf[0] = uintptr(skip)
if curgp == gp {
- nstk += fpTracebackPCs(unsafe.Pointer(getcallerfp()), pcBuf[1:])
+ nstk += fpTracebackPCs(unsafe.Pointer(getfp()), pcBuf[1:])
} else if curgp != nil {
// We're called on the g0 stack through mcall(fn) or systemstack(fn). To
// behave like gcallers above, we start unwinding from sched.bp, which