.global asinf .type asinf,@function asinf: flds 4(%esp) mov 4(%esp),%eax add %eax,%eax cmp $0x01000000,%eax jae 1f # subnormal x, return x with underflow fnstsw %ax and $16,%ax jnz 2f fld %st(0) fmul %st(1) fstps 4(%esp) 2: ret .global asinl .type asinl,@function asinl: fldt 4(%esp) jmp 1f .global asin .type asin,@function asin: fldl 4(%esp) mov 8(%esp),%eax add %eax,%eax cmp $0x00200000,%eax jae 1f # subnormal x, return x with underflow fnstsw %ax and $16,%ax jnz 2f fsts 4(%esp) 2: ret 1: fld %st(0) fld1 fsub %st(0),%st(1) fadd %st(2) fmulp fsqrt fpatan ret