]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: remove ret field from gobuf
authorKeith Randall <khr@golang.org>
Tue, 25 Feb 2025 22:21:42 +0000 (14:21 -0800)
committerKeith Randall <khr@golang.org>
Wed, 26 Feb 2025 22:48:55 +0000 (14:48 -0800)
It's not used for anything.

Change-Id: I031b3cdfe52b6b1cff4b3cb6713ffe588084542f
Reviewed-on: https://go-review.googlesource.com/c/go/+/652276
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: David Chase <drchase@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

15 files changed:
src/cmd/internal/obj/arm/obj5.go
src/runtime/asm_386.s
src/runtime/asm_amd64.s
src/runtime/asm_arm.s
src/runtime/asm_arm64.s
src/runtime/asm_loong64.s
src/runtime/asm_mips64x.s
src/runtime/asm_mipsx.s
src/runtime/asm_ppc64x.s
src/runtime/asm_riscv64.s
src/runtime/asm_s390x.s
src/runtime/asm_wasm.s
src/runtime/proc.go
src/runtime/runtime2.go
src/runtime/sizeof_test.go

index def4f526ad9ef53770ab84650ac682c660e67bb6..2f04fd73166a03f8be38a7aa38d298aebecf81b5 100644 (file)
@@ -551,7 +551,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
                        p.From.Reg = q1.From.Reg
                        p.To.Type = obj.TYPE_MEM
                        p.To.Reg = REGTMP
-                       p.To.Offset = 8 * 4 // offset of m.divmod
+                       p.To.Offset = 7 * 4 // offset of m.divmod
 
                        /* MOV b, R8 */
                        p = obj.Appendp(p, newprog)
index b4818723e5c735f9805717a85544a82e6f90b9bd..62ab83985fa005ca875dfb2de0b0cd0749629bbf 100644 (file)
@@ -291,10 +291,8 @@ TEXT gogo<>(SB), NOSPLIT, $0
        get_tls(CX)
        MOVL    DX, g(CX)
        MOVL    gobuf_sp(BX), SP        // restore SP
-       MOVL    gobuf_ret(BX), AX
        MOVL    gobuf_ctxt(BX), DX
        MOVL    $0, gobuf_sp(BX)        // clear to help garbage collector
-       MOVL    $0, gobuf_ret(BX)
        MOVL    $0, gobuf_ctxt(BX)
        MOVL    gobuf_pc(BX), BX
        JMP     BX
@@ -625,7 +623,6 @@ TEXT gosave_systemstack_switch<>(SB),NOSPLIT,$0
        MOVL    AX, (g_sched+gobuf_sp)(BX)
        MOVL    $runtime·systemstack_switch(SB), AX
        MOVL    AX, (g_sched+gobuf_pc)(BX)
-       MOVL    $0, (g_sched+gobuf_ret)(BX)
        // Assert ctxt is zero. See func save.
        MOVL    (g_sched+gobuf_ctxt)(BX), AX
        TESTL   AX, AX
index 4b630b5eccb503903afa9373e1b682d6d713ce01..2fa953f39f08403a6f81d1da7fac76828070005f 100644 (file)
@@ -412,11 +412,9 @@ TEXT gogo<>(SB), NOSPLIT, $0
        MOVQ    DX, g(CX)
        MOVQ    DX, R14         // set the g register
        MOVQ    gobuf_sp(BX), SP        // restore SP
-       MOVQ    gobuf_ret(BX), AX
        MOVQ    gobuf_ctxt(BX), DX
        MOVQ    gobuf_bp(BX), BP
        MOVQ    $0, gobuf_sp(BX)        // clear to help garbage collector
-       MOVQ    $0, gobuf_ret(BX)
        MOVQ    $0, gobuf_ctxt(BX)
        MOVQ    $0, gobuf_bp(BX)
        MOVQ    gobuf_pc(BX), BX
@@ -828,7 +826,6 @@ TEXT gosave_systemstack_switch<>(SB),NOSPLIT|NOFRAME,$0
        MOVQ    R9, (g_sched+gobuf_pc)(R14)
        LEAQ    8(SP), R9
        MOVQ    R9, (g_sched+gobuf_sp)(R14)
-       MOVQ    $0, (g_sched+gobuf_ret)(R14)
        MOVQ    BP, (g_sched+gobuf_bp)(R14)
        // Assert ctxt is zero. See func save.
        MOVQ    (g_sched+gobuf_ctxt)(R14), R9
