f59cd2aa3a2348a72917724e2fe09049ae99664f
[dragonfly.git] / lib / libm / arch / i386 / s_sin.S
1 /*
2  * Written by J.T. Conklin <jtc@NetBSD.org>.
3  * Public domain.
4  *
5  * $NetBSD: s_sin.S,v 1.7 2003/07/26 19:25:03 salo Exp $
6  */
7
8 #include <machine/asm.h>
9
10 #include "abi.h"
11
12 ENTRY(sin)
13         XMM_ONE_ARG_DOUBLE_PROLOGUE
14         fldl    ARG_DOUBLE_ONE
15         fsin
16         fnstsw  %ax
17         andw    $0x400,%ax
18         jnz     1f
19         XMM_DOUBLE_EPILOGUE
20         ret
21 1:      fldpi
22         fadd    %st(0)
23         fxch    %st(1)
24 2:      fprem1
25         fnstsw  %ax
26         andw    $0x400,%ax
27         jnz     2b
28         fstp    %st(1)
29         fsin
30         XMM_DOUBLE_EPILOGUE
31         ret
32 END(sin)