// Copyright (c) 2026 Petr Balvín (https://petrbalvin.org) // SPDX-License-Identifier: BSD-3-Clause // Large frames across every immediate band of the prologue SUB and the RET // epilogue, byte-parity-checked against go tool asm: // // $5000 autosize 5024 one 16-bit chunk, materialised into REGTMP // $65664 autosize 65680 split into two imm12 instructions // $70000 autosize 70016 split into two imm12 instructions // $65520 autosize 65536 one shifted imm12 in the prologue, a logical // immediate (ORR) in the non-leaf epilogue // $16777232 autosize 16777248 wider than 24 bits, MOVZ/MOVK into REGTMP #include "textflag.h" TEXT ·leaf5000(SB), NOSPLIT, $5000-0 MOVD R0, R1 MOVD R1, R2 RET TEXT ·leaf65664(SB), NOSPLIT, $65664-0 MOVD R0, R1 MOVD R1, R2 RET TEXT ·leaf70000(SB), NOSPLIT, $70000-0 MOVD R0, R1 MOVD R1, R2 RET TEXT ·leaf65520(SB), NOSPLIT, $65520-0 MOVD R0, R1 MOVD R1, R2 MOVD R2, R3 MOVD R3, R4 RET TEXT ·nl5000(SB), NOSPLIT, $5000-0 MOVD R0, R1 MOVD R1, R2 CALL ·other(SB) RET TEXT ·nl65664(SB), NOSPLIT, $65664-0 MOVD R0, R1 CALL ·other(SB) RET TEXT ·nl70000(SB), NOSPLIT, $70000-0 MOVD R0, R1 CALL ·other(SB) RET TEXT ·nl65520(SB), NOSPLIT, $65520-0 MOVD R0, R1 MOVD R1, R2 MOVD R2, R3 CALL ·other(SB) RET TEXT ·nlhuge(SB), NOSPLIT, $16777232-0 CALL ·other(SB) RET TEXT ·other(SB), NOSPLIT, $0-0 MOVD R0, R1 MOVD R1, R2 MOVD R2, R3 RET