about summary refs log tree commit diff
path: root/ports/sysdeps/m68k
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2013-12-10 00:08:12 +0100
committerAndreas Schwab <schwab@linux-m68k.org>2013-12-10 00:16:12 +0100
commiteca60f6ed313a0b693784580829d0b20770e9fe4 (patch)
tree88ae5c3dbb6da08a31c6b81f908c60e4156613aa /ports/sysdeps/m68k
parente1c5c75ea265234164332ded6c272528e38df291 (diff)
downloadglibc-eca60f6ed313a0b693784580829d0b20770e9fe4.tar.gz
glibc-eca60f6ed313a0b693784580829d0b20770e9fe4.tar.xz
glibc-eca60f6ed313a0b693784580829d0b20770e9fe4.zip
m68k: use math_force_eval in nextafterl
Diffstat (limited to 'ports/sysdeps/m68k')
-rw-r--r--ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c b/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
index 9a03b78631..03c136bb08 100644
--- a/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
+++ b/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;