public inbox for glibc-cvs@sourceware.org help / color / mirror / Atom feed
From: Siddhesh Poyarekar <siddhesh@sourceware.org> To: glibc-cvs@sourceware.org Subject: [glibc/siddhesh/gai-cleanup2] s390: Remove bzero optimizations Date: Tue, 1 Mar 2022 02:39:00 +0000 (GMT) [thread overview] Message-ID: <20220301023900.7FD8C385841E@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dbf37d6d0eccc01e6f5574a01eae64bb54a491ba commit dbf37d6d0eccc01e6f5574a01eae64bb54a491ba Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Thu Feb 10 14:47:17 2022 -0300 s390: Remove bzero optimizations The symbol is not present in current POSIX specification and compiler already generates memset call. Diff: --- sysdeps/s390/Makefile | 2 +- sysdeps/s390/bzero.c | 47 -------------------------------- sysdeps/s390/ifunc-memset.h | 9 ------ sysdeps/s390/memset-z900.S | 32 +--------------------- sysdeps/s390/multiarch/ifunc-impl-list.c | 15 ---------- 5 files changed, 2 insertions(+), 103 deletions(-) diff --git a/sysdeps/s390/Makefile b/sysdeps/s390/Makefile index ade8663218..5b6a96579c 100644 --- a/sysdeps/s390/Makefile +++ b/sysdeps/s390/Makefile @@ -66,7 +66,7 @@ endif endif ifeq ($(subdir),string) -sysdep_routines += bzero memset memset-z900 \ +sysdep_routines += memset memset-z900 \ memcmp memcmp-z900 \ mempcpy memcpy memcpy-z900 \ memmove memmove-c \ diff --git a/sysdeps/s390/bzero.c b/sysdeps/s390/bzero.c deleted file mode 100644 index 1f0a03e2ed..0000000000 --- a/sysdeps/s390/bzero.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Multiple versions of bzero. - Copyright (C) 2018-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#include <ifunc-memset.h> -#if HAVE_MEMSET_IFUNC -# include <string.h> -# include <ifunc-resolve.h> - -# if HAVE_MEMSET_Z900_G5 -extern __typeof (__bzero) BZERO_Z900_G5 attribute_hidden; -# endif - -# if HAVE_MEMSET_Z10 -extern __typeof (__bzero) BZERO_Z10 attribute_hidden; -# endif - -# if HAVE_MEMSET_Z196 -extern __typeof (__bzero) BZERO_Z196 attribute_hidden; -# endif - -s390_libc_ifunc_expr (__bzero, __bzero, - ({ - s390_libc_ifunc_expr_stfle_init (); - (HAVE_MEMSET_Z196 && S390_IS_Z196 (stfle_bits)) - ? BZERO_Z196 - : (HAVE_MEMSET_Z10 && S390_IS_Z10 (stfle_bits)) - ? BZERO_Z10 - : BZERO_DEFAULT; - }) - ) -weak_alias (__bzero, bzero) -#endif diff --git a/sysdeps/s390/ifunc-memset.h b/sysdeps/s390/ifunc-memset.h index db15df9bc1..7098332e92 100644 --- a/sysdeps/s390/ifunc-memset.h +++ b/sysdeps/s390/ifunc-memset.h @@ -25,19 +25,16 @@ #if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT # define MEMSET_DEFAULT MEMSET_Z196 -# define BZERO_DEFAULT BZERO_Z196 # define HAVE_MEMSET_Z900_G5 0 # define HAVE_MEMSET_Z10 0 # define HAVE_MEMSET_Z196 1 #elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT # define MEMSET_DEFAULT MEMSET_Z10 -# define BZERO_DEFAULT BZERO_Z10 # define HAVE_MEMSET_Z900_G5 0 # define HAVE_MEMSET_Z10 1 # define HAVE_MEMSET_Z196 HAVE_MEMSET_IFUNC #else # define MEMSET_DEFAULT MEMSET_Z900_G5 -# define BZERO_DEFAULT BZERO_Z900_G5 # define HAVE_MEMSET_Z900_G5 1 # define HAVE_MEMSET_Z10 HAVE_MEMSET_IFUNC # define HAVE_MEMSET_Z196 HAVE_MEMSET_IFUNC @@ -51,24 +48,18 @@ #if HAVE_MEMSET_Z900_G5 # define MEMSET_Z900_G5 __memset_default -# define BZERO_Z900_G5 __bzero_default #else # define MEMSET_Z900_G5 NULL -# define BZERO_Z900_G5 NULL #endif #if HAVE_MEMSET_Z10 # define MEMSET_Z10 __memset_z10 -# define BZERO_Z10 __bzero_z10 #else # define MEMSET_Z10 NULL -# define BZERO_Z10 NULL #endif #if HAVE_MEMSET_Z196 # define MEMSET_Z196 __memset_z196 -# define BZERO_Z196 __bzero_z196 #else # define MEMSET_Z196 NULL -# define BZERO_Z196 NULL #endif diff --git a/sysdeps/s390/memset-z900.S b/sysdeps/s390/memset-z900.S index d454743f75..7adb466bb1 100644 --- a/sysdeps/s390/memset-z900.S +++ b/sysdeps/s390/memset-z900.S @@ -24,11 +24,7 @@ /* INPUT PARAMETERS - MEMSET %r2 = address of memory area %r3 = byte to fill memory with - %r4 = number of bytes to fill. - - INPUT PARAMETERS - BZERO - %r2 = address of memory area - %r3 = number of bytes to fill. */ + %r4 = number of bytes to fill. */ .text @@ -47,12 +43,6 @@ # define BRCTG brct # endif /* ! defined __s390x__ */ -ENTRY(BZERO_Z900_G5) - LGR %r4,%r3 - xr %r3,%r3 - j .L_Z900_G5_start -END(BZERO_Z900_G5) - ENTRY(MEMSET_Z900_G5) .L_Z900_G5_start: #if defined __s390x__ @@ -100,14 +90,6 @@ END(MEMSET_Z900_G5) #endif /* HAVE_MEMSET_Z900_G5 */ #if HAVE_MEMSET_Z10 -ENTRY(BZERO_Z10) - .machine "z10" - .machinemode "zarch_nohighgprs" - lgr %r4,%r3 - xr %r3,%r3 - j .L_Z10_start -END(BZERO_Z10) - ENTRY(MEMSET_Z10) .L_Z10_start: .machine "z10" @@ -141,14 +123,6 @@ END(MEMSET_Z10) #endif /* HAVE_MEMSET_Z10 */ #if HAVE_MEMSET_Z196 -ENTRY(BZERO_Z196) - .machine "z196" - .machinemode "zarch_nohighgprs" - lgr %r4,%r3 - xr %r3,%r3 - j .L_Z196_start -END(BZERO_Z196) - ENTRY(MEMSET_Z196) .L_Z196_start: .machine "z196" @@ -204,10 +178,6 @@ END(__memset_mvcle) /* If we don't use ifunc, define an alias for memset here. Otherwise see sysdeps/s390/memset.c. */ strong_alias (MEMSET_DEFAULT, memset) -/* Same for bzero. If ifunc is used, see - sysdeps/s390/bzero.c. */ -strong_alias (BZERO_DEFAULT, __bzero) -weak_alias (__bzero, bzero) #endif #if defined SHARED && IS_IN (libc) diff --git a/sysdeps/s390/multiarch/ifunc-impl-list.c b/sysdeps/s390/multiarch/ifunc-impl-list.c index 29598c2a6e..c1902b2c26 100644 --- a/sysdeps/s390/multiarch/ifunc-impl-list.c +++ b/sysdeps/s390/multiarch/ifunc-impl-list.c @@ -102,21 +102,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, # endif # if HAVE_MEMSET_Z900_G5 IFUNC_IMPL_ADD (array, i, memset, 1, MEMSET_Z900_G5) -# endif - ) - - /* Note: bzero is implemented in memset. */ - IFUNC_IMPL (i, name, bzero, -# if HAVE_MEMSET_Z196 - IFUNC_IMPL_ADD (array, i, bzero, - S390_IS_Z196 (stfle_bits), BZERO_Z196) -# endif -# if HAVE_MEMSET_Z10 - IFUNC_IMPL_ADD (array, i, bzero, - S390_IS_Z10 (stfle_bits), BZERO_Z10) -# endif -# if HAVE_MEMSET_Z900_G5 - IFUNC_IMPL_ADD (array, i, bzero, 1, BZERO_Z900_G5) # endif ) #endif /* HAVE_MEMSET_IFUNC */
reply other threads:[~2022-03-01 2:39 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220301023900.7FD8C385841E@sourceware.org \ --to=siddhesh@sourceware.org \ --cc=glibc-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).