diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2015-01-22 17:46:22 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2015-01-22 17:46:22 +0100 |
commit | bf16df772aa33b0b533a48a9183eef904bb2e122 (patch) | |
tree | 9632a0d0fd0a09911d9fd2697c55a3a0cd649e98 /sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c | |
parent | 80bef0ddec9bc03dd01ecb53a14dece766fc29d5 (diff) | |
parent | b4578bab30f72cddd2cf38abfb39f9c8dc892249 (diff) |
Merge commit 'refs/top-bases/t/futimens' into t/futimens
Diffstat (limited to 'sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c b/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c index c0dcf7f6f3..90586e822e 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c @@ -2,7 +2,7 @@ Copyright (C) 1997-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and - Jakub Jelinek <jj@ultra.linux.cz>, 1999. + Jakub Jelinek <jj@ultra.linux.cz>, 1999. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -46,8 +46,10 @@ ___fpclassifyl (long double x) { u_int64_t hx, lx; int retval = FP_NORMAL; + double xhi, xlo; - GET_LDOUBLE_WORDS64 (hx, lx, x); + ldbl_unpack (x, &xhi, &xlo); + EXTRACT_WORDS64 (hx, xhi); if ((hx & 0x7ff0000000000000ULL) == 0x7ff0000000000000ULL) { /* +/-NaN or +/-Inf */ if (hx & 0x000fffffffffffffULL) { @@ -65,6 +67,7 @@ ___fpclassifyl (long double x) retval = FP_NORMAL; } else { if ((hx & 0x7ff0000000000000ULL) == 0x0360000000000000ULL) { + EXTRACT_WORDS64 (lx, xlo); if ((lx & 0x7fffffffffffffff) /* lower is non-zero */ && ((lx^hx) & 0x8000000000000000ULL)) { /* and sign differs */ /* +/- denormal */ |