aboutsummaryrefslogtreecommitdiff
path: root/soft-fp/soft-fp.h
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-10-12 12:20:12 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-10-12 12:20:12 +0000
commit8edc4a11cfbfd65a86696264f20e2d6d22edff54 (patch)
treed3bad864b92235578e55cca6e01a04b38cfe90dc /soft-fp/soft-fp.h
parent8399acaf7c5cb2252117ad1d65e468f688b84fc0 (diff)
downloadglibc-8edc4a11cfbfd65a86696264f20e2d6d22edff54.zip
glibc-8edc4a11cfbfd65a86696264f20e2d6d22edff54.tar.gz
glibc-8edc4a11cfbfd65a86696264f20e2d6d22edff54.tar.bz2
soft-fp: add macro FP_NO_EXCEPTIONS.
Diffstat (limited to 'soft-fp/soft-fp.h')
-rw-r--r--soft-fp/soft-fp.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/soft-fp/soft-fp.h b/soft-fp/soft-fp.h
index 8a22a11..d6c4b68 100644
--- a/soft-fp/soft-fp.h
+++ b/soft-fp/soft-fp.h
@@ -142,6 +142,30 @@
#define FP_TRAPPING_EXCEPTIONS 0
#endif
+/* A file using soft-fp may define FP_NO_EXCEPTIONS before including
+ soft-fp.h to indicate that, although a macro used there could raise
+ exceptions, or do rounding and potentially thereby raise
+ exceptions, for some arguments, for the particular arguments used
+ in that file no exceptions or rounding can occur. Such a file
+ should not itself use macros relating to handling exceptions and
+ rounding modes; this is only for indirect uses (in particular, in
+ _FP_FROM_INT and the macros it calls). */
+#ifdef FP_NO_EXCEPTIONS
+
+#undef FP_SET_EXCEPTION
+#define FP_SET_EXCEPTION(ex) do {} while (0)
+
+#undef FP_CUR_EXCEPTIONS
+#define FP_CUR_EXCEPTIONS 0
+
+#undef FP_TRAPPING_EXCEPTIONS
+#define FP_TRAPPING_EXCEPTIONS 0
+
+#undef FP_ROUNDMODE
+#define FP_ROUNDMODE FP_RND_ZERO
+
+#endif
+
#define _FP_ROUND_NEAREST(wc, X) \
do { \
if ((_FP_FRAC_LOW_##wc(X) & 15) != _FP_WORK_ROUND) \