920d967acfd257e0a6ac1a1d17a867cca7e6d4f7
[oweals/musl.git] / src / math / i386 / asin.s
1 .global asinf
2 .type asinf,@function
3 asinf:
4         flds 4(%esp)
5         mov 4(%esp),%eax
6         add %eax,%eax
7         cmp $0x01000000,%eax
8         jae 1f
9                 # subnormal x, return x with underflow
10         fld %st(0)
11         fmul %st(1)
12         fstps 4(%esp)
13         ret
14
15 .global asinl
16 .type asinl,@function
17 asinl:
18         fldt 4(%esp)
19         jmp 1f
20
21 .global asin
22 .type asin,@function
23 asin:
24         fldl 4(%esp)
25         mov 8(%esp),%eax
26         add %eax,%eax
27         cmp $0x00200000,%eax
28         jae 1f
29                 # subnormal x, return x with underflow
30         fsts 4(%esp)
31         ret
32 1:      fld %st(0)
33         fld1
34         fsub %st(0),%st(1)
35         fadd %st(2)
36         fmulp
37         fsqrt
38         fpatan
39         ret