diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-06-04 19:05:38 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-06-04 19:05:38 +0000 |
commit | 5649a1d60d4e752b4941663ea63391b5f1a8b7e4 (patch) | |
tree | 34db6ae3dd1d986185b7d92e7e1cdc8d70766d36 /sysdeps/m68k/fpu/fraiseexcpt.c | |
parent | Update (diff) | |
download | glibc-5649a1d60d4e752b4941663ea63391b5f1a8b7e4.tar.gz glibc-5649a1d60d4e752b4941663ea63391b5f1a8b7e4.tar.bz2 glibc-5649a1d60d4e752b4941663ea63391b5f1a8b7e4.zip |
Update.cvs/libc-ud-970604
1997-06-04 20:57 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Add comments to discourage use of index and
rindex.
(strtok, strsep): Apply function on copy of the strings in example.
(l64a): Add example.
* posix/unistd.h: Correct value for _POSIX_VERSION.
* sunrpc/Makefile (defines): Remove definition.
* sysdeps/ieee754/nan.h: Correct typo.
1997-06-04 10:50 Fila Kolodny <fila@ibi.com>
* posix/unistd.h: Add definition of __fchdir corresponding to fchdir.
* login/utmp_daemon.c: Correct location of utmpd.h.
1997-06-03 19:16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makerules: Rename $(common-objpfx)distinfo-$(subdir) to
$(objpfx)distinfo.
* rpm/Makefile (distinfo): Adapted.
1997-06-03 18:32 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* rpm/Makefile (install-slib): Collect shared libraries here
instead of in install-lib, including libc.
(instvars): Add slib.
1997-06-03 18:23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (libutil-routines): Add updwtmp.
1997-06-03 16:16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* monetary.h: New file, needed for localedata/tst-fmon.c.
1997-06-02 20:31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* math/libm-test.c (cpow_test): Add epsilon for long double in
test for 2^10.
(identities): Add epsilon for float in second identity test.
* sysdeps/m68k/huge_val.h: Change GCC's HUGE_VAL{,F,L} to use
DI and SI mode integers instead of bytes. Fix value of HUGE_VALL.
* sysdeps/m68k/nan.h: New file.
* sysdeps/m68k/fpu/__math.h (isgreater, isgreaterequal, isless,
islessequal, islessgreater, isunordered): Fix assembler syntax.
* sysdeps/m68k/fpu/fraiseexcpt.c: Do it right so that gcc doesn't
optimize out the operations.
* sysdeps/libm-ieee754/s_nan.c: Use NaN macro instead of static
constant.
* sysdeps/libm-ieee754/s_nanf.c: Likewise.
* sysdeps/libm-ieee754/s_nanl.c: Likewise.
* math/carg.c [NO_LONG_DOUBLE]: Add alias for long double
function.
* sysdeps/libm-ieee754/s_erf.c: Likewise.
* sysdeps/libm-ieee754/s_fdim.c: Likewise.
* sysdeps/libm-ieee754/s_fmax.c: Likewise.
* sysdeps/libm-ieee754/s_fmin.c: Likewise.
* sysdeps/libm-ieee754/s_log2.c: Likewise.
* sysdeps/libm-ieee754/s_nan.c: Likewise.
* sysdeps/libm-ieee754/s_remquo.c: Likewise.
Diffstat (limited to 'sysdeps/m68k/fpu/fraiseexcpt.c')
-rw-r--r-- | sysdeps/m68k/fpu/fraiseexcpt.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/sysdeps/m68k/fpu/fraiseexcpt.c b/sysdeps/m68k/fpu/fraiseexcpt.c index b6ff82760d..51411dd292 100644 --- a/sysdeps/m68k/fpu/fraiseexcpt.c +++ b/sysdeps/m68k/fpu/fraiseexcpt.c @@ -34,9 +34,8 @@ feraiseexcept (int excepts) if (excepts & FE_INVALID) { /* One example of a invalid operation is 0 * Infinity. */ - double d = 0.0 * HUGE_VAL; - /* Now force the exception. */ - __asm__ __volatile__ ("fnop" : : "f" (d)); + double d = HUGE_VAL; + __asm__ __volatile__ ("fmul%.s %#0r0,%0; fnop" : "=f" (d) : "0" (d)); } /* Next: division by zero. */ @@ -49,26 +48,21 @@ feraiseexcept (int excepts) /* Next: overflow. */ if (excepts & FE_OVERFLOW) { - long double d = LDBL_MAX * LDBL_MAX; - /* Now force the exception. */ - __asm__ __volatile__ ("fnop" : : "f" (d)); + long double d = LDBL_MAX; + __asm__ __volatile__ ("fmul%.x %0,%0; fnop" : "=f" (d) : "0" (d)); } /* Next: underflow. */ if (excepts & FE_UNDERFLOW) { - long double d = LDBL_MIN / 16.0; - /* Now force the exception. */ - __asm__ __volatile__ ("fnop" : : "f" (d)); + long double d = LDBL_MIN; + __asm__ __volatile__ ("fdiv%.s %#0r16,%0; fnop" : "=f" (d) : "0" (d)); } /* Last: inexact. */ if (excepts & FE_INEXACT) { - long double d1, d2 = 1.0; - __asm__ __volatile__ ("fmovecr %#0,%0\n\t" - "fdiv%.x %1,%0\n\t" - "fnop" - : "=&f" (d1) : "f" (d2)); + long double d = 1.0; + __asm__ __volatile__ ("fdiv%.s %#0r3,%0; fnop" : "=f" (d) : "0" (d)); } } |