398940bc8e7478deaf5ab2b4edc5abbde2a49bea
[dragonfly.git] / lib / libm / arch / i386 / s_cos.S
1 /*
2  * Written by J.T. Conklin <jtc@NetBSD.org>.
3  * Public domain.
4  *
5  * $NetBSD: s_cos.S,v 1.8 2003/07/26 19:25:01 salo Exp $
6  */
7
8 #include <machine/asm.h>
9
10 #include "abi.h"
11
12 ENTRY(cos)
13         XMM_ONE_ARG_DOUBLE_PROLOGUE
14         fldl    ARG_DOUBLE_ONE
15         fcos
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         fcos
30         XMM_DOUBLE_EPILOGUE
31         ret
32 END(cos)