asm_arm.s (go1.19.src) | : | asm_arm.s (go1.19.1.src) | ||
---|---|---|---|---|
skipping to change at line 390 | skipping to change at line 390 | |||
MOVW (g_sched+gobuf_sp)(g), R13 | MOVW (g_sched+gobuf_sp)(g), R13 | |||
MOVW $0, R0 | MOVW $0, R0 | |||
MOVW.W R0, -4(R13) // create a call frame on g0 (saved LR) | MOVW.W R0, -4(R13) // create a call frame on g0 (saved LR) | |||
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. | |||
RET | RET | |||
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 (R3), and the unwinder currently doesn't understand. | ||||
// Make it SPWRITE to stop unwinding. (See issue 54332) | ||||
MOVW R13, R13 | ||||
MOVW $0, R7 | MOVW $0, R7 | |||
B runtime·morestack(SB) | B 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 |