1# use acos(x) = atan2(fabs(sqrt((1-x)*(1+x))), x) 2 3.global acos 4.type acos,@function 5acos: 6 fldl 4(%esp) 7 fld %st(0) 8 fld1 9 fsub %st(0),%st(1) 10 fadd %st(2) 11 fmulp 12 fsqrt 13 fabs # fix sign of zero (matters in downward rounding mode) 14 fxch %st(1) 15 fpatan 16 fstpl 4(%esp) 17 fldl 4(%esp) 18 ret 19