From bf4181878780be9b53e37a3b0fbabc40cdd07649 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Fri, 3 Aug 2018 13:43:31 -0400 Subject: [PATCH] RISC-V: Fix rounding save/restore bug. * sysdeps/riscv/rvf/math_private.h (libc_feholdexcept_setround_riscv): Fix rounding save-restore bug. Fixes about a hundred off-by-ULP failures in the math testsuite. --- ChangeLog | 5 +++++ sysdeps/riscv/rvf/math_private.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index cd894ed11af..51ae26ae785 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-08-03 DJ Delorie + + * sysdeps/riscv/rvf/math_private.h (libc_feholdexcept_setround_riscv): + Fix rounding save-restore bug. + 2018-08-03 Joseph Myers * math/libm-test-ilogb.inc (ilogb_test_data): Use ',' not ';' diff --git a/sysdeps/riscv/rvf/math_private.h b/sysdeps/riscv/rvf/math_private.h index cdb7858fc8c..ca587620cb3 100644 --- a/sysdeps/riscv/rvf/math_private.h +++ b/sysdeps/riscv/rvf/math_private.h @@ -72,8 +72,8 @@ libc_fesetround_riscv (int round) static __always_inline void libc_feholdexcept_setround_riscv (fenv_t *envp, int round) { - libc_fesetround_riscv (round); libc_feholdexcept_riscv (envp); + libc_fesetround_riscv (round); } #define libc_feholdexcept_setround libc_feholdexcept_setround_riscv -- 2.47.2