fix(asm): close the oracle parity gaps in frame addressing and calls

This commit is contained in:
2026-09-14 23:25:14 +02:00
parent 70218e84ba
commit 40476546df
18 changed files with 456 additions and 60 deletions
+35
View File
@@ -0,0 +1,35 @@
// 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