fix excess precision in return value of i386 acos[f] and asin[f]
[musl] / src / math / i386 / acos.s
index 47f365e..af423a2 100644 (file)
@@ -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