Merge from vendor branch GROFF:
[dragonfly.git] / lib / msun / i387 / s_tan.S
1 /*
2  * Written by J.T. Conklin <jtc@NetBSD.org>.
3  * Public domain.
4  */
5
6 #include <machine/asm.h>
7
8 #include "abi.h"
9
10 #if 0
11 RCSID("$NetBSD: s_tan.S,v 1.6 2001/06/19 00:26:31 fvdl Exp $")
12 #endif
13 RCSID("$DragonFly: src/lib/msun/i387/Attic/s_tan.S,v 1.3 2004/12/29 11:40:18 asmodai Exp $")
14
15 ENTRY(tan)
16         XMM_ONE_ARG_DOUBLE_PROLOGUE
17         fldl    ARG_DOUBLE_ONE
18         fptan
19         fnstsw  %ax
20         andw    $0x400,%ax
21         jnz     1f
22         fstp    %st(0)
23         XMM_DOUBLE_EPILOGUE
24         ret
25 1:      fldpi
26         fadd    %st(0)
27         fxch    %st(1)
28 2:      fprem1
29         fstsw   %ax
30         andw    $0x400,%ax
31         jnz     2b
32         fstp    %st(1)
33         fptan
34         fstp    %st(0)
35         XMM_DOUBLE_EPILOGUE
36         ret