summaryrefslogtreecommitdiff
path: root/libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2014-01-03 17:51:28 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2014-01-03 17:51:28 +0000
commitf71e9a28759c1f5d6e8dc0baced440e72507b433 (patch)
treed1ef7f1f84de67d0446b60c04f10a47c84ac1ddc /libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
parent036dfd44bcc8ed8e97dcd9c763f61d3b59796941 (diff)
downloadeglibc2-f71e9a28759c1f5d6e8dc0baced440e72507b433.tar.gz
Merge changes between r24468 and r24941 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@24942 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c')
-rw-r--r--libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c b/libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
index 9a03b7863..03c136bb0 100644
--- a/libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
+++ b/libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
@@ -46,7 +46,8 @@ long double __nextafterl(long double x, long double y)
if((ix|hx|lx)==0) { /* x == 0 */
SET_LDOUBLE_WORDS(x,esy&0x8000,0,1);/* return +-minsubnormal */
y = x*x;
- if(y==x) return y; else return x; /* raise underflow flag */
+ math_force_eval (y); /* raise underflow flag */
+ return x;
}
if(esx>=0) { /* x > 0 */
if(esx>esy||((esx==esy) && (hx>hy||((hx==hy)&&(lx>ly))))) {
@@ -91,10 +92,7 @@ long double __nextafterl(long double x, long double y)
if(esy==0x7fff) return x+x; /* overflow */
if(esy==0 && (hx & 0x80000000) == 0) { /* underflow */
y = x*x;
- if(y!=x) { /* raise underflow flag */
- SET_LDOUBLE_WORDS(y,esx,hx,lx);
- return y;
- }
+ math_force_eval (y); /* raise underflow flag */
}
SET_LDOUBLE_WORDS(x,esx,hx,lx);
return x;