]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: jump instead of branch in netbsd/arm64 entry point
authorqmuntal <quimmuntal@gmail.com>
Mon, 29 Sep 2025 12:14:28 +0000 (14:14 +0200)
committerQuim Muntal <quimmuntal@gmail.com>
Mon, 29 Sep 2025 14:16:14 +0000 (07:16 -0700)
CL 706175 removed the NOFRAME directive from _rt0_arm64_netbsd but
did not change the BL instruction to a JMP instruction. This causes the
frame pointer to be stored on the stack, this making direct load from
RSP to be off by 8 bytes.

Cq-Include-Trybots: luci.golang.try:gotip-netbsd-arm64
Change-Id: I0c212fbaba74cfce508f961090dc6e66154c3054
Reviewed-on: https://go-review.googlesource.com/c/go/+/707675
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/runtime/rt0_netbsd_arm64.s

index 07fb0a1240aec51dbe464a1aa8bdd6af930a873c..80802209b78f1221c98d1fcccfdc28de1bd93c57 100644 (file)
@@ -7,7 +7,7 @@
 TEXT _rt0_arm64_netbsd(SB),NOSPLIT,$0
        MOVD    0(RSP), R0      // argc
        ADD     $8, RSP, R1     // argv
-       BL      main(SB)
+       JMP     main(SB)
 
 // When building with -buildmode=c-shared, this symbol is called when the shared
 // library is loaded.