asm_s390x.s (go1.19.src) | : | asm_s390x.s (go1.19.1.src) | ||
---|---|---|---|---|
skipping to change at line 349 | skipping to change at line 349 | |||
// Create a stack frame on g0 to call newstack. | // Create a stack frame on g0 to call newstack. | |||
MOVD $0, -8(R15) // Zero saved LR in frame | MOVD $0, -8(R15) // Zero saved LR in frame | |||
SUB $8, R15 | SUB $8, R15 | |||
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 R15, R15 | ||||
MOVD $0, R12 | MOVD $0, R12 | |||
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 |