index 7c39b4a3e232feb68c20fbd2b18da83e26049b3b..ca9f0ced0382db1200acdf9681f0be4ccef28b72 100644 (file)
@@ -226,11 +226,9 @@ TEXT gogo<>(SB),NOSPLIT|NOFRAME,$0
        BL      setg<>(SB)
        MOVW    gobuf_sp(R1), R13       // restore SP==R13
        MOVW    gobuf_lr(R1), LR
-       MOVW    gobuf_ret(R1), R0
        MOVW    gobuf_ctxt(R1), R7
        MOVW    $0, R11
        MOVW    R11, gobuf_sp(R1)       // clear to help garbage collector
-       MOVW    R11, gobuf_ret(R1)
        MOVW    R11, gobuf_lr(R1)
        MOVW    R11, gobuf_ctxt(R1)
        MOVW    gobuf_pc(R1), R11
@@ -550,7 +548,6 @@ TEXT gosave_systemstack_switch<>(SB),NOSPLIT|NOFRAME,$0
        MOVW    R13, (g_sched+gobuf_sp)(g)
        MOVW    $0, R11
        MOVW    R11, (g_sched+gobuf_lr)(g)
-       MOVW    R11, (g_sched+gobuf_ret)(g)
        // Assert ctxt is zero. See func save.
        MOVW    (g_sched+gobuf_ctxt)(g), R11
        TST     R11, R11
index 238eaf2789876968b4e652b8925bcf46d81c6179..6c447ac23c93a78a87a03b76f93fe247452b5102 100644 (file)
@@ -199,11 +199,9 @@ TEXT gogo<>(SB), NOSPLIT|NOFRAME, $0
        MOVD    R0, RSP
        MOVD    gobuf_bp(R5), R29
        MOVD    gobuf_lr(R5), LR
-       MOVD    gobuf_ret(R5), R0
        MOVD    gobuf_ctxt(R5), R26
        MOVD    $0, gobuf_sp(R5)
        MOVD    $0, gobuf_bp(R5)
-       MOVD    $0, gobuf_ret(R5)
        MOVD    $0, gobuf_lr(R5)
        MOVD    $0, gobuf_ctxt(R5)
        CMP     ZR, ZR // set condition codes for == test, needed by stack split
@@ -985,7 +983,6 @@ TEXT gosave_systemstack_switch<>(SB),NOSPLIT|NOFRAME,$0
        MOVD    R0, (g_sched+gobuf_sp)(g)
        MOVD    R29, (g_sched+gobuf_bp)(g)
        MOVD    $0, (g_sched+gobuf_lr)(g)
-       MOVD    $0, (g_sched+gobuf_ret)(g)
        // Assert ctxt is zero. See func save.
        MOVD    (g_sched+gobuf_ctxt)(g), R0
        CBZ     R0, 2(PC)
index de64f8acbcdba9a8973281f0a211db256b44be22..d5dc61ff683d147539a3217c5ccadcfa76a7a86c 100644 (file)
@@ -113,10 +113,8 @@ TEXT gogo<>(SB), NOSPLIT|NOFRAME, $0
 
        MOVV    gobuf_sp(R4), R3
        MOVV    gobuf_lr(R4), R1
-       MOVV    gobuf_ret(R4), R19
        MOVV    gobuf_ctxt(R4), REGCTXT
        MOVV    R0, gobuf_sp(R4)
-       MOVV    R0, gobuf_ret(R4)
        MOVV    R0, gobuf_lr(R4)
        MOVV    R0, gobuf_ctxt(R4)
        MOVV    gobuf_pc(R4), R6
@@ -468,7 +466,6 @@ TEXT gosave_systemstack_switch<>(SB),NOSPLIT|NOFRAME,$0
        MOVV    R19, (g_sched+gobuf_pc)(g)
        MOVV    R3, (g_sched+gobuf_sp)(g)
        MOVV    R0, (g_sched+gobuf_lr)(g)
-       MOVV    R0, (g_sched+gobuf_ret)(g)
        // Assert ctxt is zero. See func save.
        MOVV    (g_sched+gobuf_ctxt)(g), R19
        BEQ     R19, 2(PC)
index cfb9950e17108a2febdbc5e11a5b07817e682823..9509d5ba77aeb1e047b7758ceb311a9ca6c1c446 100644 (file)
@@ -107,10 +107,8 @@ TEXT gogo<>(SB), NOSPLIT|NOFRAME, $0
        MOVV    0(g), R2
        MOVV    gobuf_sp(R3), R29
        MOVV    gobuf_lr(R3), R31
