| Server IP : 217.160.0.212 / Your IP : 216.73.216.141 Web Server : Apache System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64 User : sws1073854427 ( 1073854427) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/share/go/src/math/ |
Upload File : |
// Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. #include "textflag.h" #define PosInf 0x7FF0000000000000 #define NaN 0x7FF8000000000001 #define NegInf 0xFFF0000000000000 // func ·archMax(x, y float64) float64 TEXT ·archMax(SB),NOSPLIT,$0 // +Inf special cases MOVQ $PosInf, AX MOVQ x+0(FP), R8 CMPQ AX, R8 JEQ isPosInf MOVQ y+8(FP), R9 CMPQ AX, R9 JEQ isPosInf // NaN special cases MOVQ $~(1<<63), DX // bit mask MOVQ $PosInf, AX MOVQ R8, BX ANDQ DX, BX // x = |x| CMPQ AX, BX JLT isMaxNaN MOVQ R9, CX ANDQ DX, CX // y = |y| CMPQ AX, CX JLT isMaxNaN // ±0 special cases ORQ CX, BX JEQ isMaxZero MOVQ R8, X0 MOVQ R9, X1 MAXSD X1, X0 MOVSD X0, ret+16(FP) RET isMaxNaN: // return NaN MOVQ $NaN, AX isPosInf: // return +Inf MOVQ AX, ret+16(FP) RET isMaxZero: MOVQ $(1<<63), AX // -0.0 CMPQ AX, R8 JEQ +3(PC) MOVQ R8, ret+16(FP) // return 0 RET MOVQ R9, ret+16(FP) // return other 0 RET // func archMin(x, y float64) float64 TEXT ·archMin(SB),NOSPLIT,$0 // -Inf special cases MOVQ $NegInf, AX MOVQ x+0(FP), R8 CMPQ AX, R8 JEQ isNegInf MOVQ y+8(FP), R9 CMPQ AX, R9 JEQ isNegInf // NaN special cases MOVQ $~(1<<63), DX MOVQ $PosInf, AX MOVQ R8, BX ANDQ DX, BX // x = |x| CMPQ AX, BX JLT isMinNaN MOVQ R9, CX ANDQ DX, CX // y = |y| CMPQ AX, CX JLT isMinNaN // ±0 special cases ORQ CX, BX JEQ isMinZero MOVQ R8, X0 MOVQ R9, X1 MINSD X1, X0 MOVSD X0, ret+16(FP) RET isMinNaN: // return NaN MOVQ $NaN, AX isNegInf: // return -Inf MOVQ AX, ret+16(FP) RET isMinZero: MOVQ $(1<<63), AX // -0.0 CMPQ AX, R8 JEQ +3(PC) MOVQ R9, ret+16(FP) // return other 0 RET MOVQ R8, ret+16(FP) // return -0 RET