diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 16:03:01 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 16:03:01 +0000 |
commit | 14970231a38310b9561052a67b617138eeaad300 (patch) | |
tree | 35c201a651afa5d5e4fff241280081b3f88b9c2c /sysdeps/ieee754/ldbl-128ibm/e_remainderl.c | |
parent | f08c7420b5e8b017a1a47b880a62b15bdc588f4d (diff) | |
parent | 25ead03a3712d57df2208fe82f3d316eb8faeaf6 (diff) |
Merge commit 'refs/top-bases/t/extern_inline' into t/extern_inline
Diffstat (limited to 'sysdeps/ieee754/ldbl-128ibm/e_remainderl.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/e_remainderl.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c b/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c index 800416f29a..efa83bdab7 100644 --- a/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c +++ b/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c @@ -31,7 +31,7 @@ long double __ieee754_remainderl(long double x, long double p) { int64_t hx,hp; - u_int64_t sx,lx,lp; + uint64_t sx,lx,lp; long double p_half; double xhi, xlo, phi, plo; @@ -42,8 +42,14 @@ __ieee754_remainderl(long double x, long double p) EXTRACT_WORDS64 (hp, phi); EXTRACT_WORDS64 (lp, plo); sx = hx&0x8000000000000000ULL; + lp ^= hp & 0x8000000000000000ULL; hp &= 0x7fffffffffffffffLL; + lx ^= sx; hx &= 0x7fffffffffffffffLL; + if (lp == 0x8000000000000000ULL) + lp = 0; + if (lx == 0x8000000000000000ULL) + lx = 0; /* purge off exception values */ if(hp==0) return (x*p)/(x*p); /* p = 0 */ |