diff options
author | Michael Hudson-Doyle <michael.hudson@canonical.com> | 2022-08-22 14:05:04 +1200 |
---|---|---|
committer | Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> | 2022-10-24 10:59:20 -0300 |
commit | b6e37b7805b0182c3e25cdab39ebf5f001c04d05 (patch) | |
tree | d57e26f3abb4295763b9d371b3952574e1ebdfac /sysdeps/ieee754 | |
parent | b87a70e5e26e2656637da5f58ba4d26777d9e37b (diff) | |
download | glibc-b6e37b7805b0182c3e25cdab39ebf5f001c04d05.tar glibc-b6e37b7805b0182c3e25cdab39ebf5f001c04d05.tar.gz glibc-b6e37b7805b0182c3e25cdab39ebf5f001c04d05.tar.bz2 glibc-b6e37b7805b0182c3e25cdab39ebf5f001c04d05.zip |
Fix BZ #29463 in the ibm128 implementation of y1l too
Avoid moving code across SET_RESTORE_ROUNDL in order to fix
[BZ #29463].
Tested-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/e_j1l.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_j1l.c b/sysdeps/ieee754/ldbl-128ibm/e_j1l.c index f85ba94466..0a5fe68342 100644 --- a/sysdeps/ieee754/ldbl-128ibm/e_j1l.c +++ b/sysdeps/ieee754/ldbl-128ibm/e_j1l.c @@ -792,10 +792,13 @@ __ieee754_y1l (long double x) { /* 0 <= x <= 2 */ SET_RESTORE_ROUNDL (FE_TONEAREST); + xx = math_opt_barrier (xx); + x = math_opt_barrier (x); z = xx * xx; p = xx * neval (z, Y0_2N, NY0_2N) / deval (z, Y0_2D, NY0_2D); p = -TWOOPI / xx + p; p = TWOOPI * __ieee754_logl (x) * __ieee754_j1l (x) + p; + math_force_eval (p); return p; } |