From: Guoqi Chen Date: Mon, 23 May 2022 00:58:51 +0000 (+0800) Subject: runtime: add missing {TOPFRAME,NOFRAME} flag for linux/loong64 X-Git-Tag: go1.19beta1~133 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=61fc5df6897544d8ecf8efd5b39648a6bd121ec8;p=gostls13.git runtime: add missing {TOPFRAME,NOFRAME} flag for linux/loong64 Co-authored-by: limeidan Change-Id: I0011a10f831e6c2b0da96265682212b0747f0e2a Reviewed-on: https://go-review.googlesource.com/c/go/+/407774 Reviewed-by: Cherry Mui Reviewed-by: David Chase TryBot-Result: Gopher Robot Reviewed-by: WANG Xuerui Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor Auto-Submit: Ian Lance Taylor --- diff --git a/src/runtime/asm_loong64.s b/src/runtime/asm_loong64.s index 38cc56c7ba..068e8e05b3 100644 --- a/src/runtime/asm_loong64.s +++ b/src/runtime/asm_loong64.s @@ -9,7 +9,7 @@ #define REGCTXT R29 -TEXT runtime·rt0_go(SB),NOSPLIT,$0 +TEXT runtime·rt0_go(SB),NOSPLIT|TOPFRAME,$0 // R3 = stack; R4 = argc; R5 = argv ADDV $-24, R3 @@ -107,12 +107,16 @@ TEXT runtime·gosave(SB), NOSPLIT|NOFRAME, $0-8 // void gogo(Gobuf*) // restore state from Gobuf; longjmp -TEXT runtime·gogo(SB), NOSPLIT, $16-8 +TEXT runtime·gogo(SB), NOSPLIT|NOFRAME, $0-8 MOVV buf+0(FP), R4 - MOVV gobuf_g(R4), g // make sure g is not nil + MOVV gobuf_g(R4), R5 + MOVV 0(R5), R0 // make sure g != nil + JMP gogo<>(SB) + +TEXT gogo<>(SB), NOSPLIT|NOFRAME, $0 + MOVV R5, g JAL runtime·save_g(SB) - MOVV 0(g), R5 MOVV gobuf_sp(R4), R3 MOVV gobuf_lr(R4), R1 MOVV gobuf_ret(R4), R19