about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/libm-ieee754/s_isinfl.c6
-rw-r--r--sysdeps/libm-ieee754/s_isnanl.c4
2 files changed, 5 insertions, 5 deletions
diff --git a/sysdeps/libm-ieee754/s_isinfl.c b/sysdeps/libm-ieee754/s_isinfl.c
index 697534ed0d..6f7c07c5af 100644
--- a/sysdeps/libm-ieee754/s_isinfl.c
+++ b/sysdeps/libm-ieee754/s_isinfl.c
@@ -21,9 +21,9 @@ __isinfl (long double x)
 {
 	int32_t se,hx,lx;
 	GET_LDOUBLE_WORDS(se,hx,lx,x);
-	hx |= lx | ((se & 0x7fff) ^ 0x7fff);
-	hx |= -hx;
+	lx |= (hx & 0x7fffffff) | ((se & 0x7fff) ^ 0x7fff);
+	lx |= -lx;
 	se &= 0x8000;
-	return ~(hx >> 31) & (1 - (se >> 14));
+	return ~(lx >> 31) & (1 - (se >> 14));
 }
 weak_alias (__isinfl, isinfl)
diff --git a/sysdeps/libm-ieee754/s_isnanl.c b/sysdeps/libm-ieee754/s_isnanl.c
index 0da97090bd..ba53faa1fd 100644
--- a/sysdeps/libm-ieee754/s_isnanl.c
+++ b/sysdeps/libm-ieee754/s_isnanl.c
@@ -36,8 +36,8 @@ static char rcsid[] = "$NetBSD: $";
 	int32_t se,hx,lx;
 	GET_LDOUBLE_WORDS(se,hx,lx,x);
 	se = (se & 0x7fff) << 1;
-	hx |= lx;
-	se |= (u_int32_t)(hx|(-hx))>>31;
+	lx |= hx & 0x7fffffff;
+	se |= (u_int32_t)(lx|(-lx))>>31;
 	se = 0xfffe - se;
 	return (int)((u_int32_t)(se))>>16;
 }