Browse Source

use alternate formula for acos asm to avoid loss of precision

Rich Felker 13 years ago
parent
commit
804fbf0b8c
1 changed files with 11 additions and 3 deletions
  1. 11 3
      src/math/i386/acos.s

+ 11 - 3
src/math/i386/acos.s

@@ -14,11 +14,19 @@ acosl:
 .type acos,@function
 acos:
 	fldl 4(%esp)
-1:	fld %st(0)
-	fmul %st(0)
+1:	fld1
+	fld %st(1)
 	fld1
-	fsubp %st(1)
+	fsubp
+	fxch %st(2)
+	faddp
+	fdivp
 	fsqrt
+	fld1
 	fxch %st(1)
 	fpatan
+	fld1
+	fld1
+	faddp
+	fmulp
 	ret