1# use acos(x) = atan2(fabs(sqrt((1-x)*(1+x))), x) 2 3.global acosf 4.type acosf,@function 5acosf: 6 flds 4(%esp) 7 jmp 1f 8 9.global acosl 10.type acosl,@function 11acosl: 12 fldt 4(%esp) 13 jmp 1f 14 15.global acos 16.type acos,@function 17acos: 18 fldl 4(%esp) 191: fld %st(0) 20 fld1 21 fsub %st(0),%st(1) 22 fadd %st(2) 23 fmulp 24 fsqrt 25 fabs # fix sign of zero (matters in downward rounding mode) 26 fxch %st(1) 27 fpatan 28 ret 29