Module Name: src
Committed By: matt
Date: Thu Jul 7 17:29:31 UTC 2011
Modified Files:
src/sys/arch/mips/include: float.h
Log Message:
If GCC 4.1 or newer (or clang), use __LDBL__*__ builtins otherwise if C99
use hex floating point.
To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/mips/include/float.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/mips/include/float.h
diff -u src/sys/arch/mips/include/float.h:1.14 src/sys/arch/mips/include/float.h:1.15
--- src/sys/arch/mips/include/float.h:1.14 Mon Jan 17 23:53:03 2011
+++ src/sys/arch/mips/include/float.h Thu Jul 7 17:29:31 2011
@@ -1,19 +1,41 @@
-/* $NetBSD: float.h,v 1.14 2011/01/17 23:53:03 matt Exp $ */
+/* $NetBSD: float.h,v 1.15 2011/07/07 17:29:31 matt Exp $ */
#ifndef _MIPS_FLOAT_H_
#define _MIPS_FLOAT_H_
#if defined(__mips_n32) || defined(__mips_n64)
+#if __GNUC_PREREQ__(4,1)
+
+#define LDBL_MANT_DIG __LDBL_MANT_DIG__
+#define LDBL_DIG __LDBL_DIG__
+#define LDBL_MIN_EXP __LDBL_MIN_EXP__
+#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
+#define LDBL_MAX_EXP __LDBL_MAX_EXP__
+#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
+#define LDBL_EPSILON __LDBL_EPSILON__
+#define LDBL_MIN __LDBL_MIN__
+#define LDBL_MAX __LDBL_MAX__
+
+#else
+
#define LDBL_MANT_DIG 113
-#define LDBL_EPSILON 1.925929944387235853055977942584927319E-34L
#define LDBL_DIG 33
#define LDBL_MIN_EXP (-16381)
-#define LDBL_MIN 3.3621031431120935062626778173217526026E-4932L
#define LDBL_MIN_10_EXP (-4931)
#define LDBL_MAX_EXP 16384
-#define LDBL_MAX 1.1897314953572317650857593266280070162E4932L
#define LDBL_MAX_10_EXP 4932
+#if __STDC_VERSION__ >= 199901L
+#define LDBL_EPSILON 0x1p-112L
+#define LDBL_MIN 0x1p-16382L
+#define LDBL_MAX 0x1.ffffffffffffffffffffffffffffp+16383L,
+#else
+#define LDBL_EPSILON 1.9259299443872358530559779425849273E-34L
+#define LDBL_MIN 3.3621031431120935062626778173217526E-4932L
+#define LDBL_MAX 1.1897314953572317650857593266280070E+4932L
+#endif
+
+#endif /* !__GNUC_PREREQ__(4,1) */
#endif /* __mips_n32 || __mips_n64 */
@@ -27,7 +49,11 @@
((_POSIX_C_SOURCE - 0) >= 200112L) || \
((_XOPEN_SOURCE - 0) >= 600) || \
defined(_ISOC99_SOURCE) || defined(_NETBSD_SOURCE)
+#if __GNUC_PREREQ__(4,1)
+#define DECIMAL_DIG __DECIMAL_DIG__
+#else
#define DECIMAL_DIG 36
+#endif
#endif /* !defined(_ANSI_SOURCE) && ... */
#endif /* __mips_n32 || __mips_n64 */