From 141c8d4ccb183365df8d392ae64cd69c4f0df8bf Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Thu, 6 Feb 2020 12:06:30 -0500 Subject: fix excess precision in return value of i386 acos[f] and asin[f] analogous to commit 1c9afd69051a64cf085c6fb3674a444ff9a43857 for atan[2][f]. --- src/math/i386/asin.s | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) (limited to 'src/math/i386/asin.s') diff --git a/src/math/i386/asin.s b/src/math/i386/asin.s index 920d967a..2bc8356f 100644 --- a/src/math/i386/asin.s +++ b/src/math/i386/asin.s @@ -1,23 +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 - fld %st(0) - fmul %st(1) - fstps 4(%esp) - ret - -.global asinl -.type asinl,@function -asinl: - fldt 4(%esp) - jmp 1f - .global asin .type asin,@function asin: @@ -25,15 +5,17 @@ asin: mov 8(%esp),%eax add %eax,%eax cmp $0x00200000,%eax - jae 1f - # subnormal x, return x with underflow - fsts 4(%esp) - 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 -- cgit v1.2.1