Commit Graph

520 Commits

Author SHA1 Message Date
Stefan Liebler
c89e669a70 S390: Regenerate ULPs.
The update is needed for builds with -O3 and -march>=z13.

ChangeLog:

	* sysdeps/s390/fpu/libm-test-ulps: Regenerated.
2019-06-25 15:14:17 +02:00
Andreas Schwab
4802be92c8 Fix iconv buffer handling with IGNORE error handler (bug #18830) 2019-06-04 14:03:04 +02:00
Stefan Liebler
421749d693 S390: Add arch13 memmem ifunc variant.
This patch introduces the new arch13 ifunc variant for memmem.
For needles longer than 9 bytes it is relying on the common-code
implementation.  For shorter needles it is using the new vstrs instruction
which is able to search a substring within a vector register.

ChangeLog:

	* sysdeps/s390/Makefile (sysdep_routines): Add memmem-arch13.
	* sysdeps/s390/ifunc-memmem.h (HAVE_MEMMEM_ARCH13, MEMMEM_ARCH13,
	MEMMEM_Z13_ONLY_USED_AS_FALLBACK, HAVE_MEMMEM_IFUNC_AND_ARCH13_SUPPORT):
	New defines.
	* sysdeps/s390/memmem-arch13.S: New file.
	* sysdeps/s390/memmem-vx.c: Omit GI symbol for z13 memmem ifunc variant
	if it is only used as fallback.
	* sysdeps/s390/memmem.c (memmem): Add arch13 variant in ifunc selector.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Add ifunc variant for arch13 memmem.
2019-03-22 11:14:09 +01:00
Stefan Liebler
6f47401bd5 S390: Add arch13 strstr ifunc variant.
This patch introduces the new arch13 ifunc variant for strstr.
For needles longer than 9 charachters it is relying on the common-code
implementation.  For shorter needles it is using the new vstrs instruction
which is able to search a substring within a vector register.

ChangeLog:

	* sysdeps/s390/Makefile (sysdep_routines): Add strstr-arch13.
	* sysdeps/s390/ifunc-strstr.h (HAVE_STRSTR_ARCH13, STRSTR_ARCH13,
	STRSTR_Z13_ONLY_USED_AS_FALLBACK, HAVE_STRSTR_IFUNC_AND_ARCH13_SUPPORT):
	New defines.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Add ifunc variant for arch13 strstr.
	* sysdeps/s390/strstr-arch13.S: New file.
	* sysdeps/s390/strstr-vx.c: Omit GI symbol for z13 strstr ifunc variant
	if it is only used as fallback.
	* sysdeps/s390/strstr.c (strstr): Add arch13 variant in ifunc selector.
2019-03-22 11:14:08 +01:00
Stefan Liebler
96fbb9a328 S390: Add arch13 memmove ifunc variant.
This patch introduces the new arch13 ifunc variant for memmove.
For the forward or non-overlapping case it is just using memcpy.
For the backward case it relies on the new instruction mvcrl.
The instruction copies up to 256 bytes at once.
In case of an overlap, it copies the bytes like copying them
one by one starting from right to left.

ChangeLog:

	* sysdeps/s390/ifunc-memcpy.h (HAVE_MEMMOVE_ARCH13, MEMMOVE_ARCH13
	HAVE_MEMMOVE_IFUNC_AND_ARCH13_SUPPORT): New defines.
	* sysdeps/s390/memcpy-z900.S: Add arch13 memmove implementation.
	* sysdeps/s390/memmove.c (memmove): Add arch13 variant in
	ifunc selector.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Add ifunc variant for arch13 memmove.
	* sysdeps/s390/multiarch/ifunc-resolve.h (S390_STFLE_BITS_ARCH13_MIE3,
	S390_IS_ARCH13_MIE3): New defines.
2019-03-22 11:14:08 +01:00
Stefan Liebler
a899a5512f S390: Add configure check to detect support for arch13.
Add two configure checks which detect if arch13 is supported
by the assembler at all - by explicitely setting the machine -
and if it is supported with default settings.

ChangeLog:

	* config.h.in (HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT,
	HAVE_S390_ARCH13_ASM_SUPPORT): New undefine.
	* sysdeps/s390/configure.ac: Add checks for arch13 support.
	* sysdeps/s390/configure: Regenerated.
2019-03-22 11:14:08 +01:00
Stefan Liebler
1a7df49c92 S390: Add new hwcap values for new cpu architecture arch13.
The new hwcap values indicate support for:
-"Vector-Enhancements Facility 2" (tag "vxe2", hwcap 2^15)
-"Vector-Packed-Decimal-Enhancement Facility" (tag "vxp", hwcap 2^16)
-"Enhanced-Sort Facility" (tag "sort", hwcap 2^17)
-"Deflate-Conversion Facility" (tag "dflt", hwcap 2^18)

The vxe2 hwcap is also marked as important hwcap.

ChangeLog:

	* sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags):
	Add vxe2, vxp, dflt, sort flags.
	* sysdeps/s390/dl-procinfo.h: Add HWCAP_S390_VXRS_EXT2,
	HWCAP_S390_VXRS_PDE, HWCAP_S390_SORT, HWCAP_S390_DFLT
	capabilities.
	(HWCAP_IMPORTANT): Add HWCAP_S390_VXRS_EXT2.
	* sysdeps/unix/sysv/linux/s390/bits/hwcap.h
	(HWCAP_S390_VXRS_EXT2, HWCAP_S390_VXRS_PDE, HWCAP_S390_SORT,
	HWCAP_S390_DFLT): Define.
