28 lines
740 B
ArmAsm
28 lines
740 B
ArmAsm
// 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"
|