]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: add missing {TOPFRAME,NOFRAME} flag for linux/loong64
authorGuoqi Chen <chenguoqi@loongson.cn>
Mon, 23 May 2022 00:58:51 +0000 (08:58 +0800)
committerGopher Robot <gobot@golang.org>
Tue, 24 May 2022 03:54:13 +0000 (03:54 +0000)
Co-authored-by: limeidan <limeidan@loongson.cn>
Change-Id: I0011a10f831e6c2b0da96265682212b0747f0e2a
Reviewed-on: https://go-review.googlesource.com/c/go/+/407774
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: WANG Xuerui <git@xen0n.name>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>

src/runtime/asm_loong64.s

index 38cc56c7ba7b8b099574347d8c2b1898e497a305..068e8e05b36865f4b71f9426e0197abe6a8fbf16 100644 (file)
@@ -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