Commit Graph

16 Commits

Author SHA1 Message Date
Joseph Myers 688903eb3e 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.
2018-01-01 00:32:25 +00:00
H.J. Lu 70fe2eb794 x86-64: Implement strcspn/strpbrk/strspn IFUNC selectors in C
Implement strcspn/strpbrk/strspn IFUNC selectors in C

All internal calls within libc.so can use IFUNC on x86-64 since unlike
x86, x86-64 supports PC-relative addressing to access the GOT entry so
that it can call via PLT without using an extra register.  For libc.a,
we can't use IFUNC for functions which are called before IFUNC has been
initialized.  Use IFUNC internally reduces the icache footprint since
libc.so and other codes in the process use the same implementations.
This patch uses IFUNC for strcspn/strpbrk/strspn functions within libc.

	* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
	strcspn-sse2, strpbrk-sse2 and strspn-sse2.
	* sysdeps/x86_64/strcspn.S (STRPBRK_P): Removed.
	Check USE_AS_STRPBRK instead of STRPBRK_P.
	* sysdeps/x86_64/strpbrk.S (USE_AS_STRPBRK): New.
	* sysdeps/x86_64/multiarch/ifunc-sse4_2.h: New file.
	* sysdeps/x86_64/multiarch/strcspn-sse2.S: Likewise.
	* sysdeps/x86_64/multiarch/strcspn.c: Likewise.
	* sysdeps/x86_64/multiarch/strpbrk-sse2.S: Likewise.
	* sysdeps/x86_64/multiarch/strpbrk.c: Likewise.
	* sysdeps/x86_64/multiarch/strspn-sse2.S: Likewise.
	* sysdeps/x86_64/multiarch/strspn.c: Likewise.
	* sysdeps/x86_64/multiarch/strcspn.S: Removed.
	* sysdeps/x86_64/multiarch/strpbrk.S: Likewise.
	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
	* sysdeps/x86_64/multiarch/strpbrk-c.c: Remove "#ifdef SHARED"
	and "#endif".
2017-06-15 08:59:05 -07:00
Joseph Myers bfff8b1bec Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Joseph Myers f7a9f785e5 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Joseph Myers b168057aaa Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Allan McRae d4697bc93d Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Joseph Myers 9c84384cc1 Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
Joseph Myers 568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Paul Eggert 59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Ulrich Drepper ee6189855a * sysdeps/unix/sysv/linux/x86_64/getcontext.S: Use functionally
equivalent, but shorter instructions.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/setcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/swapcontext.S: Likewise.
	* sysdeps/unix/x86_64/sysdep.S: Likewise.
	* sysdeps/x86_64/strchr.S: Likewise.
	* sysdeps/x86_64/memset.S: Likewise.
	* sysdeps/x86_64/strcspn.S: Likewise.
	* sysdeps/x86_64/strcmp.S: Likewise.
	* sysdeps/x86_64/elf/start.S: Likewise.
	* sysdeps/x86_64/strspn.S: Likewise.
	* sysdeps/x86_64/dl-machine.h: Likewise.
	* sysdeps/x86_64/bsd-_setjmp.S: Likewise.
	* sysdeps/x86_64/bsd-setjmp.S: Likewise.
	* sysdeps/x86_64/strtok.S: Likewise.
2005-03-31 10:02:53 +00:00
Ulrich Drepper a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek 0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Andreas Jaeger a5ee0b9e12 * sysdeps/x86_64/strcspn.S: Fix typo in last patch. 2004-01-12 16:41:44 +00:00
Ulrich Drepper 0e328c858a Update.
2004-01-10  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/x86_64/__start_context.S: Add cfi directives.
	* sysdeps/unix/x86_64/sysdep.S (__syscall_error): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
	* sysdeps/x86_64/strcspn.S: Likewise.
	* sysdeps/x86_64/strspn.S: Likewise.
2004-01-10 18:08:28 +00:00
Ulrich Drepper 85dd100310 Update.
* sysdeps/i386/fpu/ftestexcept.c: Also check SSE status word.

	* include/signal.h: Use libc_hidden_proto for sigaddset and sigdelset.
	* signal/sigaddset.c: Add libc_hidden_def.
	* signal/sigdelset.c: Likewise.

