From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 96853 invoked by alias); 26 Oct 2017 19:07:06 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 96827 invoked by uid 89); 26 Oct 2017 19:07:06 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-8.6 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS,UNWANTED_LANGUAGE_BODY autolearn=ham version=3.3.2 spammy= X-HELO: mail-qt0-f193.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=W7Wq5e0E7vvqkqg/F7nw4V1JoKXBWWHMwl40FoskRpU=; b=CSuaPA5HzIoJrFwvXd8PlkREhA9XlgmE4wKomMNP55XbuNAuKAu0IsWQjJ2jjTtoaj 7W8eVGw8Dvcobi5iDsGEk2eA9j1XsmW+YRBy14sthadXgs2t46+At0NKbriqlpi2bFCD yj5NRK4MjaYwhWkSw5J/4EZkeXawo/SxngTYN9/mj7G84TMSHIKjyiLV/kGEtXEKEiEV 0D2MIguJoYwk/4VLSqtg0Nx6Anej7GpXbR3uIZ8LF0btnPH9JHwAV9zbnpoforjUBpwe w/aQbSh/tF56Ehr8irA+t6eeTF3/zELQKuGl1/+eZzrHsERQgpptvwG6jBrkpX1KLDPY eHOg== X-Gm-Message-State: AMCzsaVQGVHY0dSkbHAqEaS2d/yyLwsEwN7Vy99iU6jGy3iJ9Uzc9G7W j4mnuNS1LR0OBWyZU6wNA+NKFb43jFk= X-Google-Smtp-Source: ABhQp+QcdMBxCr2CwL3WlovSabETPyORpbpKf7X9hbu5CRQW7YqWpGVxmXC0Gb5LGhc1bC6Jip+GlA== X-Received: by 10.200.43.193 with SMTP id n1mr35882250qtn.101.1509044819701; Thu, 26 Oct 2017 12:06:59 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH 00/25] Refactor IFUNC selection in C Date: Thu, 26 Oct 2017 19:07:00 -0000 Message-Id: <1509044813-9951-1-git-send-email-adhemerval.zanella@linaro.org> X-SW-Source: 2017-10/txt/msg01225.txt.bz2 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 -- 2.7.4