diff options
author | Stafford Horne <shorne@gmail.com> | 2024-03-19 20:53:37 +0000 |
---|---|---|
committer | Stafford Horne <shorne@gmail.com> | 2024-03-22 15:43:34 +0000 |
commit | df7e29e2a4aadc7e19669eaf953cee1bcf8b156f (patch) | |
tree | 3b0b645737f4343ac9ed0a29f561297b15624552 /sysdeps/or1k/bits | |
parent | 2e982a3937f20156a72a59560061dda006d3480b (diff) | |
download | glibc-df7e29e2a4aadc7e19669eaf953cee1bcf8b156f.tar.gz glibc-df7e29e2a4aadc7e19669eaf953cee1bcf8b156f.tar.xz glibc-df7e29e2a4aadc7e19669eaf953cee1bcf8b156f.zip |
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/bits')
-rw-r--r-- | sysdeps/or1k/bits/fenv.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/sysdeps/or1k/bits/fenv.h b/sysdeps/or1k/bits/fenv.h index 587039ca03..01267805e6 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; |