| Server IP : 88.222.222.28 / Your IP : 216.73.217.88 Web Server : LiteSpeed System : Linux in-mum-web1677.main-hosting.eu 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64 User : u635632881 ( 635632881) PHP Version : 8.2.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/golang/1.22.0/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