-       MOVV    gobuf_ret(R3), R1
        MOVV    gobuf_ctxt(R3), REGCTXT
        MOVV    R0, gobuf_sp(R3)
-       MOVV    R0, gobuf_ret(R3)
        MOVV    R0, gobuf_lr(R3)
        MOVV    R0, gobuf_ctxt(R3)
        MOVV    gobuf_pc(R3), R4
@@ -424,7 +422,6 @@ TEXT gosave_systemstack_switch<>(SB),NOSPLIT|NOFRAME,$0
        MOVV    R1, (g_sched+gobuf_pc)(g)
        MOVV    R29, (g_sched+gobuf_sp)(g)
        MOVV    R0, (g_sched+gobuf_lr)(g)
-       MOVV    R0, (g_sched+gobuf_ret)(g)
        // Assert ctxt is zero. See func save.
        MOVV    (g_sched+gobuf_ctxt)(g), R1
        BEQ     R1, 2(PC)
index 33afa2e5c5ad3ed34ee416d1f7a8341dbdad696e..7245e8ac494d1af30dfee8bdcc1474635ac431a6 100644 (file)
@@ -106,10 +106,8 @@ TEXT gogo<>(SB),NOSPLIT|NOFRAME,$0
        JAL     runtime·save_g(SB)
        MOVW    gobuf_sp(R3), R29
        MOVW    gobuf_lr(R3), R31
-       MOVW    gobuf_ret(R3), R1
        MOVW    gobuf_ctxt(R3), REGCTXT
        MOVW    R0, gobuf_sp(R3)
-       MOVW    R0, gobuf_ret(R3)
        MOVW    R0, gobuf_lr(R3)
        MOVW    R0, gobuf_ctxt(R3)
        MOVW    gobuf_pc(R3), R4
@@ -422,7 +420,6 @@ TEXT gosave_systemstack_switch<>(SB),NOSPLIT|NOFRAME,$0
        MOVW    R1, (g_sched+gobuf_pc)(g)
        MOVW    R29, (g_sched+gobuf_sp)(g)
        MOVW    R0, (g_sched+gobuf_lr)(g)
-       MOVW    R0, (g_sched+gobuf_ret)(g)
        // Assert ctxt is zero. See func save.
        MOVW    (g_sched+gobuf_ctxt)(g), R1
        BEQ     R1, 2(PC)
index 268e0c01c12b9d6377ba5156e7e1afc40b7272f1..96c87afac8c92ff5584f10381cb5a5ce11f8d436 100644 (file)
@@ -154,10 +154,8 @@ TEXT gogo<>(SB), NOSPLIT|NOFRAME, $0
        MOVD    24(R1), R2      // restore R2
 #endif
        MOVD    R31, LR
-       MOVD    gobuf_ret(R5), R3
        MOVD    gobuf_ctxt(R5), R11
        MOVD    R0, gobuf_sp(R5)
-       MOVD    R0, gobuf_ret(R5)
        MOVD    R0, gobuf_lr(R5)
        MOVD    R0, gobuf_ctxt(R5)
        CMP     R0, R0 // set condition codes for == test, needed by stack split
@@ -561,7 +559,6 @@ TEXT gosave_systemstack_switch<>(SB),NOSPLIT|NOFRAME,$0
        MOVD    R31, (g_sched+gobuf_pc)(g)
        MOVD    R1, (g_sched+gobuf_sp)(g)
        MOVD    R0, (g_sched+gobuf_lr)(g)
-       MOVD    R0, (g_sched+gobuf_ret)(g)
        // Assert ctxt is zero. See func save.
        MOVD    (g_sched+gobuf_ctxt)(g), R31
        CMP     R31, $0
index 20c9fdf7ff0be795b8c2c501807b424404dccac5..4031cdde9ee6b5390d23965a59b80566ecf95841 100644 (file)
@@ -262,10 +262,8 @@ TEXT gogo<>(SB), NOSPLIT|NOFRAME, $0
 
        MOV     gobuf_sp(T0), X2
        MOV     gobuf_lr(T0), RA
-       MOV     gobuf_ret(T0), A0
        MOV     gobuf_ctxt(T0), CTXT
        MOV     ZERO, gobuf_sp(T0)
-       MOV     ZERO, gobuf_ret(T0)
        MOV     ZERO, gobuf_lr(T0)
        MOV     ZERO, gobuf_ctxt(T0)
        MOV     gobuf_pc(T0), T0
