Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / lib / libm / arch / i387 / s_tan.S
blob4301f5d83f9aeba4575e486a78db1b71d588c818
1 /*
2  * Written by J.T. Conklin <jtc@NetBSD.org>.
3  * Public domain.
4  */
6 #include <machine/asm.h>
8 #include "abi.h"
10 RCSID("$NetBSD: s_tan.S,v 1.6 2001/06/19 00:26:31 fvdl Exp $")
12 ENTRY(tan)
13         XMM_ONE_ARG_DOUBLE_PROLOGUE
14         fldl    ARG_DOUBLE_ONE
15         fptan
16         fnstsw  %ax
17         andw    $0x400,%ax
18         jnz     1f
19         fstp    %st(0)
20         XMM_DOUBLE_EPILOGUE
21         ret
22 1:      fldpi
23         fadd    %st(0)
24         fxch    %st(1)
25 2:      fprem1
26         fstsw   %ax
27         andw    $0x400,%ax
28         jnz     2b
29         fstp    %st(1)
30         fptan
31         fstp    %st(0)
32         XMM_DOUBLE_EPILOGUE
33         ret