aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/ldbl-128ibm/s_finitel.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-09-17 16:47:14 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-09-17 16:47:14 +0000
commitb8682397ab2db1aed7f25d0a0c7c81134a97c8c7 (patch)
tree76b6a9cbc7456f7ee53fe40cc86e0c7fe5e87f7a /sysdeps/ieee754/ldbl-128ibm/s_finitel.c
parent46f74e1deee549b41160d353ce0c8f7db555d36c (diff)
downloadglibc-b8682397ab2db1aed7f25d0a0c7c81134a97c8c7.zip
glibc-b8682397ab2db1aed7f25d0a0c7c81134a97c8c7.tar.gz
glibc-b8682397ab2db1aed7f25d0a0c7c81134a97c8c7.tar.bz2
Reduce number of constants in __finite* (bug 15384).
Bug 15384 notes that in __finite, two different constants are used that could be the same constant (the result only depends on the exponent of the floating-point representation), and that using the same constant is better for architectures where constants need loading from a constant pool. This patch implements that change. Tested for x86_64, mips64 and powerpc. [BZ #15384] * sysdeps/ieee754/dbl-64/s_finite.c (FINITE): Use same constant as bit-mask as in subtraction. * sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c (__finite): Likewise. * sysdeps/ieee754/flt-32/s_finitef.c (FINITEF): Likewise. * sysdeps/ieee754/ldbl-128/s_finitel.c (__finitel): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_finitel.c (__finitel): Likewise.
Diffstat (limited to 'sysdeps/ieee754/ldbl-128ibm/s_finitel.c')
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_finitel.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_finitel.c b/sysdeps/ieee754/ldbl-128ibm/s_finitel.c
index b562ce6..3b9e3de 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_finitel.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_finitel.c
@@ -34,7 +34,7 @@ ___finitel (long double x)
xhi = ldbl_high (x);
EXTRACT_WORDS64 (hx, xhi);
- hx &= 0x7fffffffffffffffLL;
+ hx &= 0x7ff0000000000000LL;
hx -= 0x7ff0000000000000LL;
return hx >> 63;
}