Sat Jun 27 04:29:27 2020 UTC ()
Return +INF without exception for +INF, as required by the architecture.
Also, avoid NULL dereference for fpu_dumpfpn() aka DUMPFPN().

Taken from (remaining part of) FreeBSD Revision 343078:
https://svnweb.freebsd.org/base?view=revision&revision=343078


(rin)
diff -r1.8 -r1.9 src/sys/arch/powerpc/fpu/fpu_sqrt.c

cvs diff -r1.8 -r1.9 src/sys/arch/powerpc/fpu/fpu_sqrt.c (expand / switch to context diff)
--- src/sys/arch/powerpc/fpu/fpu_sqrt.c 2020/06/27 04:17:51 1.8
+++ src/sys/arch/powerpc/fpu/fpu_sqrt.c 2020/06/27 04:29:27 1.9
@@ -1,4 +1,4 @@
-/*	$NetBSD: fpu_sqrt.c,v 1.8 2020/06/27 04:17:51 rin Exp $ */
+/*	$NetBSD: fpu_sqrt.c,v 1.9 2020/06/27 04:29:27 rin Exp $ */
 
 /*
  * Copyright (c) 1992, 1993
@@ -45,7 +45,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fpu_sqrt.c,v 1.8 2020/06/27 04:17:51 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fpu_sqrt.c,v 1.9 2020/06/27 04:29:27 rin Exp $");
 
 #include <sys/types.h>
 #if defined(DIAGNOSTIC)||defined(DEBUG)
@@ -230,9 +230,8 @@
 		return (fpu_newnan(fe));
 	}
 	if (ISINF(x)) {
-		fe->fe_cx |= FPSCR_VXSQRT;
-		DUMPFPN(FPE_REG, 0);
-		return (0);
+		DUMPFPN(FPE_REG, x);
+		return (x);
 	}
 
 	/*