diff options
author | Rich Felker <dalias@aerifal.cx> | 2020-02-06 12:06:30 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2020-02-06 13:21:26 -0500 |
commit | 141c8d4ccb183365df8d392ae64cd69c4f0df8bf (patch) | |
tree | 03bed7745598a3fc1d1a4cf0382affc007c5ad4f /src/math/i386/asinf.s | |
parent | 1c9afd69051a64cf085c6fb3674a444ff9a43857 (diff) | |
download | musl-141c8d4ccb183365df8d392ae64cd69c4f0df8bf.tar.gz musl-141c8d4ccb183365df8d392ae64cd69c4f0df8bf.tar.bz2 musl-141c8d4ccb183365df8d392ae64cd69c4f0df8bf.tar.xz musl-141c8d4ccb183365df8d392ae64cd69c4f0df8bf.zip |
fix excess precision in return value of i386 acos[f] and asin[f]
analogous to commit 1c9afd69051a64cf085c6fb3674a444ff9a43857 for
atan[2][f].
Diffstat (limited to 'src/math/i386/asinf.s')
-rw-r--r-- | src/math/i386/asinf.s | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/math/i386/asinf.s b/src/math/i386/asinf.s index e07bf599..05909753 100644 --- a/src/math/i386/asinf.s +++ b/src/math/i386/asinf.s @@ -1 +1,23 @@ -# see asin.s +.global asinf +.type asinf,@function +asinf: + flds 4(%esp) + mov 4(%esp),%eax + add %eax,%eax + cmp $0x01000000,%eax + jb 1f + fld %st(0) + fld1 + fsub %st(0),%st(1) + fadd %st(2) + fmulp + fsqrt + fpatan + fstps 4(%esp) + flds 4(%esp) + ret + # subnormal x, return x with underflow +1: fld %st(0) + fmul %st(1) + fstps 4(%esp) + ret |