Cygwin: (mostly) drop NT4 and Samba < 3.0 support
[newlib-cygwin.git] / winsup / cygwin / math / tanl.S
blobf11b53920beddd16ab407a9e4cc75dd7d595414b
1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #include <_mingw_mac.h>
8         .file   "tanl.S"
9         .text
10 #ifdef __x86_64__
11         .align 8
12 #else
13         .align 4
14 #endif
15 .globl __MINGW_USYMBOL(tanl)
16         .def    __MINGW_USYMBOL(tanl);  .scl    2;      .type   32;     .endef
17 __MINGW_USYMBOL(tanl):
18 #ifdef __x86_64__
19         fldt    (%rdx)
20         fptan
21         fnstsw  %ax
22         testl   $0x400,%eax
23         jnz     1f
24         fstp    %st(0)
25         movq    %rcx,%rax
26         movq    $0,8(%rcx)
27         fstpt   (%rcx)
28         ret
29 1:      fldpi
30         fadd    %st(0)
31         fxch    %st(1)
32 2:      fprem1
33         fstsw   %ax
34         testl   $0x400,%eax
35         jnz     2b
36         fstp    %st(1)
37         fptan
38         fstp    %st(0)
39         movq    %rcx,%rax
40         movq    $0,8(%rcx)
41         fstpt   (%rcx)
42         ret
43 #else
44         fldt    4(%esp)
45         fptan
46         fnstsw  %ax
47         testl   $0x400,%eax
48         jnz     1f
49         fstp    %st(0)
50         ret
51 1:      fldpi
52         fadd    %st(0)
53         fxch    %st(1)
54 2:      fprem1
55         fstsw   %ax
56         testl   $0x400,%eax
57         jnz     2b
58         fstp    %st(1)
59         fptan
60         fstp    %st(0)
61         ret
62 #endif