36 lines
656 B
ArmAsm
36 lines
656 B
ArmAsm
// Copyright (c) 2026 Petr Balvín <opensource@petrbalvin.org> (https://petrbalvin.org)
|
|||
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
||
|
|
|
||
|
|
// Large frame offsets and tail calls, byte-parity-checked against go tool asm.
|
||
|
|
|
||
|
|
#include "textflag.h"
|
||
|
|
|
||
|
|
TEXT ·bigframe(SB), $9000-32
|
||
|
|
MOVD x+0(FP), R5
|
||
|
|
MOVD y+8(FP), R6
|
||
|
|
MOVD R5, z+24(FP)
|
||
|
|
MOVB R5, b+16(FP)
|
||
|
|
MOVD R5, w+30000(FP)
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·unaligned(SB), $9000-16
|
||
|
|
MOVD x+4(FP), R5
|
||
|
|
MOVD R5, ret+8(FP)
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·b32k(SB), $32744-8
|
||
|
|
MOVD x+0(FP), R5
|
||
|
|
MOVD R5, ret+0(FP)
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·oddframe(SB), $8-8
|
||
|
|
MOVD x+0(FP), R5
|
||
|
|
MOVD R5, ret+0(FP)
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·tail(SB), $0-0
|
||
|
|
JMP ·other(SB)
|
||
|
|
|
||
|
|
TEXT ·other(SB), NOSPLIT, $0
|
||
|
|
RET
|