glibc/wcsmbs
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
..
bits Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
btowc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
c16rtomb.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
c32rtomb.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Depend Update. 2000-09-06 22:15:07 +00:00
isoc99_fwscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
isoc99_swscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
isoc99_vfwscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
isoc99_vswscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
isoc99_vwscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
isoc99_wscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Makefile Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mbrlen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mbrtoc16.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mbrtoc32.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mbrtowc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mbsinit.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mbsnrtowcs.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mbsrtowcs_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mbsrtowcs.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-char-types.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wcpcpy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wcpncpy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wcscat.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wcschr.c Add wcschr test cases 2011-10-23 14:14:26 -04:00
test-wcschrnul.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wcscmp.c Move wide char tests to wcsmbs directory 2011-09-08 18:01:07 -04:00
test-wcscpy.c Add tests for wcsrchr and wcscpy 2011-12-17 14:14:58 -05:00
test-wcscspn.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wcslen.c Add wcslen test cases 2011-10-23 14:11:50 -04:00
test-wcsncat.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wcsncmp.c Use correct signedness in wcsncmp 2015-04-13 21:25:04 +02:00
test-wcsncpy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wcsnlen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wcspbrk.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wcsrchr.c Add tests for wcsrchr and wcscpy 2011-12-17 14:14:58 -05:00
test-wcsspn.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wmemchr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-wmemcmp.c Move wide char tests to wcsmbs directory 2011-09-08 18:01:07 -04:00
test-wmemset.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-btowc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-c16-surrogate.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-c16c32-1.c Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
tst-c32-state.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-fgetwc-after-eof.c [BZ 1190] Make EOF sticky in stdio. 2018-03-13 08:31:56 -04:00
tst-mbrtowc2.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
tst-mbrtowc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-mbsrtowcs.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-wchar-h.c Update wcsmbs tests to use the support test driver 2017-04-04 18:05:20 -03:00
tst-wcpncpy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-wcrtomb.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-wcsnlen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-wcstod-nan-locale.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-wcstod-nan-sign.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-wcstod-round.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-wcstof.c Update wcsmbs tests to use the support test driver 2017-04-04 18:05:20 -03:00
tst-wcstol-locale.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
uchar.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Versions Add _Float32 function aliases. 2017-12-07 00:48:31 +00:00
wchar.h Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
wcpcpy.c wcsmbs: optimize wcpcpy 2019-02-27 10:00:34 -03:00
wcpncpy.c wcsmbs: optimize wcpncpy 2019-02-27 10:00:38 -03:00
wcrtomb.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsatcliff.c Fix handling of tail bytes of buffer in SSE2/SSSE3 x86-64 version strn{,case}cmp 2010-10-03 22:10:30 -04:00
wcscasecmp_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscasecmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscat.c wcsmbs: optimize wcscat 2019-02-27 10:00:37 -03:00
wcschr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcschrnul.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscoll_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscoll.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscpy.c wcsmbs: optimize wcscat 2019-02-27 10:00:37 -03:00
wcscspn.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsdup.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcslen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsmbs-tst1.c Add dependencies on needed locales in each subdir tests (bug 18969) 2015-10-12 15:18:08 +02:00
wcsmbsload.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsmbsload.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsncase_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsncase.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsncat.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsncmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsncpy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsnlen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsnrtombs.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcspbrk.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsrchr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsrtombs.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsspn.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsstr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstod_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstod_nan.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstod.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstof_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstof_nan.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstof.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstok.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstol_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstol.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstold_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstold_nan.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstold.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstoll_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstoll.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstoul_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstoul.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstoull_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcstoull.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcswidth.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsxfrm_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsxfrm.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wctob.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcwidth.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcwidth.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemchr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemcmp.c Fix handling of collating elements in fnmatch (bug 17396, bug 16976) 2019-02-04 15:45:02 +01:00
wmemcpy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemmove.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmempcpy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemset.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00