asm_ppc64x.s (go1.19.src) | : | asm_ppc64x.s (go1.19.1.src) | ||
---|---|---|---|---|
skipping to change at line 337 | skipping to change at line 337 | |||
BL runtime·save_g(SB) | BL runtime·save_g(SB) | |||
MOVD (g_sched+gobuf_sp)(g), R1 | MOVD (g_sched+gobuf_sp)(g), R1 | |||
MOVDU R0, -(FIXED_FRAME+0)(R1) // create a call frame on g0 | MOVDU R0, -(FIXED_FRAME+0)(R1) // create a call frame on g0 | |||
BL runtime·newstack(SB) | BL runtime·newstack(SB) | |||
// Not reached, but make sure the return PC from the call to newstack | // Not reached, but make sure the return PC from the call to newstack | |||
// is still in this function, and not the beginning of the next. | // is still in this function, and not the beginning of the next. | |||
UNDEF | UNDEF | |||
TEXT runtime·morestack_noctxt(SB),NOSPLIT|NOFRAME,$0-0 | TEXT runtime·morestack_noctxt(SB),NOSPLIT|NOFRAME,$0-0 | |||
// Force SPWRITE. This function doesn't actually write SP, | ||||
// but it is called with a special calling convention where | ||||
// the caller doesn't save LR on stack but passes it as a | ||||
// register (R5), and the unwinder currently doesn't understand. | ||||
// Make it SPWRITE to stop unwinding. (See issue 54332) | ||||
MOVD R1, R1 | ||||
MOVD R0, R11 | MOVD R0, R11 | |||
BR runtime·morestack(SB) | BR runtime·morestack(SB) | |||
// reflectcall: call a function with the given argument list | // reflectcall: call a function with the given argument list | |||
// func call(stackArgsType *_type, f *FuncVal, stackArgs *byte, stackArgsSize, s tackRetOffset, frameSize uint32, regArgs *abi.RegArgs). | // func call(stackArgsType *_type, f *FuncVal, stackArgs *byte, stackArgsSize, s tackRetOffset, frameSize uint32, regArgs *abi.RegArgs). | |||
// we don't have variable-sized frames, so we use a small number | // we don't have variable-sized frames, so we use a small number | |||
// of constant-sized-frame functions to encode a few bits of size in the pc. | // of constant-sized-frame functions to encode a few bits of size in the pc. | |||
// Caution: ugly multiline assembly macros in your future! | // Caution: ugly multiline assembly macros in your future! | |||
#define DISPATCH(NAME,MAXSIZE) \ | #define DISPATCH(NAME,MAXSIZE) \ | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 7 lines changed or added |