57int __softfloat_float_exception_flags;
58int __softfloat_float_exception_mask;
59int __softfloat_float_rounding_mode;
62__fenv_static
inline int
63feclearexcept(
int excepts)
66 __softfloat_float_exception_flags &= ~excepts;
70__fenv_static
inline int
71fegetexceptflag(fexcept_t *flagp,
int excepts)
74 *flagp = __softfloat_float_exception_flags & excepts;
78__fenv_static
inline int
79fesetexceptflag(
const fexcept_t *flagp,
int excepts)
82 __softfloat_float_exception_flags &= ~excepts;
83 __softfloat_float_exception_flags |= *flagp & excepts;
87__fenv_static
inline int
88feraiseexcept(
int excepts)
95__fenv_static
inline int
96fetestexcept(
int excepts)
99 return (__softfloat_float_exception_flags & excepts);
102__fenv_static
inline int
106 return (__softfloat_float_rounding_mode);
109__fenv_static
inline int
110fesetround(
int rounding_mode)
113 __softfloat_float_rounding_mode = rounding_mode;
117__fenv_static
inline int
118fegetenv(fenv_t *envp)
121 __set_env(*envp, __softfloat_float_exception_flags,
122 __softfloat_float_exception_mask, __softfloat_float_rounding_mode);
126__fenv_static
inline int
127feholdexcept(fenv_t *envp)
132 __softfloat_float_exception_flags = 0;
133 __softfloat_float_exception_mask = 0;
137__fenv_static
inline int
138fesetenv(
const fenv_t *envp)
141 __softfloat_float_exception_flags = __env_flags(*envp);
142 __softfloat_float_exception_mask = __env_mask(*envp);
143 __softfloat_float_rounding_mode = __env_round(*envp);
147__fenv_static
inline int
148feupdateenv(
const fenv_t *envp)
150 int __oflags = __softfloat_float_exception_flags;
153 feraiseexcept(__oflags);
161__fenv_static
inline int
162feenableexcept(
int __mask)
164 int __omask = __softfloat_float_exception_mask;
166 __softfloat_float_exception_mask |= __mask;
170__fenv_static
inline int
171fedisableexcept(
int __mask)
173 int __omask = __softfloat_float_exception_mask;
175 __softfloat_float_exception_mask &= ~__mask;
179__fenv_static
inline int
183 return (__softfloat_float_exception_mask);