summaryrefslogtreecommitdiff
path: root/gcc/ginclude/float.h
diff options
context:
space:
mode:
authorjanis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-29 20:27:41 +0000
committerjanis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-29 20:27:41 +0000
commit2675096e48d1ef9f42f2c53228aa8056a0bfa353 (patch)
treed407fcd3b280b3bac4ca0e3402c1ca361e758548 /gcc/ginclude/float.h
parent339496f1c781c9119990172651d6b8fbe6258e68 (diff)
downloadgcc-2675096e48d1ef9f42f2c53228aa8056a0bfa353.tar.gz
gcc/
* Makefile.in (USER_H): Remove decfloat.h. * ginclude/decfloat.h: Delete, moving contents to ... * ginclude/float.h: Add support for decimal floating point, guarded by __STDC_WANT_DEC_FP__. gcc/testsuite/ * gcc.dg/dfp/dec-eval-method.c: Replace decfloat.h with float.h. * gcc.dg/dfp/decfloat-constants.c: Ditto. * gcc.dg/dfp/convert-dfp.c: Ditto. * gcc.dg/dfp/convert-int-saturate.c: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121308 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ginclude/float.h')
-rw-r--r--gcc/ginclude/float.h81
1 files changed, 80 insertions, 1 deletions
diff --git a/gcc/ginclude/float.h b/gcc/ginclude/float.h
index 3cdf7c82886..1e16e8884d7 100644
--- a/gcc/ginclude/float.h
+++ b/gcc/ginclude/float.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2007 Free Software Foundation, Inc.
This file is part of GCC.
@@ -159,4 +159,83 @@ Boston, MA 02110-1301, USA. */
#define DECIMAL_DIG __DECIMAL_DIG__
#endif /* C99 */
+
+#if __STDC_WANT_DEC_FP__ == 1
+/* Draft Technical Report 24732, extension for decimal floating-point
+ arithmetic: Characteristic of decimal floating types <float.h>. */
+
+/* Number of base-FLT_RADIX digits in the significand, p. */
+#undef DEC32_MANT_DIG
+#undef DEC64_MANT_DIG
+#undef DEC128_MANT_DIG
+#define DEC32_MANT_DIG __DEC32_MANT_DIG__
+#define DEC64_MANT_DIG __DEC64_MANT_DIG__
+#define DEC128_MANT_DIG __DEC128_MANT_DIG__
+
+/* Minimum exponent. */
+#undef DEC32_MIN_EXP
+#undef DEC64_MIN_EXP
+#undef DEC128_MIN_EXP
+#define DEC32_MIN_EXP __DEC32_MIN_EXP__
+#define DEC64_MIN_EXP __DEC64_MIN_EXP__
+#define DEC128_MIN_EXP __DEC128_MIN_EXP__
+
+/* Maximum exponent. */
+#undef DEC32_MAX_EXP
+#undef DEC64_MAX_EXP
+#undef DEC128_MAX_EXP
+#define DEC32_MAX_EXP __DEC32_MAX_EXP__
+#define DEC64_MAX_EXP __DEC64_MAX_EXP__
+#define DEC128_MAX_EXP __DEC128_MAX_EXP__
+
+/* Maximum representable finite decimal floating-point number
+ (there are 6, 15, and 33 9s after the decimal points respectively). */
+#undef DEC32_MAX
+#undef DEC64_MAX
+#undef DEC128_MAX
+#define DEC32_MAX __DEC32_MAX__
+#define DEC64_MAX __DEC64_MAX__
+#define DEC128_MAX __DEC128_MAX__
+
+/* The difference between 1 and the least value greater than 1 that is
+ representable in the given floating point type. */
+#undef DEC32_EPSILON
+#undef DEC64_EPSILON
+#undef DEC128_EPSILON
+#define DEC32_EPSILON __DEC32_EPSILON__
+#define DEC64_EPSILON __DEC64_EPSILON__
+#define DEC128_EPSILON __DEC128_EPSILON__
+
+/* Minimum normalized positive floating-point number. */
+#undef DEC32_MIN
+#undef DEC64_MIN
+#undef DEC128_MIN
+#define DEC32_MIN __DEC32_MIN__
+#define DEC64_MIN __DEC64_MIN__
+#define DEC128_MIN __DEC128_MIN__
+
+/* Minimum denormalized positive floating-point number. */
+#undef DEC32_DEN
+#undef DEC64_DEN
+#undef DEC128_DEN
+#define DEC32_DEN __DEC32_DEN__
+#define DEC64_DEN __DEC64_DEN__
+#define DEC128_DEN __DEC128_DEN__
+
+/* The floating-point expression evaluation method.
+ -1 indeterminate
+ 0 evaluate all operations and constants just to the range and
+ precision of the type
+ 1 evaluate operations and constants of type _Decimal32
+ and _Decimal64 to the range and precision of the _Decimal64
+ type, evaluate _Decimal128 operations and constants to the
+ range and precision of the _Decimal128 type;
+ 2 evaluate all operations and constants to the range and
+ precision of the _Decimal128 type. */
+
+#undef DECFLT_EVAL_METHOD
+#define DECFLT_EVAL_METHOD __DECFLT_EVAL_METHOD__
+
+#endif /* __STDC_WANT_DEC_FP__ == 1 */
+
#endif /* _FLOAT_H___ */