2019-03-22 11:14:07 +01:00
Stefan Liebler
61f5e9470f S390: Mark vx and vxe as important hwcap.
This patch adds vx and vxe as important hwcaps
which allows one to provide shared libraries
tuned for platforms with non-vx/-vxe, vx or vxe.

ChangeLog:

	* sysdeps/s390/dl-procinfo.h (HWCAP_IMPORTANT):
	Add HWCAP_S390_VX and HWCAP_S390_VXE.
2019-03-21 09:14:26 +01:00
Florian Weimer
a0a0dc8317 Remove obsolete, never-implemented XSI STREAMS declarations
The stub implementations are turned into compat symbols.

Linux actually has two reserved system call numbers (for getpmsg
and putpmsg), but these system calls have never been implemented,
and there are no plans to implement them, so this patch replaces
the wrappers with the generic stubs.

According to <https://bugzilla.redhat.com/show_bug.cgi?id=436349>,
the presence of the XSI STREAMS declarations is a minor portability
hazard because they are not actually implemented.

This commit does not change the TIRPC support code in
sunrpc/rpc_svcout.c.  It uses additional XTI functionality and
therefore never worked with glibc.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2019-03-14 15:44:15 +01:00
Stefan Liebler
ce6ddae036 S390: Increase function alignment to 16 bytes.
Set the default function alignment to 16 bytes in order to
get rid of some unwanted performance effects.

Please see also GCC commit "S/390: Set default function
alignment to 16." (Subversion revision 262817)

ChangeLog:

	* sysdeps/s390/s390-64/sysdep.h(ENTRY): Use alignment of 16byte.
	* sysdeps/s390/s390-32/sysdep.h: Likewise.
2019-03-04 10:48:42 +01:00
Stefan Liebler
928b305d3f S390: Fix introduction of __wcscpy and weak wcscpy symbols.
The recent commit 81a1443941
has introduced __wcscpy, __GI___wcscpy and the weak alias wcscpy.
This patch also introduces those symbols if glibc is build
with CFLAGS="-march=z13" where the ifunc is omitted.

ChangeLog:

	* sysdeps/s390/wcscpy-vx.S: Add strong aliases to
	__wcscpy, __GI___wcscpy and weak alias to wcscpy.
2019-03-01 16:30:30 +01:00
Adhemerval Zanella
81a1443941 wcsmbs: optimize wcscat
This patch rewrites wcscat using wcslen and wcscpy.  This is similar to
the optimization done on strcat by 6e46de42fe.

The strcpy changes are mainly to add the internal alias to avoid PLT
calls.

Checked on x86_64-linux-gnu and a build against the affected
architectures.

	* include/wchar.h (__wcscpy): New prototype.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c
	(__wcscpy): Route internal symbol to generic implementation.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c (wcscpy):
	Add internal __wcscpy alias.
	* sysdeps/powerpc/powerpc64/multiarch/wcscpy.c (wcscpy): Likewise.
	* sysdeps/s390/wcscpy.c (wcscpy): Likewise.
	* sysdeps/x86_64/multiarch/wcscpy.c (wcscpy): Likewise.
	* wcsmbs/wcscpy.c (wcscpy): Add
	* sysdeps/x86_64/multiarch/wcscpy-c.c (WCSCPY): Adjust macro to
	use generic implementation.
	* wcsmbs/wcscat.c (wcscat): Rewrite using wcslen and wcscpy.
2019-02-27 10:00:37 -03:00
Joseph Myers
e0cb7b6131 Add and move fall-through comments in system-specific code.
This patch fixes -Wimplicit-fallthrough warnings in system-specific
code that show up building glibc with -Wextra, by adding fall-through
comments, or moving existing such comments to the place required for
them to work (immediately before the case label being fallen through).

