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 */