Message ID | 1509044813-9951-1-git-send-email-adhemerval.zanella@linaro.org |
---|---|
Headers | show |
Series | Refactor IFUNC selection in C | expand |
I have tested this patchset natively on SPARC using GCC 4.9, 5, 6, 7, and 8 without any regression. Since it does not change any semantic regarding ifunc selection I am planning to push the mempcy and memset refactor next week so Patrick McGehearty can rebase its work on optimized M7 implementation. On 26/10/2017 17:06, Adhemerval Zanella wrote: > This patchset is the continuation of two previous patchset > [1][2][3][4] to convert ifunc implementation in assembly to C > using GLIBC macros (which may use direct asm or GCC attributes > depending of compiler support). > > No functional change is expected in generated symbols or > ifunc selection, although some code reorganization was > done in the case of ifunc selection also build the default > variant at the same module. In this case a new file is > created with 'generic' suffix. > > I also created a personal branch for this patchset on > azanella/ifunc-c [5] > > [1] https://sourceware.org/ml/libc-alpha/2017-10/msg00578.html > [2] https://sourceware.org/ml/libc-alpha/2017-10/msg00576.html > [3] https://sourceware.org/ml/libc-alpha/2017-10/msg00281.html > [4] https://sourceware.org/ml/libc-alpha/2017-10/msg00282.html > [5] https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/azanella/ifunc-c > > Adhemerval Zanella (25): > arm: Implement memcpy ifunc selection in C > arm: Implement memchr ifunc selection in C > sparc: Implement memcpy/mempcpy ifunc selection in C > sparc: Implement memset/bzero ifunc selection in C > sparc: Assume VIS3 support > sparc: refactor sparc64 signbit{f} selector to C > sparc: refactor sparc64 isnan{f} selector to C > sparc: refactor sparc64 isinf{f} selector to C > sparc: refactor sparc64 finite{f} selector to C > sparc: refactor sparc64 nearbyint{f} selector to C > sparc: refactor sparc64 lrint{f} selector to C > sparc: refactor sparc64 rint{f} selector to C > sparc: refactor sparc64 __mpn_mul_1 selector to C > sparc: refactor sparc64 __mpn_sub_n selector to C > sparc: refactor sparc64 __mpn_addmul_1 selector to C > sparc: refactor sparc64 __mpn_submul_1 selector to C > sparc: refactor sparc64 __mpn_add_n selector to C > sparc: refactor sparc32 copysign selector to C > sparc: refactor sparc32 fabs{f} selector to C > sparc: refactor sparc32 llrint{f} selector to C > sparc: refactor sparc32 rint{f} selector to C > sparc: refactor sparc32 nearbyint{f} selector to C > sparc: refactor cpu_relax to C > sparc: Remove ununsed ifunc assembly macros > x32: Remove unused getcpu implementation > > ChangeLog | 279 +++++++++++++++++++++ > config.h.in | 3 - > sysdeps/arm/arm-ifunc.h | 33 +++ > sysdeps/arm/armv7/multiarch/Makefile | 3 +- > sysdeps/arm/armv7/multiarch/ifunc-memchr.h | 28 +++ > sysdeps/arm/armv7/multiarch/ifunc-memcpy.h | 37 +++ > sysdeps/arm/armv7/multiarch/memchr.c | 35 +++ > sysdeps/arm/armv7/multiarch/memchr_impl.S | 219 ---------------- > sysdeps/arm/armv7/multiarch/memchr_neon.S | 221 +++++++++++++++- > sysdeps/arm/armv7/multiarch/memchr_noneon.S | 5 + > sysdeps/arm/armv7/multiarch/memcpy.S | 76 ------ > sysdeps/arm/armv7/multiarch/memcpy.c | 35 +++ > sysdeps/arm/armv7/multiarch/memcpy_arm.S | 10 + > sysdeps/arm/armv7/multiarch/memcpy_neon.S | 8 +- > sysdeps/arm/armv7/multiarch/memcpy_vfp.S | 4 +- > sysdeps/arm/armv7/multiarch/rtld-memchr.S | 1 + > sysdeps/arm/armv7/multiarch/rtld-memcpy.S | 1 + > sysdeps/sparc/configure | 42 ---- > sysdeps/sparc/configure.ac | 29 --- > sysdeps/sparc/sparc-ifunc.h | 163 ++---------- > sysdeps/sparc/sparc32/sparcv9/Makefile | 7 - > sysdeps/sparc/sparc32/sparcv9/cpu_relax.S | 1 - > sysdeps/sparc/sparc32/sparcv9/cpu_relax.c | 1 + > .../sparc/sparc32/sparcv9/fpu/multiarch/Makefile | 26 +- > .../sparcv9/fpu/multiarch/s_copysign-generic.S | 8 + > .../sparc32/sparcv9/fpu/multiarch/s_copysign.S | 21 -- > .../sparc32/sparcv9/fpu/multiarch/s_copysign.c | 38 +++ > .../sparcv9/fpu/multiarch/s_copysignf-generic.S | 4 + > .../sparc32/sparcv9/fpu/multiarch/s_copysignf.S | 12 - > .../sparc32/sparcv9/fpu/multiarch/s_copysignf.c | 11 + > .../sparc32/sparcv9/fpu/multiarch/s_fabs-generic.S | 8 + > .../sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S | 18 -- > .../sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c | 35 +++ > .../sparcv9/fpu/multiarch/s_fabsf-generic.S | 4 + > .../sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.S | 12 - > .../sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c | 29 +++ > .../sparc32/sparcv9/fpu/multiarch/s_fdim-generic.c | 4 + > .../sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c | 17 +- > .../sparcv9/fpu/multiarch/s_fdimf-generic.c | 3 + > .../sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c | 12 +- > .../sparc32/sparcv9/fpu/multiarch/s_fma-generic.c | 2 + > .../sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c | 12 +- > .../sparc32/sparcv9/fpu/multiarch/s_fmaf-generic.c | 2 + > .../sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf.c | 10 +- > .../sparcv9/fpu/multiarch/s_llrint-generic.S | 8 + > .../sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S | 24 -- > .../sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c | 36 +++ > .../sparcv9/fpu/multiarch/s_llrintf-generic.S | 4 + > .../sparc32/sparcv9/fpu/multiarch/s_llrintf.S | 17 -- > .../sparc32/sparcv9/fpu/multiarch/s_llrintf.c | 29 +++ > .../sparcv9/fpu/multiarch/s_nearbyint-generic.S | 9 + > .../sparc32/sparcv9/fpu/multiarch/s_nearbyint.S | 19 -- > .../sparc32/sparcv9/fpu/multiarch/s_nearbyint.c | 35 +++ > .../sparcv9/fpu/multiarch/s_nearbyintf-generic.S | 4 + > .../sparc32/sparcv9/fpu/multiarch/s_nearbyintf.S | 12 - > .../sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c | 29 +++ > .../sparc32/sparcv9/fpu/multiarch/s_rint-generic.S | 8 + > .../sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S | 19 -- > .../sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c | 35 +++ > .../sparcv9/fpu/multiarch/s_rintf-generic.S | 4 + > .../sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.S | 12 - > .../sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c | 29 +++ > sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile | 3 +- > .../sparc32/sparcv9/multiarch/memcpy-ultra1.S | 32 +++ > sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.S | 4 - > sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.c | 1 + > sysdeps/sparc/sparc32/sparcv9/multiarch/mempcpy.c | 1 + > .../sparc32/sparcv9/multiarch/memset-ultra1.S | 30 +++ > sysdeps/sparc/sparc32/sparcv9/multiarch/memset.S | 4 - > sysdeps/sparc/sparc32/sparcv9/multiarch/memset.c | 1 + > .../sparc/sparc32/sparcv9/multiarch/rtld-mempcpy.S | 1 + > sysdeps/sparc/sparc64/Makefile | 2 - > sysdeps/sparc/sparc64/cpu_relax.S | 67 ----- > sysdeps/sparc/sparc64/cpu_relax.c | 38 +++ > sysdeps/sparc/sparc64/fpu/multiarch/Makefile | 32 ++- > .../sparc/sparc64/fpu/multiarch/s_ceil-generic.c | 2 + > sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c | 19 +- > .../sparc/sparc64/fpu/multiarch/s_ceilf-generic.c | 2 + > sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c | 19 +- > .../sparc/sparc64/fpu/multiarch/s_finite-generic.S | 6 + > sysdeps/sparc/sparc64/fpu/multiarch/s_finite.S | 15 -- > sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c | 37 +++ > .../sparc64/fpu/multiarch/s_finitef-generic.S | 6 + > sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.S | 15 -- > sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c | 33 +++ > .../sparc/sparc64/fpu/multiarch/s_floor-generic.c | 2 + > sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c | 19 +- > .../sparc/sparc64/fpu/multiarch/s_floorf-generic.c | 2 + > sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c | 19 +- > .../sparc/sparc64/fpu/multiarch/s_fma-generic.c | 2 + > sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c | 19 +- > .../sparc/sparc64/fpu/multiarch/s_fmaf-generic.c | 2 + > sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c | 19 +- > .../sparc/sparc64/fpu/multiarch/s_isinf-generic.S | 6 + > sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.S | 15 -- > sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c | 37 +++ > .../sparc/sparc64/fpu/multiarch/s_isinff-generic.S | 6 + > sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.S | 15 -- > sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c | 33 +++ > .../sparc/sparc64/fpu/multiarch/s_isnan-generic.S | 6 + > sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.S | 15 -- > sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c | 37 +++ > .../sparc/sparc64/fpu/multiarch/s_isnanf-generic.S | 6 + > sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.S | 15 -- > sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c | 33 +++ > .../sparc/sparc64/fpu/multiarch/s_lrint-generic.S | 6 + > sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.S | 17 -- > sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c | 39 +++ > .../sparc/sparc64/fpu/multiarch/s_lrintf-generic.S | 6 + > sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.S | 17 -- > sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c | 39 +++ > .../sparc64/fpu/multiarch/s_nearbyint-generic.S | 4 + > sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.S | 12 - > sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c | 29 +++ > .../sparc64/fpu/multiarch/s_nearbyintf-generic.S | 4 + > sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.S | 12 - > sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c | 29 +++ > .../sparc/sparc64/fpu/multiarch/s_rint-generic.S | 4 + > sysdeps/sparc/sparc64/fpu/multiarch/s_rint.S | 12 - > sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c | 29 +++ > .../sparc/sparc64/fpu/multiarch/s_rintf-generic.S | 4 + > sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.S | 12 - > sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c | 29 +++ > .../sparc64/fpu/multiarch/s_signbit-generic.S | 6 + > sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S | 20 -- > sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c | 37 +++ > .../sparc64/fpu/multiarch/s_signbitf-generic.S | 2 + > sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S | 10 - > sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c | 28 +++ > .../sparc/sparc64/fpu/multiarch/s_trunc-generic.c | 2 + > sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c | 19 +- > .../sparc/sparc64/fpu/multiarch/s_truncf-generic.c | 2 + > sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c | 19 +- > sysdeps/sparc/sparc64/multiarch/Makefile | 7 +- > sysdeps/sparc/sparc64/multiarch/add_n-generic.S | 2 + > sysdeps/sparc/sparc64/multiarch/add_n.S | 56 ----- > sysdeps/sparc/sparc64/multiarch/add_n.c | 28 +++ > sysdeps/sparc/sparc64/multiarch/addmul_1-generic.S | 2 + > sysdeps/sparc/sparc64/multiarch/addmul_1.S | 56 ----- > sysdeps/sparc/sparc64/multiarch/addmul_1.c | 28 +++ > sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h | 40 +++ > sysdeps/sparc/sparc64/multiarch/ifunc-memset.h | 34 +++ > .../sparc64/multiarch/memcpy-ultra1.S} | 38 +-- > sysdeps/sparc/sparc64/multiarch/memcpy.S | 167 ------------ > sysdeps/sparc/sparc64/multiarch/memcpy.c | 33 +++ > sysdeps/sparc/sparc64/multiarch/mempcpy.c | 39 +++ > .../sparc64/multiarch/memset-ultra1.S} | 23 +- > sysdeps/sparc/sparc64/multiarch/memset.S | 124 --------- > sysdeps/sparc/sparc64/multiarch/memset.c | 42 ++++ > sysdeps/sparc/sparc64/multiarch/mul_1-generic.S | 2 + > sysdeps/sparc/sparc64/multiarch/mul_1.S | 56 ----- > sysdeps/sparc/sparc64/multiarch/mul_1.c | 28 +++ > sysdeps/sparc/sparc64/multiarch/rtld-mempcpy.S | 1 + > sysdeps/sparc/sparc64/multiarch/sub_n-generic.S | 2 + > sysdeps/sparc/sparc64/multiarch/sub_n.S | 56 ----- > sysdeps/sparc/sparc64/multiarch/sub_n.c | 28 +++ > sysdeps/sparc/sparc64/multiarch/submul_1-generic.S | 2 + > sysdeps/sparc/sparc64/multiarch/submul_1.S | 56 ----- > sysdeps/sparc/sparc64/multiarch/submul_1.c | 28 +++ > 159 files changed, 2222 insertions(+), 1745 deletions(-) > create mode 100644 sysdeps/arm/arm-ifunc.h > create mode 100644 sysdeps/arm/armv7/multiarch/ifunc-memchr.h > create mode 100644 sysdeps/arm/armv7/multiarch/ifunc-memcpy.h > create mode 100644 sysdeps/arm/armv7/multiarch/memchr.c > delete mode 100644 sysdeps/arm/armv7/multiarch/memchr_impl.S > create mode 100644 sysdeps/arm/armv7/multiarch/memchr_noneon.S > delete mode 100644 sysdeps/arm/armv7/multiarch/memcpy.S > create mode 100644 sysdeps/arm/armv7/multiarch/memcpy.c > create mode 100644 sysdeps/arm/armv7/multiarch/memcpy_arm.S > create mode 100644 sysdeps/arm/armv7/multiarch/rtld-memchr.S > create mode 100644 sysdeps/arm/armv7/multiarch/rtld-memcpy.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/cpu_relax.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/cpu_relax.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-generic.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-generic.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-generic.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-generic.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-generic.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-generic.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-generic.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-generic.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-generic.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-generic.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-generic.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-generic.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-generic.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-generic.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/mempcpy.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S > delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memset.S > create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memset.c > create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/rtld-mempcpy.S > delete mode 100644 sysdeps/sparc/sparc64/cpu_relax.S > create mode 100644 sysdeps/sparc/sparc64/cpu_relax.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-generic.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-generic.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_finite-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_finite.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_floor-generic.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-generic.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_fma-generic.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-generic.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_rint-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_rint.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-generic.S > delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-generic.c > create mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-generic.c > create mode 100644 sysdeps/sparc/sparc64/multiarch/add_n-generic.S > delete mode 100644 sysdeps/sparc/sparc64/multiarch/add_n.S > create mode 100644 sysdeps/sparc/sparc64/multiarch/add_n.c > create mode 100644 sysdeps/sparc/sparc64/multiarch/addmul_1-generic.S > delete mode 100644 sysdeps/sparc/sparc64/multiarch/addmul_1.S > create mode 100644 sysdeps/sparc/sparc64/multiarch/addmul_1.c > create mode 100644 sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h > create mode 100644 sysdeps/sparc/sparc64/multiarch/ifunc-memset.h > rename sysdeps/{arm/armv7/multiarch/memchr.S => sparc/sparc64/multiarch/memcpy-ultra1.S} (55%) > delete mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy.S > create mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy.c > create mode 100644 sysdeps/sparc/sparc64/multiarch/mempcpy.c > rename sysdeps/{unix/sysv/linux/x86_64/x32/getcpu.c => sparc/sparc64/multiarch/memset-ultra1.S} (67%) > delete mode 100644 sysdeps/sparc/sparc64/multiarch/memset.S > create mode 100644 sysdeps/sparc/sparc64/multiarch/memset.c > create mode 100644 sysdeps/sparc/sparc64/multiarch/mul_1-generic.S > delete mode 100644 sysdeps/sparc/sparc64/multiarch/mul_1.S > create mode 100644 sysdeps/sparc/sparc64/multiarch/mul_1.c > create mode 100644 sysdeps/sparc/sparc64/multiarch/rtld-mempcpy.S > create mode 100644 sysdeps/sparc/sparc64/multiarch/sub_n-generic.S > delete mode 100644 sysdeps/sparc/sparc64/multiarch/sub_n.S > create mode 100644 sysdeps/sparc/sparc64/multiarch/sub_n.c > create mode 100644 sysdeps/sparc/sparc64/multiarch/submul_1-generic.S > delete mode 100644 sysdeps/sparc/sparc64/multiarch/submul_1.S > create mode 100644 sysdeps/sparc/sparc64/multiarch/submul_1.c >