Module Name:    src
Committed By:   martin
Date:           Thu Nov 21 14:14:13 UTC 2013

Modified Files:
        src/lib/libc/gen: fpclassifyl_ieee754.c isinfl_ieee754.c
            isnanl_ieee754.c

Log Message:
Make ext_fraclm and ext_frachm parts of the long double mantissa optional
in generic code


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libc/gen/fpclassifyl_ieee754.c
cvs rdiff -u -r1.4 -r1.5 src/lib/libc/gen/isinfl_ieee754.c
cvs rdiff -u -r1.6 -r1.7 src/lib/libc/gen/isnanl_ieee754.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/gen/fpclassifyl_ieee754.c
diff -u src/lib/libc/gen/fpclassifyl_ieee754.c:1.1 src/lib/libc/gen/fpclassifyl_ieee754.c:1.2
--- src/lib/libc/gen/fpclassifyl_ieee754.c:1.1	Mon Jan 17 23:53:03 2011
+++ src/lib/libc/gen/fpclassifyl_ieee754.c	Thu Nov 21 14:14:13 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: fpclassifyl_ieee754.c,v 1.1 2011/01/17 23:53:03 matt Exp $	*/
+/*	$NetBSD: fpclassifyl_ieee754.c,v 1.2 2013/11/21 14:14:13 martin Exp $	*/
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: fpclassifyl_ieee754.c,v 1.1 2011/01/17 23:53:03 matt Exp $");
+__RCSID("$NetBSD: fpclassifyl_ieee754.c,v 1.2 2013/11/21 14:14:13 martin Exp $");
 #endif
 
 #include <machine/ieee.h>
@@ -50,14 +50,26 @@ __fpclassifyl(long double x)
 	u.extu_ld = x;
 
 	if (u.extu_ext.ext_exp == 0) {
-		if (u.extu_ext.ext_frach == 0 && u.extu_ext.ext_frachm == 0
-		    && u.extu_ext.ext_fraclm == 0 && u.extu_ext.ext_fracl == 0)
+		if (u.extu_ext.ext_frach == 0
+#if EXT_FRACHMBITS
+		    && u.extu_ext.ext_frachm == 0
+#endif
+#if EXT_FRACLMBITS
+		    && u.extu_ext.ext_fraclm == 0
+#endif
+		    && u.extu_ext.ext_fracl == 0)
 			return FP_ZERO;
 		else
 			return FP_SUBNORMAL;
 	} else if (u.extu_ext.ext_exp == EXT_EXP_INFNAN) {
-		if (u.extu_ext.ext_frach == 0 && u.extu_ext.ext_frachm == 0
-		    && u.extu_ext.ext_fraclm == 0 && u.extu_ext.ext_fracl == 0)
+		if (u.extu_ext.ext_frach == 0
+#f EXT_FRACHMBITS
+		    && u.extu_ext.ext_frachm == 0
+#endif
+#if EXT_FRACLMBITS
+		    && u.extu_ext.ext_fraclm == 0
+#endif
+		    && u.extu_ext.ext_fracl == 0)
 			return FP_INFINITE;
 		else
 			return FP_NAN;

Index: src/lib/libc/gen/isinfl_ieee754.c
diff -u src/lib/libc/gen/isinfl_ieee754.c:1.4 src/lib/libc/gen/isinfl_ieee754.c:1.5
--- src/lib/libc/gen/isinfl_ieee754.c:1.4	Mon Jan 17 23:53:03 2011
+++ src/lib/libc/gen/isinfl_ieee754.c	Thu Nov 21 14:14:13 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: isinfl_ieee754.c,v 1.4 2011/01/17 23:53:03 matt Exp $	*/
+/*	$NetBSD: isinfl_ieee754.c,v 1.5 2013/11/21 14:14:13 martin Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -40,7 +40,7 @@
 #if 0
 static char sccsid[] = "@(#)isinf.c	8.1 (Berkeley) 6/4/93";
 #else
-__RCSID("$NetBSD: isinfl_ieee754.c,v 1.4 2011/01/17 23:53:03 matt Exp $");
+__RCSID("$NetBSD: isinfl_ieee754.c,v 1.5 2013/11/21 14:14:13 martin Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -60,7 +60,13 @@ __isinfl(long double x)
 	u.extu_ld = x;
 
 	return u.extu_ext.ext_exp == EXT_EXP_INFNAN
-	    && u.extu_ext.ext_frach == 0 && u.extu_ext.ext_frachm == 0
-	    && u.extu_ext.ext_fraclm == 0 && u.extu_ext.ext_fracl == 0;
+	    && u.extu_ext.ext_frach == 0
+#if EXT_FRACHMBITS
+	    && u.extu_ext.ext_frachm == 0
+#endif
+#if EXT_FRACLMBITS
+	    && u.extu_ext.ext_fraclm == 0
+#endif
+	    && u.extu_ext.ext_fracl == 0;
 }
 #endif /* __HAVE_LONG_DOUBLE */

Index: src/lib/libc/gen/isnanl_ieee754.c
diff -u src/lib/libc/gen/isnanl_ieee754.c:1.6 src/lib/libc/gen/isnanl_ieee754.c:1.7
--- src/lib/libc/gen/isnanl_ieee754.c:1.6	Mon Jan 17 23:53:03 2011
+++ src/lib/libc/gen/isnanl_ieee754.c	Thu Nov 21 14:14:13 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: isnanl_ieee754.c,v 1.6 2011/01/17 23:53:03 matt Exp $	*/
+/*	$NetBSD: isnanl_ieee754.c,v 1.7 2013/11/21 14:14:13 martin Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -40,7 +40,7 @@
 #if 0
 static char sccsid[] = "@(#)isinf.c	8.1 (Berkeley) 6/4/93";
 #else
-__RCSID("$NetBSD: isnanl_ieee754.c,v 1.6 2011/01/17 23:53:03 matt Exp $");
+__RCSID("$NetBSD: isnanl_ieee754.c,v 1.7 2013/11/21 14:14:13 martin Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -60,7 +60,13 @@ __isnanl(long double x)
 	u.extu_ld = x;
 
 	return u.extu_ext.ext_exp == EXT_EXP_INFNAN 
-	    && (u.extu_ext.ext_frach != 0 || u.extu_ext.ext_frachm != 0
-	        || u.extu_ext.ext_fraclm != 0 || u.extu_ext.ext_fracl != 0);
+	    && (u.extu_ext.ext_frach != 0
+#if EXT_FRACHMBITS
+	     || u.extu_ext.ext_frachm != 0
+#endif
+#if EXT_FRACLMBITS
+	     || u.extu_ext.ext_fraclm != 0
+#endif
+	     || u.extu_ext.ext_fracl != 0);
 }
 #endif /* __HAVE_LONG_DOUBLE */

Reply via email to