diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-09-26 10:11:59 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-09-26 10:11:59 +0000 |
commit | 6497a1d081505a2d0b50e06fcdca71d5f0a11192 (patch) | |
tree | 1893c3063f3970cd55a323a992d6c2dcebb0b009 /sysdeps/i386/i686 | |
parent | 6721afe294991fc1862e417263ccb04bf04599d6 (diff) | |
download | glibc-6497a1d081505a2d0b50e06fcdca71d5f0a11192.tar.gz glibc-6497a1d081505a2d0b50e06fcdca71d5f0a11192.tar.xz glibc-6497a1d081505a2d0b50e06fcdca71d5f0a11192.zip |
[BZ #376]
Update. * sysdeps/generic/s_fdim.c: Handle +inf/+inf * sysdeps/generic/s_fdimf.c: Likewise. * sysdeps/generic/s_fdiml.c: Likewise. * sysdeps/i386/i686/fpu/s_fdim.S: Likewise. * sysdeps/i386/i686/fpu/s_fdimf.S: Likewise. * sysdeps/i386/i686/fpu/s_fdiml.S: Likewise. * sysdeps/powerpc/fpu/s_fdim.c: Likewise. * sysdeps/powerpc/fpu/s_fdimf.c: Likewise. * sysdeps/x86_64/fpu/s_fdiml.S: Likewise. * math/libm-test.inc (fdim_test): Add test case. [BZ #376].
Diffstat (limited to 'sysdeps/i386/i686')
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fdim.S | 10 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fdimf.S | 10 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fdiml.S | 10 |
3 files changed, 18 insertions, 12 deletions
diff --git a/sysdeps/i386/i686/fpu/s_fdim.S b/sysdeps/i386/i686/fpu/s_fdim.S index e610973a56..30ecff4e7c 100644 --- a/sysdeps/i386/i686/fpu/s_fdim.S +++ b/sysdeps/i386/i686/fpu/s_fdim.S @@ -1,5 +1,5 @@ /* Compute positive difference. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -28,12 +28,14 @@ ENTRY(__fdim) fucomi %st(1), %st jp 1f - fsubrp %st, %st(1) + jc 3f + fstp %st(1) fldz - fcomi %st(1), %st - fcmovb %st(1), %st jmp 2f +3: fsubrp %st, %st(1) + ret + 1: fucomi %st(0), %st fcmovnu %st(1), %st 2: fstp %st(1) diff --git a/sysdeps/i386/i686/fpu/s_fdimf.S b/sysdeps/i386/i686/fpu/s_fdimf.S index a22cbe9d66..888df14b6f 100644 --- a/sysdeps/i386/i686/fpu/s_fdimf.S +++ b/sysdeps/i386/i686/fpu/s_fdimf.S @@ -1,5 +1,5 @@ /* Compute positive difference. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -28,12 +28,14 @@ ENTRY(__fdimf) fucomi %st(1), %st jp 1f - fsubrp %st, %st(1) + jc 3f + fstp %st(1) fldz - fcomi %st(1), %st - fcmovb %st(1), %st jmp 2f +3: fsubrp %st, %st(1) + ret + 1: fucomi %st(0), %st fcmovnu %st(1), %st 2: fstp %st(1) diff --git a/sysdeps/i386/i686/fpu/s_fdiml.S b/sysdeps/i386/i686/fpu/s_fdiml.S index fa3c51e462..cb0e26e367 100644 --- a/sysdeps/i386/i686/fpu/s_fdiml.S +++ b/sysdeps/i386/i686/fpu/s_fdiml.S @@ -1,5 +1,5 @@ /* Compute positive difference. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -28,12 +28,14 @@ ENTRY(__fdiml) fucomi %st(1), %st jp 1f - fsubrp %st, %st(1) + jc 3f + fstp %st(1) fldz - fcomi %st(1), %st - fcmovb %st(1), %st jmp 2f +3: fsubrp %st, %st(1) + ret + 1: fucomi %st(0), %st fcmovnu %st(1), %st 2: fstp %st(1) |