Tested with build-many-glibcs.py.

	* sysdeps/i386/dl-machine.h (elf_machine_rela): Add fall-through
	comments.
	* sysdeps/m68k/m680x0/fpu/s_cexp_template.c (s(__cexp)): Likewise.
	* sysdeps/m68k/memcopy.h (WORD_COPY_FWD): Likewise.
	(WORD_COPY_BWD): Likewise.
	* sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.
	* sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela):
	Likewise.
	* sysdeps/s390/iso-8859-1_cp037_z900.c (TR_LOOP): Likewise.
	* sysdeps/mips/dl-machine.h (elf_machine_reloc): Move fall-through
	comment.
	* sysdeps/mips/dl-trampoline.c (__dl_runtime_resolve): Likewise.
2019-02-26 02:09:18 +00:00
Joseph Myers
a04549c194 Break more lines before not after operators.
This patch makes further coding style fixes where code was breaking
lines after an operator, contrary to the GNU Coding Standards.  As
with the previous patch, it is limited to files following a reasonable
approximation to GNU style already, and is not exhaustive; more such
issues remain to be fixed.

Tested for x86_64, and with build-many-glibcs.py.

	* dirent/dirent.h [!_DIRENT_HAVE_D_NAMLEN
	&& _DIRENT_HAVE_D_RECLEN] (_D_ALLOC_NAMLEN): Break lines before
	rather than after operators.
	* elf/cache.c (print_cache): Likewise.
	* gshadow/fgetsgent_r.c (__fgetsgent_r): Likewise.
	* htl/pt-getattr.c (__pthread_getattr_np): Likewise.
	* hurd/hurdinit.c (_hurd_setproc): Likewise.
	* hurd/hurdkill.c (_hurd_sig_post): Likewise.
	* hurd/hurdlookup.c (__file_name_lookup_under): Likewise.
	* hurd/hurdsig.c (_hurd_internal_post_signal): Likewise.
	(reauth_proc): Likewise.
	* hurd/lookup-at.c (__file_name_lookup_at): Likewise.
	(__file_name_split_at): Likewise.
	(__directory_name_split_at): Likewise.
	* hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Likewise.
	* hurd/port2fd.c (_hurd_port2fd): Likewise.
	* iconv/gconv_dl.c (do_print): Likewise.
	* inet/netinet/in.h (struct sockaddr_in): Likewise.
	* libio/wstrops.c (_IO_wstr_seekoff): Likewise.
	* locale/setlocale.c (new_composite_name): Likewise.
	* malloc/memusagestat.c (main): Likewise.
	* misc/fstab.c (fstab_convert): Likewise.
	* nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
	Likewise.
	* nss/nss_compat/compat-grp.c (getgrent_next_nss): Likewise.
	(getgrent_next_file): Likewise.
	(internal_getgrnam_r): Likewise.
	(internal_getgrgid_r): Likewise.
	* nss/nss_compat/compat-initgroups.c (getgrent_next_nss):
	Likewise.
	(internal_getgrent_r): Likewise.
	* nss/nss_compat/compat-pwd.c (getpwent_next_nss_netgr): Likewise.
	(getpwent_next_nss): Likewise.
	(getpwent_next_file): Likewise.
	(internal_getpwnam_r): Likewise.
	(internal_getpwuid_r): Likewise.
	* nss/nss_compat/compat-spwd.c (getspent_next_nss_netgr):
	Likewise.
	(getspent_next_nss): Likewise.
	(internal_getspnam_r): Likewise.
	* pwd/fgetpwent_r.c (__fgetpwent_r): Likewise.
	* shadow/fgetspent_r.c (__fgetspent_r): Likewise.
	* string/strchr.c (STRCHR): Likewise.
	* string/strchrnul.c (STRCHRNUL): Likewise.
	* sysdeps/aarch64/fpu/fpu_control.h (_FPU_FPCR_IEEE): Likewise.
	* sysdeps/aarch64/sfp-machine.h (_FP_CHOOSENAN): Likewise.
	* sysdeps/csky/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/generic/memcopy.h (PAGE_COPY_FWD_MAYBE): Likewise.
	* sysdeps/generic/symbol-hacks.h (__stack_chk_fail_local):
	Likewise.
	* sysdeps/gnu/netinet/ip_icmp.h (ICMP_INFOTYPE): Likewise.
	* sysdeps/gnu/updwtmp.c (TRANSFORM_UTMP_FILE_NAME): Likewise.
	* sysdeps/gnu/utmp_file.c (TRANSFORM_UTMP_FILE_NAME): Likewise.
	* sysdeps/hppa/jmpbuf-unwind.h (_JMPBUF_UNWINDS): Likewise.
	* sysdeps/mach/hurd/bits/stat.h (S_ISPARE): Likewise.
	* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Likewise.
	(open_file): Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c
	(pthread_mutexattr_setprotocol): Likewise.
	* sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.
	* sysdeps/mach/hurd/mmap.c (__mmap): Likewise.
	* sysdeps/mach/hurd/ptrace.c (ptrace): Likewise.
	* sysdeps/mach/hurd/spawni.c (__spawni): Likewise.
	* sysdeps/microblaze/dl-machine.h (elf_machine_type_class):
	Likewise.
	(elf_machine_rela): Likewise.
	* sysdeps/mips/mips32/sfp-machine.h (_FP_CHOOSENAN): Likewise.
	* sysdeps/mips/mips64/sfp-machine.h (_FP_CHOOSENAN): Likewise.
	* sysdeps/mips/sys/asm.h (multiple #if conditionals): Likewise.
	* sysdeps/posix/rename.c (rename): Likewise.
	* sysdeps/powerpc/novmx-sigjmp.c (__novmx__sigjmp_save): Likewise.
	* sysdeps/powerpc/sigjmp.c (__vmx__sigjmp_save): Likewise.
	* sysdeps/s390/fpu/fenv_libc.h (FPC_VALID_MASK): Likewise.
	* sysdeps/s390/utf8-utf16-z9.c (gconv_end): Likewise.
	* sysdeps/unix/grantpt.c (grantpt): Likewise.
	* sysdeps/unix/sysv/linux/a.out.h (N_TXTOFF): Likewise.
	* sysdeps/unix/sysv/linux/updwtmp.c (TRANSFORM_UTMP_FILE_NAME):
	Likewise.
	* sysdeps/unix/sysv/linux/utmp_file.c (TRANSFORM_UTMP_FILE_NAME):
	Likewise.
	* sysdeps/x86/cpu-features.c (get_common_indices): Likewise.
	* time/tzfile.c (__tzfile_compute): Likewise.
2019-02-25 13:19:19 +00:00
Stefan Liebler
94eeeec04b S390: Fix introduction of __wmemcmp and weak wmemcmp symbols.
The recent commit 65f7767a91
has introduced __wmemcmp and the weak alias wmemcmp.
This patch also introduces those symbols if glibc is build
with CFLAGS="-march=z13" where the ifunc is omitted.

ChangeLog:

	* sysdeps/s390/wmemcmp-vx.S: Add strong alias to
	__wmemcmp and weak alias to wmemcmp.
2019-02-06 09:10:31 +01:00
Andreas Schwab
65f7767a91 Fix handling of collating elements in fnmatch (bug 17396, bug 16976)
This fixes the same bug in fnmatch that was fixed by commit 7e2f0d2d77 for
regexp matching.  As a side effect it also removes the use of an unbound
VLA.
2019-02-04 15:45:02 +01:00
Joseph Myers
04277e02d7 Update copyright dates with scripts/update-copyrights.
* All files with FSF copyright notices: Update copyright dates
	using scripts/update-copyrights.
	* locale/programs/charmap-kw.h: Regenerated.
	* locale/programs/locfile-kw.h: Likewise.
2019-01-01 00:11:28 +00:00
Stefan Liebler
80190d2b0e S390: Cleanup ifunc-resolve.h.
The ifunc macros s390_vx_libc* are no longer used and
can be removed as all users are now relying on
s390_libc_ifunc_expr.

The same applies to s390_libc_ifunc.  The macro
s390_libc_ifunc_init is now renamed to
s390_libc_ifunc_expr_stfle_init and the users are
adjusted accordingly.

ChangeLog:

	* sysdeps/s390/multiarch/ifunc-resolve.h
	(s390_vx_libc_ifunc, s390_vx_libc_ifunc_redirected,
	s390_vx_libc_ifunc2, s390_vx_libc_ifunc_init,
	s390_vx_libc_ifunc2_redirected, s390_libc_ifunc):
	Delete macro definition.
	(s390_libc_ifunc_init): Rename to
	s390_libc_ifunc_expr_stfle_init.
	* sysdeps/s390/bzero: Use
	s390_libc_ifunc_expr_stfle_init instead of
	s390_libc_ifunc_init.
	* sysdeps/s390/memcmp.c: Likewise.
	* sysdeps/s390/memcpy.c: Likewise.
	* sysdeps/s390/mempcpy.c: Likewise.
	* sysdeps/s390/memset.c: Likewise.
2018-12-18 13:57:25 +01:00
Stefan Liebler
12f0dcb8da S390: Refactor gconv_simple ifunc handling.
The ifunc handling for various __gconv_transform_* functions
which are using IFUNC on s390x are adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Instead those functions are just an alias to the vector variants.

Furthermore the ifunc-macro s390_libc_ifunc_expr is now used instead of
s390_vx_libc_ifunc.

ChangeLog:

	* sysdeps/s390/multiarch/gconv_simple.c (ICONV_VX_IFUNC):
	Define macro dependent on HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT.
2018-12-18 13:57:25 +01:00
Stefan Liebler
25654a8c74 S390: Refactor wmemcmp ifunc handling.
The ifunc handling for wmemcmp is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wmemcmp variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wmemcmp variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wmemcmp.
	* sysdeps/s390/multiarch/wmemcmp-c.c: Move to ...
	* sysdeps/s390/wmemcmp-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wmemcmp-vx.S: Move to ...
	* sysdeps/s390/wmemcmp-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wmemcmp.c: Move to ...
	* sysdeps/s390/wmemcmp.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wmemcmp.h: New file.
2018-12-18 13:57:25 +01:00
Stefan Liebler
d2a7436c1c S390: Refactor wmemset ifunc handling.
The ifunc handling for wmemset is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.
Glibc internal calls will use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wmemset variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wmemset variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wmemset.
	* sysdeps/s390/multiarch/wmemset-c.c: Move to ...
	* sysdeps/s390/wmemset-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wmemset-vx.S: Move to ...
	* sysdeps/s390/wmemset-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wmemset.c: Move to ...
	* sysdeps/s390/wmemset.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wmemset.h: New file.
2018-12-18 13:57:24 +01:00
Stefan Liebler
c62534ae52 S390: Refactor wmemchr ifunc handling.
The ifunc handling for wmemchr is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.
Glibc internal calls will use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wmemchr variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wmemchr variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wmemchr.
	* sysdeps/s390/multiarch/wmemchr-c.c: Move to ...
	* sysdeps/s390/wmemchr-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wmemchr-vx.S: Move to ...
	* sysdeps/s390/wmemchr-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wmemchr.c: Move to ...
	* sysdeps/s390/wmemchr.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wmemchr.h: New file.
2018-12-18 13:57:24 +01:00
Stefan Liebler
79b44cf611 S390: Refactor wcscspn ifunc handling.
The ifunc handling for wcscspn is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcscspn variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcscspn variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcscspn.
	* sysdeps/s390/multiarch/wcscspn-c.c: Move to ...
	* sysdeps/s390/wcscspn-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcscspn-vx.S: Move to ...
	* sysdeps/s390/wcscspn-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcscspn.c: Move to ...
	* sysdeps/s390/wcscspn.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcscspn.h: New file.
2018-12-18 13:57:23 +01:00
Stefan Liebler
8e87c1f6d4 S390: Refactor wcspbrk ifunc handling.
The ifunc handling for wcspbrk is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.
Glibc internal calls will use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcspbrk variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcspbrk variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcspbrk.
	* sysdeps/s390/multiarch/wcspbrk-c.c: Move to ...
	* sysdeps/s390/wcspbrk-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcspbrk-vx.S: Move to ...
	* sysdeps/s390/wcspbrk-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcspbrk.c: Move to ...
	* sysdeps/s390/wcspbrk.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcspbrk.h: New file.
2018-12-18 13:57:23 +01:00
Stefan Liebler
8507e83190 S390: Refactor wcsspn ifunc handling.
The ifunc handling for wcsspn is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.
Glibc internal calls will use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcsspn variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcsspn variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcsspn.
	* sysdeps/s390/multiarch/wcsspn-c.c: Move to ...
	* sysdeps/s390/wcsspn-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsspn-vx.S: Move to ...
	* sysdeps/s390/wcsspn-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsspn.c: Move to ...
	* sysdeps/s390/wcsspn.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcsspn.h: New file.
2018-12-18 13:57:23 +01:00
Stefan Liebler
4753713aae S390: Refactor wcsrchr ifunc handling.
The ifunc handling for wcsrchr is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcsrchr variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcsrchr variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcsrchr.
	* sysdeps/s390/multiarch/wcsrchr-c.c: Move to ...
	* sysdeps/s390/wcsrchr-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsrchr-vx.S: Move to ...
	* sysdeps/s390/wcsrchr-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsrchr.c: Move to ...
	* sysdeps/s390/wcsrchr.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcsrchr.h: New file.
2018-12-18 13:57:22 +01:00
Stefan Liebler
c09c1b6f01 S390: Refactor wcschrnul ifunc handling.
The ifunc handling for wcschrnul is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcschrnul variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcschrnul variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcschrnul.
	* sysdeps/s390/multiarch/wcschrnul-c.c: Move to ...
	* sysdeps/s390/wcschrnul-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcschrnul-vx.S: Move to ...
	* sysdeps/s390/wcschrnul-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcschrnul.c: Move to ...
	* sysdeps/s390/wcschrnul.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcschrnul.h: New file.
2018-12-18 13:57:22 +01:00
Stefan Liebler
cf3ccc31a3 S390: Refactor wcschr ifunc handling.
The ifunc handling for wcschr is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.
Glibc internal calls will use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcschr variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcschr variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcschr.
	* sysdeps/s390/multiarch/wcschr-c.c: Move to ...
	* sysdeps/s390/wcschr-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcschr-vx.S: Move to ...
	* sysdeps/s390/wcschr-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcschr.c: Move to ...
	* sysdeps/s390/wcschr.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcschr.h: New file.
2018-12-18 13:57:22 +01:00
Stefan Liebler
e9873e1d47 S390: Refactor wcsncmp ifunc handling.
The ifunc handling for wcsncmp is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcsncmp variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcsncmp variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcsncmp.
	* sysdeps/s390/multiarch/wcsncmp-c.c: Move to ...
	* sysdeps/s390/wcsncmp-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsncmp-vx.S: Move to ...
	* sysdeps/s390/wcsncmp-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsncmp.c: Move to ...
	* sysdeps/s390/wcsncmp.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcsncmp.h: New file.
2018-12-18 13:57:21 +01:00
Stefan Liebler
3459e23dd4 S390: Refactor wcscmp ifunc handling.
The ifunc handling for wcscmp is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.
Glibc internal calls will then also use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcscmp variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcscmp variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcscmp.
	* sysdeps/s390/multiarch/wcscmp-c.c: Move to ...
	* sysdeps/s390/wcscmp-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcscmp-vx.S: Move to ...
	* sysdeps/s390/wcscmp-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcscmp.c: Move to ...
	* sysdeps/s390/wcscmp.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcscmp.h: New file.
2018-12-18 13:57:21 +01:00
Stefan Liebler
814a76e1bc S390: Refactor wcsncat ifunc handling.
The ifunc handling for wcsncat is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcsncat variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcsncat variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcsncat.
	* sysdeps/s390/multiarch/wcsncat-c.c: Move to ...
	* sysdeps/s390/wcsncat-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsncat-vx.S: Move to ...
	* sysdeps/s390/wcsncat-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsncat.c: Move to ...
	* sysdeps/s390/wcsncat.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcsncat.h: New file.
2018-12-18 13:57:20 +01:00
Stefan Liebler
3389cae427 S390: Refactor wcscat ifunc handling.
The ifunc handling for wcscat is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcscat variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcscat variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcscat.
	* sysdeps/s390/multiarch/wcscat-c.c: Move to ...
	* sysdeps/s390/wcscat-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcscat-vx.S: Move to ...
	* sysdeps/s390/wcscat-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcscat.c: Move to ...
	* sysdeps/s390/wcscat.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcscat.h: New file.
2018-12-18 13:57:20 +01:00
Stefan Liebler
c3081bcbd9 S390: Refactor wcpncpy ifunc handling.
The ifunc handling for wcpncpy is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcpncpy variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcpncpy variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcpncpy.
	* sysdeps/s390/multiarch/wcpncpy-c.c: Move to ...
	* sysdeps/s390/wcpncpy-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcpncpy-vx.S: Move to ...
	* sysdeps/s390/wcpncpy-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcpncpy.c: Move to ...
	* sysdeps/s390/wcpncpy.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcpncpy.h: New file.
2018-12-18 13:57:19 +01:00
Stefan Liebler
0966dd8689 S390: Refactor wcsncpy ifunc handling.
The ifunc handling for wcsncpy is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcsncpy variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcsncpy variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcsncpy.
	* sysdeps/s390/multiarch/wcsncpy-c.c: Move to ...
	* sysdeps/s390/wcsncpy-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsncpy-vx.S: Move to ...
	* sysdeps/s390/wcsncpy-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsncpy.c: Move to ...
	* sysdeps/s390/wcsncpy.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcsncpy.h: New file.
2018-12-18 13:57:19 +01:00
Stefan Liebler
0582e42845 S390: Refactor wcpcpy ifunc handling.
The ifunc handling for wcpcpy is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcpcpy variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcpcpy variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcpcpy.
	* sysdeps/s390/multiarch/wcpcpy-c.c: Move to ...
	* sysdeps/s390/wcpcpy-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcpcpy-vx.S: Move to ...
	* sysdeps/s390/wcpcpy-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcpcpy.c: Move to ...
	* sysdeps/s390/wcpcpy.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcpcpy.h: New file.
2018-12-18 13:57:19 +01:00
Stefan Liebler
804f2e5c73 S390: Refactor wcscpy ifunc handling.
The ifunc handling for wcscpy is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcscpy variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcscpy variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcscpy.
	* sysdeps/s390/multiarch/wcscpy-c.c: Move to ...
	* sysdeps/s390/wcscpy-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcscpy-vx.S: Move to ...
	* sysdeps/s390/wcscpy-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcscpy.c: Move to ...
	* sysdeps/s390/wcscpy.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcscpy.h: New file.
2018-12-18 13:57:18 +01:00
Stefan Liebler
c7e7cd266e S390: Refactor wcsnlen ifunc handling.
The ifunc handling for wcsnlen is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.
Glibc internal calls will use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcsnlen variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcsnlen variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcsnlen.
	* sysdeps/s390/multiarch/wcsnlen-c.c: Move to ...
	* sysdeps/s390/wcsnlen-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsnlen-vx.S: Move to ...
	* sysdeps/s390/wcsnlen-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcsnlen.c: Move to ...
	* sysdeps/s390/wcsnlen.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcsnlen.h: New file.
2018-12-18 13:57:18 +01:00
Stefan Liebler
2e02d0b7a9 S390: Refactor wcslen ifunc handling.
The ifunc handling for wcslen is adjusted in order to omit ifunc
if the minimum architecture level already supports newer CPUs by default.
Unfortunately the c ifunc variant can't be omitted at all as it is used
by the z13 ifunc variant as fallback if the pointers are not 4-byte aligned.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove wcslen variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add wcslen variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for wcslen.
	* sysdeps/s390/multiarch/wcslen-c.c: Move to ...
	* sysdeps/s390/wcslen-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcslen-vx.S: Move to ...
	* sysdeps/s390/wcslen-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/wcslen.c: Move to ...
	* sysdeps/s390/wcslen.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-wcslen.h: New file.
2018-12-18 13:57:17 +01:00
Stefan Liebler
89bfcbdf9d S390: Refactor memrchr ifunc handling.
The ifunc handling for memrchr is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove memrchr variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add memrchr variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for memrchr.
	* sysdeps/s390/multiarch/memrchr-c.c: Move to ...
	* sysdeps/s390/memrchr-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/memrchr-vx.S: Move to ...
	* sysdeps/s390/memrchr-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/memrchr.c: Move to ...
	* sysdeps/s390/memrchr.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-memrchr.h: New file.
2018-12-18 13:57:17 +01:00
Stefan Liebler
196655ba54 S390: Refactor memccpy ifunc handling.
The ifunc handling for memccpy is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove memccpy variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add memccpy variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for memccpy.
	* sysdeps/s390/multiarch/memccpy-c.c: Move to ...
	* sysdeps/s390/memccpy-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/memccpy-vx.S: Move to ...
	* sysdeps/s390/memccpy-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/memccpy.c: Move to ...
	* sysdeps/s390/memccpy.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-memccpy.h: New file.
2018-12-18 13:57:16 +01:00
Stefan Liebler
4c7b3cec11 S390: Refactor rawmemchr ifunc handling.
The ifunc handling for rawmemchr is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.
Glibc internal calls will then also use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove rawmemchr variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add rawmemchr variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for rawmemchr.
	* sysdeps/s390/multiarch/rawmemchr-c.c: Move to ...
	* sysdeps/s390/rawmemchr-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/rawmemchr-vx.S: Move to ...
	* sysdeps/s390/rawmemchr-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/rawmemchr.c: Move to ...
	* sysdeps/s390/rawmemchr.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-rawmemchr.h: New file.
2018-12-18 13:57:16 +01:00
Stefan Liebler
581a051c2e S390: Refactor memchr ifunc handling.
The ifunc handling for memchr is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.
Glibc internal calls will then also use the "newer" ifunc variant.

Note: The fallback s390-32/s390-64 ifunc variants with srst instruction
are now moved to the unified memchr-z900.S file which can be used for
31/64bit. The s390-32/s390-64 files multiarch/memchr.c and memchr.S
are deleted.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove memchr variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add memchr variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for memchr.
	* sysdeps/s390/multiarch/memchr-vx.S: Move to ...
	* sysdeps/s390/memchr-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/memchr.c: Move to ...
	* sysdeps/s390/memchr.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-memchr.h: New file.
	* sysdeps/s390/s390-64/memchr.S: Move to ...
	* sysdeps/s390/memchr-z900.S: ... here and adjust to be usable
	for 31/64bit and ifunc handling.
	* sysdeps/s390/s390-32/multiarch/memchr.c: Delete file.
	* sysdeps/s390/s390-64/multiarch/memchr.c: Likewise.
	* sysdeps/s390/s390-32/memchr.S: Likewise.
2018-12-18 13:57:16 +01:00
Stefan Liebler
5d2ec20a99 S390: Refactor strcspn ifunc handling.
The ifunc handling for strcspn is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.
Glibc internal calls will then also use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove strcspn variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add strcspn variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for strcspn.
	* sysdeps/s390/multiarch/strcspn-c.c: Move to ...
	* sysdeps/s390/strcspn-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strcspn-vx.S: Move to ...
	* sysdeps/s390/strcspn-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strcspn.c: Move to ...
	* sysdeps/s390/strcspn.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-strcspn.h: New file.
2018-12-18 13:57:15 +01:00
Stefan Liebler
572cca93fa S390: Refactor strpbrk ifunc handling.
The ifunc handling for strpbrk is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.
Glibc internal calls will then also use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove strpbrk variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add strpbrk variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for strpbrk.
	* sysdeps/s390/multiarch/strpbrk-c.c: Move to ...
	* sysdeps/s390/strpbrk-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strpbrk-vx.S: Move to ...
	* sysdeps/s390/strpbrk-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strpbrk.c: Move to ...
	* sysdeps/s390/strpbrk.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-strpbrk.h: New file.
2018-12-18 13:57:15 +01:00
Stefan Liebler
483fc56978 S390: Refactor strspn ifunc handling.
The ifunc handling for strspn is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.
Glibc internal calls will then also use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove strspn variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add strspn variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for strspn.
	* sysdeps/s390/multiarch/strspn-c.c: Move to ...
	* sysdeps/s390/strspn-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strspn-vx.S: Move to ...
	* sysdeps/s390/strspn-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strspn.c: Move to ...
	* sysdeps/s390/strspn.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-strspn.h: New file.
2018-12-18 13:57:15 +01:00
Stefan Liebler
26ea876087 S390: Refactor strrchr ifunc handling.
The ifunc handling for strrchr is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.
Glibc internal calls will then also use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove strrchr variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add strrchr variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for strrchr.
	* sysdeps/s390/multiarch/strrchr-c.c: Move to ...
	* sysdeps/s390/strrchr-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strrchr-vx.S: Move to ...
	* sysdeps/s390/strrchr-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strrchr.c: Move to ...
	* sysdeps/s390/strrchr.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-strrchr.h: New file.
2018-12-18 13:57:14 +01:00
Stefan Liebler
a1361e6561 S390: Refactor strchrnul ifunc handling.
The ifunc handling for strchrnul is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove strchrnul variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add strchrnul variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for strchrnul.
	* sysdeps/s390/multiarch/strchrnul-c.c: Move to ...
	* sysdeps/s390/strchrnul-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strchrnul-vx.S: Move to ...
	* sysdeps/s390/strchrnul-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strchrnul.c: Move to ...
	* sysdeps/s390/strchrnul.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-strchrnul.h: New file.
2018-12-18 13:57:14 +01:00
Stefan Liebler
32f12653d4 S390: Refactor strchr ifunc handling.
The ifunc handling for strchr is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.
Glibc internal calls will then also use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove strchr variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add strchr variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for strchr.
	* sysdeps/s390/multiarch/strchr-c.c: Move to ...
	* sysdeps/s390/strchr-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strchr-vx.S: Move to ...
	* sysdeps/s390/strchr-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strchr.c: Move to ...
	* sysdeps/s390/strchr.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-strchr.h: New file.
2018-12-18 13:57:14 +01:00
Stefan Liebler
316b884219 S390: Refactor strncmp ifunc handling.
The ifunc handling for strncmp is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.
Glibc internal calls will then also use the "newer" ifunc variant.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove strncmp variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add strncmp variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for strncmp.
	* sysdeps/s390/multiarch/strncmp-c.c: Move to ...
	* sysdeps/s390/strncmp-c.c: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strncmp-vx.S: Move to ...
	* sysdeps/s390/strncmp-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strncmp.c: Move to ...
	* sysdeps/s390/strncmp.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-strncmp.h: New file.
2018-12-18 13:57:13 +01:00
Stefan Liebler
cdab85fe33 S390: Refactor strcmp ifunc handling.
The ifunc handling for strcmp is adjusted in order to omit ifunc
variants if those will never be used as the minimum architecture level
already supports newer CPUs by default.
Glibc internal calls will then also use the "newer" ifunc variant.

Note: The fallback s390-32/s390-64 ifunc variants with clst instruction
are now moved to the unified strcmp-z900.S file which can be used for
31/64bit. The s390-32/s390-64 files multiarch/strcmp.c and strcmp.S
are deleted.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile
	(sysdep_routines): Remove strcmp variants.
	* sysdeps/s390/Makefile (sysdep_routines): Add strcmp variants.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Refactor ifunc handling for strcmp.
	* sysdeps/s390/multiarch/strcmp-vx.S: Move to ...
	* sysdeps/s390/strcmp-vx.S: ... here and adjust ifunc handling.
	* sysdeps/s390/multiarch/strcmp.c: Move to ...
	* sysdeps/s390/strcmp.c: ... here and adjust ifunc handling.
	* sysdeps/s390/ifunc-strcmp.h: New file.
	* sysdeps/s390/s390-64/strcmp.S: Move to ...
	* sysdeps/s390/strcmp-z900.S: ... here and adjust to be usable
	for 31/64bit and ifunc handling.
	* sysdeps/s390/s390-32/multiarch/strcmp.c: Delete file.
	* sysdeps/s390/s390-64/multiarch/strcmp.c: Likewise.
	* sysdeps/s390/s390-32/strcmp.S: Likewise.
2018-12-18 13:57:13 +01:00