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/acos.s | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) (limited to 'src/math/i386/acos.s') diff --git a/src/math/i386/acos.s b/src/math/i386/acos.s index 47f365ef..af423a2f 100644 --- a/src/math/i386/acos.s +++ b/src/math/i386/acos.s @@ -1,22 +1,10 @@ # use acos(x) = atan2(fabs(sqrt((1-x)*(1+x))), x) -.global acosf -.type acosf,@function -acosf: - flds 4(%esp) - jmp 1f - -.global acosl -.type acosl,@function -acosl: - fldt 4(%esp) - jmp 1f - .global acos .type acos,@function acos: fldl 4(%esp) -1: fld %st(0) + fld %st(0) fld1 fsub %st(0),%st(1) fadd %st(2) @@ -25,4 +13,6 @@ acos: fabs # fix sign of zero (matters in downward rounding mode) fxch %st(1) fpatan + fstpl 4(%esp) + fldl 4(%esp) ret -- cgit v1.2.1