diff options
Diffstat (limited to 'sysdeps/ieee754/ldbl-128ibm/k_sinl.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/k_sinl.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_sinl.c b/sysdeps/ieee754/ldbl-128ibm/k_sinl.c index f17c0ae5db..b12ea134d5 100644 --- a/sysdeps/ieee754/ldbl-128ibm/k_sinl.c +++ b/sysdeps/ieee754/ldbl-128ibm/k_sinl.c @@ -82,7 +82,10 @@ __kernel_sinl(long double x, long double y, int iy) long double h, l, z, sin_l, cos_l_m1; int64_t ix; u_int32_t tix, hix, index; - GET_LDOUBLE_MSW64 (ix, x); + double xhi, hhi; + + xhi = ldbl_high (x); + EXTRACT_WORDS64 (ix, xhi); tix = ((u_int64_t)ix) >> 32; tix &= ~0x80000000; /* tix = |x|'s high 32 bits */ if (tix < 0x3fc30000) /* |x| < 0.1484375 */ @@ -132,7 +135,8 @@ __kernel_sinl(long double x, long double y, int iy) case 2: index = (hix - 0x3fc30000) >> 14; break; } */ - SET_LDOUBLE_WORDS64(h, ((u_int64_t)hix) << 32, 0); + INSERT_WORDS64 (hhi, ((uint64_t)hix) << 32); + h = hhi; if (iy) l = (ix < 0 ? -y : y) - (h - x); else |