df9121eecb
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.
23 lines
791 B
Makefile
23 lines
791 B
Makefile
# $FreeBSD$
|
|
|
|
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_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
|
|
ARCH_SRCS+= e_fmodf.S e_log10f.S e_logf.S e_remainderf.S \
|
|
e_sqrtf.S s_ceilf.S s_copysignf.S s_floorf.S \
|
|
s_llrintf.S s_logbf.S s_lrintf.S \
|
|
s_remquof.S s_rintf.S s_scalbnf.S s_significandf.S s_truncf.S
|
|
|
|
# long double counterparts
|
|
ARCH_SRCS+= e_fmodl.S \
|
|
e_remainderl.S e_sqrtl.S s_ceill.S s_copysignl.S \
|
|
s_floorl.S s_llrintl.S \
|
|
s_logbl.S s_lrintl.S s_remquol.S s_rintl.S s_scalbnl.S s_truncl.S
|
|
|
|
LDBL_PREC = 64 # XXX 64-bit format, but truncated to 53 bits
|
|
SYM_MAPS += ${.CURDIR}/i387/Symbol.map
|