R0 needs to be cleared at startup as it may not always be cleared
by the kernel on newer kernels.
Fixes #54547
Change-Id: Id7055699aaa8d8b193b7e3e784f075ce29ac3f1d
Reviewed-on: https://go-review.googlesource.com/c/go/+/424927
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Paul Murphy <murp@ibm.com>
        // There is no TLS base pointer.
        //
        // TODO(austin): Support ABI v1 dynamic linking entry point
+       XOR     R0, R0 // Note, newer kernels may not always set R0 to 0.
        MOVD    $runtime·rt0_go(SB), R12
        MOVD    R12, CTR
        MOVBZ   runtime·iscgo(SB), R5