aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/or1k
diff options
context:
space:
mode:
authorStafford Horne <shorne@gmail.com>2024-03-19 20:53:37 +0000
committerStafford Horne <shorne@gmail.com>2024-03-22 15:43:34 +0000
commitdf7e29e2a4aadc7e19669eaf953cee1bcf8b156f (patch)
tree3b0b645737f4343ac9ed0a29f561297b15624552 /sysdeps/or1k
parent2e982a3937f20156a72a59560061dda006d3480b (diff)
downloadglibc-df7e29e2a4aadc7e19669eaf953cee1bcf8b156f.zip
glibc-df7e29e2a4aadc7e19669eaf953cee1bcf8b156f.tar.gz
glibc-df7e29e2a4aadc7e19669eaf953cee1bcf8b156f.tar.bz2
or1k: Only define fpu rouding and exceptions with hard-float
This test failure: math/test-fenv If rounding mode and exception macros are defined then the fenv tests run and always fail. This patch adds an ifdef using the __or1k_hard_float__ macro provided by gcc to avoid defining these fenv macros when they cnnot be used. This is similar to what is done in csky. Note, I will post the or1k hard-float support soon. So, I prefer to leave the hard-float bits here for now.
Diffstat (limited to 'sysdeps/or1k')
-rw-r--r--sysdeps/or1k/bits/fenv.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/sysdeps/or1k/bits/fenv.h b/sysdeps/or1k/bits/fenv.h
index 587039c..0126780 100644
--- a/sysdeps/or1k/bits/fenv.h
+++ b/sysdeps/or1k/bits/fenv.h
@@ -21,6 +21,7 @@
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
#endif
+#ifdef __or1k_hard_float__
/* Define bits representing exceptions in the FPCSR status word. */
enum
{
@@ -51,6 +52,24 @@ enum
#define FE_UPWARD (0x2 << 1)
#define FE_DOWNWARD (0x3 << 1)
+#else
+
+/* In the soft-float case only rounding to nearest is supported, with
+ no exceptions. */
+
+enum
+ {
+ __FE_UNDEFINED = -1,
+
+ FE_TONEAREST =
+# define FE_TONEAREST 0x0
+ FE_TONEAREST
+ };
+
+# define FE_ALL_EXCEPT 0
+
+#endif /* __or1k_hard_float__ */
+
/* Type representing exception flags. */
typedef unsigned int fexcept_t;