feat(riscv64,loong64): operand tail, float DATA and honest port classification

Assisted-by: GLM 5.3 Flash
This commit is contained in:
2026-09-21 00:44:47 +02:00
parent ec1c521187
commit 1456907000
10 changed files with 573 additions and 57 deletions
+27
View File
@@ -0,0 +1,27 @@
// Copyright (c) 2026 Petr Balvín <opensource@petrbalvin.org> (https://petrbalvin.org)
// SPDX-License-Identifier: BSD-3-Clause
// Differential kernel for the loong64 DATA value forms the runtime's exp and
// asm files use: floating-point initialisers stored as IEEE-754 bits and
// string initialisers zero-padded within their declared width.
#include "textflag.h"
TEXT ·floatbits(SB), NOSPLIT, $0-8
MOVV $floats<>(SB), R12
MOVD 8(R12), F0
MOVD F0, ret+0(FP)
RET
TEXT ·stringhead(SB), NOSPLIT, $0-8
MOVV $msg<>(SB), R12
MOVV (R12), R13
MOVV R13, ret+0(FP)
RET
GLOBL floats<>(SB), RODATA, $16
DATA floats<>+0(SB)/8, $0.0
DATA floats<>+8(SB)/8, $0.5
GLOBL msg<>(SB), RODATA, $20
DATA msg<>+0(SB)/20, $"call frame too large"