[dev.typeparams] runtime: fix newproc arg size on ARM

At runtime startup it calls newproc from assembly code to start
the main goroutine. runtime.main has no arguments, so the arg
size should be 0, instead of 8.

While here, use clearer code sequence to open the frame.

Change-Id: I2bbb26a83521ea867897530b86a85b22a3c8be9d
Reviewed-on: https://go-review.googlesource.com/c/go/+/321957
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
Cherry Mui 2021-05-21 17:00:08 -04:00
parent b1a398cf0f
commit 21db1d193c

View file

@ -168,14 +168,14 @@ TEXT runtime·rt0_go(SB),NOSPLIT|NOFRAME|TOPFRAME,$0
BL runtime·schedinit(SB)
// create a new goroutine to start program
SUB $12, R13
MOVW $runtime·mainPC(SB), R0
MOVW.W R0, -4(R13)
MOVW $8, R0
MOVW.W R0, -4(R13)
MOVW R0, 8(R13) // arg 2: fn
MOVW $0, R0
MOVW.W R0, -4(R13) // push $0 as guard
MOVW R0, 4(R13) // arg 1: siz
MOVW R0, 0(R13) // dummy LR
BL runtime·newproc(SB)
MOVW $12(R13), R13 // pop args and LR
ADD $12, R13 // pop args and LR
// start this M
BL runtime·mstart(SB)