diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2013-12-10 00:08:12 +0100 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2013-12-10 00:16:12 +0100 |
commit | eca60f6ed313a0b693784580829d0b20770e9fe4 (patch) | |
tree | 88ae5c3dbb6da08a31c6b81f908c60e4156613aa /ports/sysdeps/m68k | |
parent | e1c5c75ea265234164332ded6c272528e38df291 (diff) | |
download | glibc-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.c | 8 |
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; |