diff options
author | Bruno Haible <bruno@clisp.org> | 2023-10-24 08:37:16 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2023-12-19 15:12:38 -0300 |
commit | 787282dede7f134fdb22155cee0c35172e3e28f3 (patch) | |
tree | ef7d2a333bd0cf9118f1afd3183186db07ed0513 /sysdeps/powerpc/ffs.c | |
parent | 47a9eeb9ba72fd30766bdf4faa7d46b8ca33a7fd (diff) | |
download | glibc-787282dede7f134fdb22155cee0c35172e3e28f3.tar.gz glibc-787282dede7f134fdb22155cee0c35172e3e28f3.tar.xz glibc-787282dede7f134fdb22155cee0c35172e3e28f3.zip |
x86: Do not raises floating-point exception traps on fesetexceptflag (BZ 30990)
According to ISO C23 (7.6.4.4), fesetexcept is supposed to set floating-point exception flags without raising a trap (unlike feraiseexcept, which is supposed to raise a trap if feenableexcept was called with the appropriate argument). The flags can be set in the 387 unit or in the SSE unit. When we need to clear a flag, we need to do so in both units, due to the way fetestexcept is implemented. When we need to set a flag, it is sufficient to do it in the SSE unit, because that is guaranteed to not trap. However, on i386 CPUs that have only a 387 unit, set the flags in the 387, as long as this cannot trap. Co-authored-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'sysdeps/powerpc/ffs.c')
0 files changed, 0 insertions, 0 deletions