// Copyright 2016 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 MOVD $PosInf, R0 MOVD x+0(FP), R1 CMP R0, R1 BEQ isPosInf MOVD y+8(FP), R2 CMP R0, R2 BEQ isPosInf // normal case FMOVD R1, F0 FMOVD R2, F1 FMAXD F0, F1, F0 FMOVD F0, ret+16(FP) RET isPosInf: // return +Inf MOVD R0, ret+16(FP) RET // func archMin(x, y float64) float64 TEXT ·archMin(SB),NOSPLIT,$0 // -Inf special cases MOVD $NegInf, R0 MOVD x+0(FP), R1 CMP R0, R1 BEQ isNegInf MOVD y+8(FP), R2 CMP R0, R2 BEQ isNegInf // normal case FMOVD R1, F0 FMOVD R2, F1 FMIND F0, F1, F0 FMOVD F0, ret+16(FP) RET isNegInf: // return -Inf MOVD R0, ret+16(FP) RET