svn commit: r305384 - head/lib/msun/i387

Bruce Evans bde at FreeBSD.org
Sun Sep 4 14:12:20 UTC 2016


Author: bde
Date: Sun Sep  4 14:12:19 2016
New Revision: 305384
URL: https://svnweb.freebsd.org/changeset/base/305384

Log:
  Disconnect the "optimized" asm variants of cos(), sin() and tan() from
  the build on i386.  Leave them in the source tree for regression tests.
  
  The asm functions were always much less accurate (by a factor of more
  than 10**18 in the worst case).  They were faster on old CPUs.  But
  with each new generation of CPUs they get relatively slower.  The
  double precision C version's average advantage is about a factor of 2
  on Haswell.
  
  The asm functions were already intentionally avoided in float and long
  double precision on i386 and in all precisions on amd64.  Float
  precision and amd64 give larger advantages to the C version.  The long
  double precision C code and compilers' understanding of long double
  precision are not so good, so the i387 is still slightly faster for
  long double precision, except for the unimportant subcase of huge args
  where the sub-optimal C code now somehow beats the i387 by about a
  factor of 2.

Modified:
  head/lib/msun/i387/Makefile.inc

Modified: head/lib/msun/i387/Makefile.inc
==============================================================================
--- head/lib/msun/i387/Makefile.inc	Sun Sep  4 13:31:57 2016	(r305383)
+++ head/lib/msun/i387/Makefile.inc	Sun Sep  4 14:12:19 2016	(r305384)
@@ -2,8 +2,8 @@
 
 ARCH_SRCS = e_exp.S e_fmod.S e_log.S e_log10.S \
 	    e_remainder.S e_sqrt.S s_ceil.S s_copysign.S \
-	    s_cos.S s_finite.S s_floor.S s_llrint.S s_logb.S s_lrint.S \
-	    s_remquo.S s_rint.S s_scalbn.S s_significand.S s_sin.S s_tan.S \
+	    s_finite.S s_floor.S s_llrint.S s_logb.S s_lrint.S \
+	    s_remquo.S s_rint.S s_scalbn.S s_significand.S \
 	    s_trunc.S
 
 # float counterparts


More information about the svn-src-head mailing list