Skip to content

Commit

Permalink
Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64
Browse files Browse the repository at this point in the history
  • Loading branch information
H.J. Lu authored and Ulrich Drepper committed Jun 24, 2011
1 parent d5495a1 commit 8912479
Show file tree
Hide file tree
Showing 12 changed files with 5,508 additions and 1,838 deletions.
17 changes: 17 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
2011-06-22 H.J. Lu <hongjiu.lu@intel.com>

* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
strcpy-ssse3 strncpy-ssse3 stpcpy-ssse3 stpncpy-ssse3
strcpy-sse2-unaligned strncpy-sse2-unaligned
stpcpy-sse2-unaligned stpncpy-sse2-unaligned.
* sysdeps/x86_64/multiarch/stpcpy-sse2-unaligned.S: New file.
* sysdeps/x86_64/multiarch/stpcpy-ssse3.S: New file.
* sysdeps/x86_64/multiarch/stpncpy-sse2-unaligned.S: New file.
* sysdeps/x86_64/multiarch/stpncpy-ssse3.S: New file.
* sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S: New file.
* sysdeps/x86_64/multiarch/strcpy-ssse3.S: New file.
* sysdeps/x86_64/multiarch/strncpy-sse2-unaligned.S: New file.
* sysdeps/x86_64/multiarch/strncpy-ssse3.S: New file.
* sysdeps/x86_64/multiarch/strcpy.S: Remove strcpy with SSSE3.
(STRCPY): Support SSE2 and SSSE3 versions.

2011-06-24 Ulrich Drepper <drepper@gmail.com>

[BZ #12874]
Expand Down
3 changes: 3 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ Version 2.15

* Optimized strcpy, strncpy, stpcpy, stpncpy for SSE2 and SSSE3 on x86-32.
Contributed by HJ Lu.

* Improved strcpy, strncpy, stpcpy, stpncpy for SSE2 and SSSE3 on x86-64.
Contributed by HJ Lu.

Version 2.14

Expand Down
7 changes: 5 additions & 2 deletions sysdeps/x86_64/multiarch/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@ gen-as-const-headers += ifunc-defines.sym
endif

ifeq ($(subdir),string)

sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
strend-sse4 memcmp-sse4 memcpy-ssse3 mempcpy-ssse3 \
memmove-ssse3 memcpy-ssse3-back mempcpy-ssse3-back \
memmove-ssse3-back strcasestr-nonascii strcasecmp_l-ssse3 \
strncase_l-ssse3 strlen-sse4 strlen-no-bsf \
memset-x86-64
strncase_l-ssse3 strlen-sse4 strlen-no-bsf memset-x86-64 \
strcpy-ssse3 strncpy-ssse3 stpcpy-ssse3 stpncpy-ssse3 \
strcpy-sse2-unaligned strncpy-sse2-unaligned \
stpcpy-sse2-unaligned stpncpy-sse2-unaligned
ifeq (yes,$(config-cflags-sse4))
sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c varshift
CFLAGS-varshift.c += -msse4
Expand Down
3 changes: 3 additions & 0 deletions sysdeps/x86_64/multiarch/stpcpy-sse2-unaligned.S
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#define USE_AS_STPCPY
#define STRCPY __stpcpy_sse2_unaligned
#include "strcpy-sse2-unaligned.S"
3 changes: 3 additions & 0 deletions sysdeps/x86_64/multiarch/stpcpy-ssse3.S
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#define USE_AS_STPCPY
#define STRCPY __stpcpy_ssse3
#include "strcpy-ssse3.S"
4 changes: 4 additions & 0 deletions sysdeps/x86_64/multiarch/stpncpy-sse2-unaligned.S
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#define USE_AS_STPCPY
#define USE_AS_STRNCPY
#define STRCPY __stpncpy_sse2_unaligned
#include "strcpy-sse2-unaligned.S"
4 changes: 4 additions & 0 deletions sysdeps/x86_64/multiarch/stpncpy-ssse3.S
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#define USE_AS_STPCPY
#define USE_AS_STRNCPY
#define STRCPY __stpncpy_ssse3
#include "strcpy-ssse3.S"
Loading

0 comments on commit 8912479

Please sign in to comment.