xref: /aosp_15_r20/external/musl/src/math/i386/hypot.s (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker.global hypot
2*c9945492SAndroid Build Coastguard Worker.type hypot,@function
3*c9945492SAndroid Build Coastguard Workerhypot:
4*c9945492SAndroid Build Coastguard Worker	mov 8(%esp),%eax
5*c9945492SAndroid Build Coastguard Worker	mov 16(%esp),%ecx
6*c9945492SAndroid Build Coastguard Worker	add %eax,%eax
7*c9945492SAndroid Build Coastguard Worker	add %ecx,%ecx
8*c9945492SAndroid Build Coastguard Worker	and %eax,%ecx
9*c9945492SAndroid Build Coastguard Worker	cmp $0xffe00000,%ecx
10*c9945492SAndroid Build Coastguard Worker	jae 2f
11*c9945492SAndroid Build Coastguard Worker	or 4(%esp),%eax
12*c9945492SAndroid Build Coastguard Worker	jnz 1f
13*c9945492SAndroid Build Coastguard Worker	fldl 12(%esp)
14*c9945492SAndroid Build Coastguard Worker	fabs
15*c9945492SAndroid Build Coastguard Worker	ret
16*c9945492SAndroid Build Coastguard Worker1:	mov 16(%esp),%eax
17*c9945492SAndroid Build Coastguard Worker	add %eax,%eax
18*c9945492SAndroid Build Coastguard Worker	or 12(%esp),%eax
19*c9945492SAndroid Build Coastguard Worker	jnz 1f
20*c9945492SAndroid Build Coastguard Worker	fldl 4(%esp)
21*c9945492SAndroid Build Coastguard Worker	fabs
22*c9945492SAndroid Build Coastguard Worker	ret
23*c9945492SAndroid Build Coastguard Worker1:	fldl 4(%esp)
24*c9945492SAndroid Build Coastguard Worker	fld %st(0)
25*c9945492SAndroid Build Coastguard Worker	fmulp
26*c9945492SAndroid Build Coastguard Worker	fldl 12(%esp)
27*c9945492SAndroid Build Coastguard Worker	fld %st(0)
28*c9945492SAndroid Build Coastguard Worker	fmulp
29*c9945492SAndroid Build Coastguard Worker	faddp
30*c9945492SAndroid Build Coastguard Worker	fsqrt
31*c9945492SAndroid Build Coastguard Worker	ret
32*c9945492SAndroid Build Coastguard Worker2:	sub $0xffe00000,%eax
33*c9945492SAndroid Build Coastguard Worker	or 4(%esp),%eax
34*c9945492SAndroid Build Coastguard Worker	jnz 1f
35*c9945492SAndroid Build Coastguard Worker	fldl 4(%esp)
36*c9945492SAndroid Build Coastguard Worker	fabs
37*c9945492SAndroid Build Coastguard Worker	ret
38*c9945492SAndroid Build Coastguard Worker1:	mov 16(%esp),%eax
39*c9945492SAndroid Build Coastguard Worker	add %eax,%eax
40*c9945492SAndroid Build Coastguard Worker	sub $0xffe00000,%eax
41*c9945492SAndroid Build Coastguard Worker	or 12(%esp),%eax
42*c9945492SAndroid Build Coastguard Worker	fldl 12(%esp)
43*c9945492SAndroid Build Coastguard Worker	jnz 1f
44*c9945492SAndroid Build Coastguard Worker	fabs
45*c9945492SAndroid Build Coastguard Worker1:	ret
46