]> git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/i386/fpu/s_fdim.S
Replace FSF snail mail address with URLs.
[thirdparty/glibc.git] / sysdeps / i386 / fpu / s_fdim.S
1 /* Compute positive difference.
2 Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4 Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
5
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
10
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, see
18 <http://www.gnu.org/licenses/>. */
19
20 #include <sysdep.h>
21
22 .text
23 ENTRY(__fdim)
24 fldl 4(%esp) // x
25 fldl 12(%esp) // x : y
26
27 fucom %st(1)
28 fnstsw
29 sahf
30 jp 1f
31
32 jc 3f
33
34 fstp %st(1)
35 fldz
36 jmp 2f
37
38 3: fsubrp %st, %st(1)
39 ret
40
41 1: fxam
42 fnstsw
43 andb $0x45, %ah
44 cmpb $0x01, %ah
45 je 2f
46
47 fxch
48 2: fstp %st(1)
49 ret
50 END(__fdim)
51 weak_alias (__fdim, fdim)