asm for hypot and hypotf
[musl] / src / math / i386 / hypotf.s
1 .global hypotf
2 .type hypotf,@function
3 hypotf:
4         mov 4(%esp),%eax
5         mov 8(%esp),%ecx
6         add %eax,%eax
7         add %ecx,%ecx
8         and %eax,%ecx
9         cmp $0xff000000,%ecx
10         jae 2f
11         test %eax,%eax
12         jnz 1f
13         flds 8(%esp)
14         fabs
15         ret
16 1:      mov 8(%esp),%eax
17         add %eax,%eax
18         jnz 1f
19         flds 4(%esp)
20         fabs
21         ret
22 1:      flds 4(%esp)
23         fld %st(0)
24         fmulp
25         flds 8(%esp)
26         fld %st(0)
27         fmulp
28         faddp
29         fsqrt
30         ret
31 2:      cmp $0xff000000,%eax
32         jnz 1f
33         flds 4(%esp)
34         fabs
35         ret
36 1:      mov 8(%esp),%eax
37         add %eax,%eax
38         cmp $0xff000000,%eax
39         flds 8(%esp)
40         jnz 1f
41         fabs
42 1:      ret