2003-04-29  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/i386/i486/string-inlines.c (__memcpy_g, __strchr_g): Move
	to the end of the file.

	* configure.in: Change __oline__ to $LINENO.
	(HAVE_BUILTIN_REDIRECTION): New check.
	* config.h.in (HAVE_BUILTIN_REDIRECTION): Add.
	* include/libc-symbols.h (libc_hidden_builtin_proto,
	libc_hidden_builtin_def, libc_hidden_builtin_weak,
	libc_hidden_builtin_ver): Define.
	* include/string.h (memchr, memcpy, memmove, memset, strcat, strchr,
	strcmp, strcpy, strcspn, strlen, strncmp, strncpy, strpbrk, strrchr,
	strspn, strstr): Add libc_hidden_builtin_proto.
	* intl/plural.y: Include string.h.
	* sysdeps/alpha/alphaev6/memchr.S (memchr): Add
	libc_hidden_builtin_def.
	* sysdeps/alpha/alphaev6/memcpy.S (memcpy): Likewise.
	* sysdeps/alpha/alphaev6/memset.S (memset): Likewise.
	* sysdeps/alpha/alphaev67/strcat.S (strcat): Likewise.
	* sysdeps/alpha/alphaev67/strchr.S (strchr): Likewise.
	* sysdeps/alpha/alphaev67/strlen.S (strlen): Likewise.
	* sysdeps/alpha/alphaev67/strrchr.S (strrchr): Likewise.
	* sysdeps/alpha/memchr.S (memchr): Likewise.
	* sysdeps/alpha/memset.S (memset): Likewise.
	* sysdeps/alpha/strcat.S (strcat): Likewise.
	* sysdeps/alpha/strchr.S (strchr): Likewise.
	* sysdeps/alpha/strcmp.S (strcmp): Likewise.
	* sysdeps/alpha/strcpy.S (strcpy): Likewise.
	* sysdeps/alpha/strlen.S (strlen): Likewise.
	* sysdeps/alpha/strncmp.S (strncmp): Likewise.
	* sysdeps/alpha/strncpy.S (strncpy): Likewise.
	* sysdeps/alpha/strrchr.S (strrchr): Likewise.
	* sysdeps/arm/memset.S (memset): Likewise.
	* sysdeps/arm/strlen.S (strlen): Likewise.
	* sysdeps/generic/memchr.c (memchr): Likewise.
	* sysdeps/generic/memcpy.c (memcpy): Likewise.
	* sysdeps/generic/memmove.c (memmove): Likewise.
	* sysdeps/generic/memset.c (memset): Likewise.
	* sysdeps/generic/strcat.c (strcat): Likewise.
	* sysdeps/generic/strchr.c (strchr): Likewise.
	* sysdeps/generic/strcmp.c (strcmp): Likewise.
	* sysdeps/generic/strcpy.c (strcpy): Likewise.
	* sysdeps/generic/strcspn.c (strcspn): Likewise.
	* sysdeps/generic/strlen.c (strlen): Likewise.
	* sysdeps/generic/strncmp.c (strncmp): Likewise.
	* sysdeps/generic/strncpy.c (strncpy): Likewise.
	* sysdeps/generic/strpbrk.c (strpbrk): Likewise.
	* sysdeps/generic/strrchr.c (strrchr): Likewise.
	* sysdeps/generic/strspn.c (strspn): Likewise.
	* sysdeps/generic/strstr.c (strstr): Likewise.
	* sysdeps/i386/i486/strcat.S (strcat): Likewise.
	* sysdeps/i386/i486/strlen.S (strlen): Likewise.
	* sysdeps/i386/i586/memcpy.S (memcpy): Likewise.
	* sysdeps/i386/i586/memset.S (memset): Likewise.
	* sysdeps/i386/i586/strchr.S (strchr): Likewise.
	* sysdeps/i386/i586/strcpy.S (strcpy): Likewise.
	* sysdeps/i386/i586/strlen.S (strlen): Likewise.
	* sysdeps/i386/i686/memcpy.S (memcpy): Likewise.
	* sysdeps/i386/i686/memmove.S (memmove): Likewise.
	* sysdeps/i386/i686/memset.S (memset): Likewise.
	* sysdeps/i386/i686/strcmp.S (strcmp): Likewise.
	* sysdeps/i386/memchr.S (memchr): Likewise.
	* sysdeps/i386/memset.c (memset): Likewise.
	* sysdeps/i386/strchr.S (strchr): Likewise.
	* sysdeps/i386/strcspn.S (strcspn): Likewise.
	* sysdeps/i386/strlen.c (strlen): Likewise.
	* sysdeps/i386/strpbrk.S (strpbrk): Likewise.
	* sysdeps/i386/strrchr.S (strrchr): Likewise.
	* sysdeps/i386/strspn.S (strspn): Likewise.
	* sysdeps/ia64/memchr.S (memchr): Likewise.
	* sysdeps/ia64/memcpy.S (memcpy): Likewise.
	* sysdeps/ia64/memmove.S (memmove): Likewise.
	* sysdeps/ia64/memset.S (memset): Likewise.
	* sysdeps/ia64/strcat.S (strcat): Likewise.
	* sysdeps/ia64/strchr.S (strchr): Likewise.
	* sysdeps/ia64/strcmp.S (strcmp): Likewise.
	* sysdeps/ia64/strcpy.S (strcpy): Likewise.
	* sysdeps/ia64/strlen.S (strlen): Likewise.
	* sysdeps/ia64/strncmp.S (strncmp): Likewise.
	* sysdeps/ia64/strncpy.S (strncpy): Likewise.
	* sysdeps/m68k/memchr.S (memchr): Likewise.
	* sysdeps/m68k/strchr.S (strchr): Likewise.
	* sysdeps/mips/mips64/memcpy.S (memcpy): Likewise.
	* sysdeps/mips/mips64/memset.S (memset): Likewise.
	* sysdeps/mips/memcpy.S (memcpy): Likewise.
	* sysdeps/mips/memset.S (memset): Likewise.
	* sysdeps/powerpc/powerpc32/memset.S (memset): Likewise.
	* sysdeps/powerpc/powerpc32/strchr.S (strchr): Likewise.
	* sysdeps/powerpc/powerpc32/strcmp.S (strcmp): Likewise.
	* sysdeps/powerpc/powerpc32/strcpy.S (strcpy): Likewise.
	* sysdeps/powerpc/powerpc32/strlen.S (strlen): Likewise.
	* sysdeps/powerpc/powerpc64/memcpy.S (memcpy): Likewise.
	* sysdeps/powerpc/powerpc64/memset.S (memset): Likewise.
	* sysdeps/powerpc/powerpc64/strchr.S (strchr): Likewise.
	* sysdeps/powerpc/powerpc64/strcmp.S (strcmp): Likewise.
	* sysdeps/powerpc/powerpc64/strcpy.S (strcpy): Likewise.
	* sysdeps/powerpc/powerpc64/strlen.S (strlen): Likewise.
	* sysdeps/powerpc/strcat.c (strcat): Likewise.
	* sysdeps/sparc/sparc32/memchr.S (memchr): Likewise.
	* sysdeps/sparc/sparc32/memcpy.S (memcpy): Likewise.
	* sysdeps/sparc/sparc32/memset.S (memset): Likewise.
	* sysdeps/sparc/sparc32/strcat.S (strcat): Likewise.
	* sysdeps/sparc/sparc32/strchr.S (strchr, strrchr): Likewise.
	* sysdeps/sparc/sparc32/strcmp.S (strcmp): Likewise.
	* sysdeps/sparc/sparc32/strcpy.S (strcpy): Likewise.
	* sysdeps/sparc/sparc32/strlen.S (strlen): Likewise.
	* sysdeps/sparc/sparc64/sparcv9b/memcpy.S (memcpy, memmove): Likewise.
	* sysdeps/sparc/sparc64/memchr.S (memchr): Likewise.
	* sysdeps/sparc/sparc64/memcpy.S (memcpy, memmove): Likewise.
	* sysdeps/sparc/sparc64/memset.S (memset): Likewise.
	* sysdeps/sparc/sparc64/strcat.S (strcat): Likewise.
	* sysdeps/sparc/sparc64/strchr.S (strchr, strrchr): Likewise.
	* sysdeps/sparc/sparc64/strcmp.S (strcmp): Likewise.
	* sysdeps/sparc/sparc64/strcpy.S (strcpy): Likewise.
	* sysdeps/sparc/sparc64/strcspn.S (strcspn): Likewise.
	* sysdeps/sparc/sparc64/strlen.S (strlen): Likewise.
	* sysdeps/sparc/sparc64/strncmp.S (strncmp): Likewise.
	* sysdeps/sparc/sparc64/strncpy.S (strncpy): Likewise.
	* sysdeps/sparc/sparc64/strpbrk.S (strpbrk): Likewise.
	* sysdeps/sparc/sparc64/strspn.S (strspn): Likewise.
	* sysdeps/sh/memcpy.S (memcpy): Likewise.
	* sysdeps/sh/memset.S (memset): Likewise.
	* sysdeps/sh/strlen.S (strlen): Likewise.
	* sysdeps/s390/s390-32/memchr.S (memchr): Likewise.
	* sysdeps/s390/s390-32/memcpy.S (memcpy): Likewise.
	* sysdeps/s390/s390-32/memset.S (memset): Likewise.
	* sysdeps/s390/s390-32/strcmp.S (strcmp): Likewise.
	* sysdeps/s390/s390-32/strcpy.S (strcpy): Likewise.
	* sysdeps/s390/s390-32/strncpy.S (strncpy): Likewise.
	* sysdeps/s390/s390-64/memchr.S (memchr): Likewise.
	* sysdeps/s390/s390-64/memcpy.S (memcpy): Likewise.
	* sysdeps/s390/s390-64/memset.S (memset): Likewise.
	* sysdeps/s390/s390-64/strcmp.S (strcmp): Likewise.
	* sysdeps/s390/s390-64/strcpy.S (strcpy): Likewise.
	* sysdeps/s390/s390-64/strncpy.S (strncpy): Likewise.
	* sysdeps/x86_64/memcpy.S (memcpy): Likewise.
	* sysdeps/x86_64/memset.S (memset): Likewise.
	* sysdeps/x86_64/strcat.S (strcat): Likewise.
	* sysdeps/x86_64/strchr.S (strchr): Likewise.
	* sysdeps/x86_64/strcmp.S (strcmp): Likewise.
	* sysdeps/x86_64/strcpy.S (strcpy): Likewise.
	* sysdeps/x86_64/strcspn.S (strcspn): Likewise.
	* sysdeps/x86_64/strlen.S (strlen): Likewise.
	* sysdeps/x86_64/strspn.S (strspn): Likewise.
	* string/string-inlines.c: Move...
	* sysdeps/generic/string-inlines.c: ...here.
	(__memcpy_g, __strchr_g): Remove.
	(__NO_INLINE__): Define before including <string.h>,
	undefine after.  Include bits/string.h and bits/string2.h.
	* sysdeps/i386/i486/string-inlines.c: New file.
	* sysdeps/i386/string-inlines.c: New file.
	* sysdeps/i386/i486/Versions: Remove.
	All GLIBC_2.1.1 symbols moved...
	* sysdeps/i386/Versions (libc): ...here.

2003-04-29  Ulrich Drepper  <drepper@redhat.com>
2003-04-29 22:49:58 +00:00
Andreas Jaeger 78df0fcb80 Update.
* sysdeps/x86_64/dl-machine.h (elf_machine_runtime_setup): Declare
	external functions with hidden attribute.
	(elf_machine_rela): Optimize.

	* sysdeps/x86_64/memset.S: New file.
	* sysdeps/x86_64/bzero.S: New file.
	* sysdeps/x86_64/stpcpy.S: New file.
	* sysdeps/x86_64/strcat.S: New file.
	* sysdeps/x86_64/strchr.S: New file.
	* sysdeps/x86_64/strcpy.S: New file.
	* sysdeps/x86_64/strcspn.S: New file.
	* sysdeps/x86_64/strlen.S: New file.
	* sysdeps/x86_64/strpbrk.S: New file.
	* sysdeps/x86_64/strspn.S: New file.
	* sysdeps/x86_64/strcmp.S: New file.
	* sysdeps/x86_64/strtok_r.S: New file.
	* sysdeps/x86_64/strtok.S: New file.
	* sysdeps/x86_64/memcpy.S: New file.
	* sysdeps/x86_64/mempcpy.S: New file.
2002-08-31 17:45:33 +00:00