asm_mipsx.s (go1.19.src) | : | asm_mipsx.s (go1.19.1.src) | ||
---|---|---|---|---|
skipping to change at line 260 | skipping to change at line 260 | |||
// Create a stack frame on g0 to call newstack. | // Create a stack frame on g0 to call newstack. | |||
MOVW R0, -4(R29) // Zero saved LR in frame | MOVW R0, -4(R29) // Zero saved LR in frame | |||
ADDU $-4, R29 | ADDU $-4, R29 | |||
JAL runtime·newstack(SB) | JAL 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,$0-0 | TEXT runtime·morestack_noctxt(SB),NOSPLIT,$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 (R3), and the unwinder currently doesn't understand. | ||||
// Make it SPWRITE to stop unwinding. (See issue 54332) | ||||
MOVW R29, R29 | ||||
MOVW R0, REGCTXT | MOVW R0, REGCTXT | |||
JMP runtime·morestack(SB) | JMP 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. | |||
#define DISPATCH(NAME,MAXSIZE) \ | #define DISPATCH(NAME,MAXSIZE) \ | |||
MOVW $MAXSIZE, R23; \ | MOVW $MAXSIZE, R23; \ | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 7 lines changed or added |