ref: ad26b06c8f2bd574d39d74a3fc47cfadbd0bfca0
dir: /sys/src/libc/386/387/asin.s/
TEXT asin(SB), $0 FMOVD a+0(FP), F0 /* a */ FMOVD F0, F0 /* a,a */ FMULD F0, F0 /* a*a,a */ FLD1 /* 1,a*a,a */ FSUBRDP F0, F1 /* 1-a*a,a */ FTST WAIT FSTSW AX SAHF JLO bad FSQRT /* sqrt(1-a*a),a */ FPATAN /* atan2(sqrt(1-a*a),a) */ RET TEXT acos(SB), $0 FMOVD a+0(FP), F0 FMOVD F0, F0 FMULD F0, F0 FLD1 FSUBRDP F0, F1 FTST WAIT FSTSW AX SAHF JLO bad FSQRT FXCHD F0, F1 /* identical except this */ FPATAN RET bad: FMOVDP F0, F0 FMOVDP F0, F0 CALL NaN(SB) RET