// Copyright (c) 2026 Petr Balvín (https://petrbalvin.org) // SPDX-License-Identifier: BSD-3-Clause #include "textflag.h" // func casLoop(ptr *int64, old, new int64) bool TEXT ·casLoop(SB), NOSPLIT, $0-32 cas_retry: MOV a+0(FP), X10 LRD (X10), X11 MOV b+8(FP), X12 BNE X11, X12, cas_fail MOV c+16(FP), X13 SCD X13, (X10), X14 BNE X14, X0, cas_retry ADDI X0, $1, X15 MOV X15, ret+24(FP) RET cas_fail: MOV X0, ret+24(FP) RET // func intToFloat(x int64) float64 TEXT ·intToFloat(SB), NOSPLIT, $0-16 MOV a+0(FP), X10 FCVTDL X10, F10 FSD F10, ret+8(FP) RET // func compare(a, b float64) bool TEXT ·compare(SB), NOSPLIT, $0-24 FLD a+0(FP), F10 FLD b+8(FP), F11 FLTD F10, F11, X10 MOV X10, ret+16(FP) RET