summaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2015-01-22 17:46:22 +0100
committerThomas Schwinge <thomas@codesourcery.com>2015-01-22 17:46:22 +0100
commitbf16df772aa33b0b533a48a9183eef904bb2e122 (patch)
tree9632a0d0fd0a09911d9fd2697c55a3a0cd649e98 /sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c
parent80bef0ddec9bc03dd01ecb53a14dece766fc29d5 (diff)
parentb4578bab30f72cddd2cf38abfb39f9c8dc892249 (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.c7
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 */