@@ -315,7 +313,6 @@ TEXT gosave_systemstack_switch<>(SB),NOSPLIT|NOFRAME,$0
        MOV     X31, (g_sched+gobuf_pc)(g)
        MOV     X2, (g_sched+gobuf_sp)(g)
        MOV     ZERO, (g_sched+gobuf_lr)(g)
-       MOV     ZERO, (g_sched+gobuf_ret)(g)
        // Assert ctxt is zero. See func save.
        MOV     (g_sched+gobuf_ctxt)(g), X31
        BEQ     ZERO, X31, 2(PC)
index 6758175fc2091eb26d2eb5ba5e1c26900e7d0a08..7fc88009e88a85c39fe9a4e055a3a84ae4825405 100644 (file)
@@ -193,10 +193,8 @@ TEXT gogo<>(SB), NOSPLIT|NOFRAME, $0
        MOVD    0(g), R4
        MOVD    gobuf_sp(R5), R15
        MOVD    gobuf_lr(R5), LR
-       MOVD    gobuf_ret(R5), R3
        MOVD    gobuf_ctxt(R5), R12
        MOVD    $0, gobuf_sp(R5)
-       MOVD    $0, gobuf_ret(R5)
        MOVD    $0, gobuf_lr(R5)
        MOVD    $0, gobuf_ctxt(R5)
        CMP     R0, R0 // set condition codes for == test, needed by stack split
@@ -522,7 +520,6 @@ TEXT gosave_systemstack_switch<>(SB),NOSPLIT|NOFRAME,$0
        MOVD    R1, (g_sched+gobuf_pc)(g)
        MOVD    R15, (g_sched+gobuf_sp)(g)
        MOVD    $0, (g_sched+gobuf_lr)(g)
-       MOVD    $0, (g_sched+gobuf_ret)(g)
        // Assert ctxt is zero. See func save.
        MOVD    (g_sched+gobuf_ctxt)(g), R1
        CMPBEQ  R1, $0, 2(PC)
index 247368d127d013313fef4fa2b7176111d7a12bc5..751bf0aec727d6d3ef3dd12c7ff0163e78d08c80 100644 (file)
@@ -51,11 +51,9 @@ TEXT runtime·gogo(SB), NOSPLIT, $0-8
        I64Load gobuf_pc(R0)
        I64Store $0
 
-       MOVD gobuf_ret(R0), RET0
        MOVD gobuf_ctxt(R0), CTXT
        // clear to help garbage collector
        MOVD $0, gobuf_sp(R0)
-       MOVD $0, gobuf_ret(R0)
        MOVD $0, gobuf_ctxt(R0)
 
        I32Const $1
index 98e135ff2ad108630c71db77fcb6119238fbb700..c467f4c49de9ef1a3e111d44499a16446577ebe6 100644 (file)
@@ -4399,7 +4399,6 @@ func save(pc, sp, bp uintptr) {
        gp.sched.pc = pc
        gp.sched.sp = sp
        gp.sched.lr = 0
-       gp.sched.ret = 0
        gp.sched.bp = bp
        // We need to ensure ctxt is zero, but can't have a write
        // barrier here. However, it should always already be zero.
index 7280643f4835665c0c7ced98484ed32a8170779d..b8579d9599b6d73b7895f490aa41afe9a679732f 100644 (file)
@@ -312,7 +312,6 @@ type gobuf struct {
        pc   uintptr
        g    guintptr
        ctxt unsafe.Pointer
-       ret  uintptr
        lr   uintptr
        bp   uintptr // for framepointer-enabled architectures
 }
@@ -528,8 +527,7 @@ const (
 type m struct {
        g0      *g     // goroutine with scheduling stack
        morebuf gobuf  // gobuf arg to morestack
-       divmod  uint32 // div/mod denominator for arm - known to liblink
-       _       uint32 // align next field to 8 bytes
+       divmod  uint32 // div/mod denominator for arm - known to liblink (cmd/internal/obj/arm/obj5.go)
 
        // Fields not known to debuggers.
        procid          uint64            // for debuggers, but offset not hard-coded
index a5dc8aed3443bc0ae1066004f6522e4a037b11af..c1b201caf1707c31856f6371f90a4a62b1e67a64 100644 (file)
@@ -20,7 +20,7 @@ func TestSizeof(t *testing.T) {
                _32bit uintptr // size on 32bit platforms
                _64bit uintptr // size on 64bit platforms
        }{
-               {runtime.G{}, 280, 440},   // g, but exported for testing
+               {runtime.G{}, 276, 432},   // g, but exported for testing
                {runtime.Sudog{}, 56, 88}, // sudog, but exported for testing
        }