diff options
Diffstat (limited to 'src/math/i386/asin.s')
-rw-r--r-- | src/math/i386/asin.s | 38 |
1 files changed, 7 insertions, 31 deletions
diff --git a/src/math/i386/asin.s b/src/math/i386/asin.s index a9f691bf..2bc8356f 100644 --- a/src/math/i386/asin.s +++ b/src/math/i386/asin.s @@ -1,26 +1,3 @@ -.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: @@ -28,18 +5,17 @@ asin: 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) + jb 1f + fld %st(0) fld1 fsub %st(0),%st(1) fadd %st(2) fmulp fsqrt fpatan + fstpl 4(%esp) + fldl 4(%esp) + ret + # subnormal x, return x with underflow +1: fsts 4(%esp) ret |