If GCC 4.1 or newer (or clang), use __LDBL__*__ builtins otherwise if C99

use hex floating point.
This commit is contained in:
matt 2011-07-07 17:29:31 +00:00
parent c367154631
commit 2be346e54d

View File

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