diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2019-03-08 16:55:52 +0000 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2019-06-12 11:46:26 -0300 |
commit | e41d66e41ae0626156b3eace8e15aecff3044695 (patch) | |
tree | 870f599d3daea03e6de16399c7b4a270332ee738 /ChangeLog | |
parent | 21bd039bb41a59cdbd6c93670433e3b473720653 (diff) | |
download | glibc-e41d66e41ae0626156b3eace8e15aecff3044695.tar.gz glibc-e41d66e41ae0626156b3eace8e15aecff3044695.tar.xz glibc-e41d66e41ae0626156b3eace8e15aecff3044695.zip |
powerpc: copysign cleanup
GCC always expand copysign{f} for all possible cpus, so calling the libm is only done if user explicitly states to disable the builtin (which is done usually not for performance reason). So to provide ifunc variant for copysign is just unrequired complexity, since libm will be called on non-performance critical code. This patch removes both powerpc32 and powerpc64 ifunc variants and consolidates the powerpc implementation on sysdeps/powerpc/fpu/s_copysign{f}.c using compiler builtins. Checked on powerpc-linux-gnu (built without --with-cpu, with --with-cpu=power4 and with --with-cpu=power5+ and --disable-multi-arch), powerpc64-linux-gnu (built without --with-cp and with --with-cpu=power5+ and --disable-multi-arch). * sysdeps/powerpc/fpu/s_copysign.c: New file. * sysdeps/powerpc/fpu/s_copysignf.c: Likewise. * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Remove file. * sysdeps/powerpc/powerpc32/fpu/s_copysignf.S: Likewise. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile (sysdep_routines, libm-sysdep_routines): Remove s_copysign-power6 and s_copysign-ppc32. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-power6.S: Remove file. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-ppc32.S: Likewise. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c: Likewise. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c: Likewise. * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Likewise. * sysdeps/powerpc/powerpc32/power6/fpu/s_copysignf.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdeps_calls): Remove s_copysign-power6 s_copysign-ppc64. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S: Remove file. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_copysignf.S: Likewise. * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Likewise. * sysdeps/powerpc/powerpc64/power6/fpu/s_copysignf.S: Likewise. Reviewed-by: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 840c28c3e3..13f027309e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,35 @@ 2019-06-12 Adhemerval Zanella <adhemerval.zanella@linaro.org> + * sysdeps/powerpc/fpu/s_copysign.c: New file. + * sysdeps/powerpc/fpu/s_copysignf.c: Likewise. + * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Remove file. + * sysdeps/powerpc/powerpc32/fpu/s_copysignf.S: Likewise. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile + (sysdep_routines, libm-sysdep_routines): Remove s_copysign-power6 and + s_copysign-ppc32. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-power6.S: + Remove file. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-ppc32.S: + Likewise. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c: + Likewise. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c: + Likewise. + * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Likewise. + * sysdeps/powerpc/powerpc32/power6/fpu/s_copysignf.S: Likewise. + * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdeps_calls): + Remove s_copysign-power6 s_copysign-ppc64. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S: + Remove file. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S: + Likewise. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c: Likewise. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c: Likewise. + * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Likewise. + * sysdeps/powerpc/powerpc64/fpu/s_copysignf.S: Likewise. + * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Likewise. + * sysdeps/powerpc/powerpc64/power6/fpu/s_copysignf.S: Likewise. + * sysdeps/powerpc/fpu/round_to_integer.h (set_fenv_mode, round_to_integer_float, round_mode): Add RINT handling. (reset_fenv_mode): New symbol. |