From: Ulrich Drepper Date: Thu, 24 Jul 1997 01:32:45 +0000 (+0000) Subject: Don't handle FE_INEXACT specially, the standard doesn't require it. X-Git-Tag: glibc-2.16-ports-before-merge~3457 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=75dc7e89eb86594198deca639a96ea82181d0177;p=thirdparty%2Fglibc.git Don't handle FE_INEXACT specially, the standard doesn't require it. --- diff --git a/sysdeps/m68k/fpu/fraiseexcpt.c b/sysdeps/m68k/fpu/fraiseexcpt.c index d509604e281..bc49c9c71ff 100644 --- a/sysdeps/m68k/fpu/fraiseexcpt.c +++ b/sysdeps/m68k/fpu/fraiseexcpt.c @@ -48,43 +48,17 @@ feraiseexcept (int excepts) /* Next: overflow. */ if (excepts & FE_OVERFLOW) { - /* We cannot raise the overflow exception without also setting the - inexact flag. Restore it after the operation, unless it should - be set anyway. */ long double d = LDBL_MAX; - fexcept_t fpsr; - __asm__ ("fmove%.l %/fpsr,%0" : "=dm" (fpsr)); - __asm__ __volatile__ ("fmul%.x %0,%0" : "=f" (d) : "0" (d)); - if (!((excepts | fpsr) & FE_INEXACT)) - { - __asm__ ("fmove%.l %/fpsr,%0" : "=dm" (fpsr)); - fpsr &= ~FE_INEXACT; - __asm__ __volatile__ ("fmove%.l %0,%/fpsr" : : "dm" (fpsr)); - } - else - __asm__ ("fnop"); + __asm__ __volatile__ ("fmul%.x %0,%0; fnop" : "=f" (d) : "0" (d)); } /* Next: underflow. */ if (excepts & FE_UNDERFLOW) { - /* We cannot raise the underflow exception without also setting the - inexact flag. Restore it after the operation, unless it should - be set anyway. */ long double d = -LDBL_MAX; - fexcept_t fpsr; - __asm__ ("fmove%.l %/fpsr,%0" : "=dm" (fpsr)); - __asm__ __volatile__ ("fetox%.x %0" : "=f" (d) : "0" (d)); - if (!((excepts | fpsr) & FE_INEXACT)) - { - __asm__ ("fmove%.l %/fpsr,%0" : "=dm" (fpsr)); - fpsr &= ~FE_INEXACT; - __asm__ __volatile__ ("fmove%.l %0,%/fpsr" : : "dm" (fpsr)); - } - else - __asm__ ("fnop"); + __asm__ __volatile__ ("fetox%.x %0; fnop" : "=f" (d) : "0" (d)); } /* Last: inexact. */