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/asinf.s | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/math/i386/asinf.s') 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 -- cgit 1.4.1