diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2009-07-02 03:39:03 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-07-02 03:39:03 -0700 |
commit | ab6a873fe07b8ded403bc5a5ca73be5d04820d61 (patch) | |
tree | 82c30accc8655738ef1831579a1d3c1e93270cf2 /string/stpncpy.c | |
parent | 6cbbaa50aac809ad6e0692247876c82d58e466bf (diff) | |
download | glibc-ab6a873fe07b8ded403bc5a5ca73be5d04820d61.tar.gz glibc-ab6a873fe07b8ded403bc5a5ca73be5d04820d61.tar.xz glibc-ab6a873fe07b8ded403bc5a5ca73be5d04820d61.zip |
SSSE3 strcpy/stpcpy for x86-64
This patch adds SSSE3 strcpy/stpcpy. I got up to 4X speed up on Core 2 and Core i7. I disabled it on Atom since SSSE3 version is slower for shorter (<64byte) data.
Diffstat (limited to 'string/stpncpy.c')
-rw-r--r-- | string/stpncpy.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/string/stpncpy.c b/string/stpncpy.c index 164d0f1747..2ebab33d8a 100644 --- a/string/stpncpy.c +++ b/string/stpncpy.c @@ -28,17 +28,19 @@ # include <sys/types.h> #endif -#ifndef weak_alias -# define __stpncpy stpncpy +#ifndef STPNCPY +# ifdef weak_alias +# define STPNCPY __stpncpy +weak_alias (__stpncpy, stpncpy) +# else +# define STPNCPY stpncpy +# endif #endif /* Copy no more than N characters of SRC to DEST, returning the address of the terminating '\0' in DEST, if any, or else DEST + N. */ char * -__stpncpy (dest, src, n) - char *dest; - const char *src; - size_t n; +STPNCPY (char *dest, const char *src, size_t n) { char c; char *s = dest; @@ -96,5 +98,4 @@ __stpncpy (dest, src, n) } #ifdef weak_alias libc_hidden_def (__stpncpy) -weak_alias (__stpncpy, stpncpy) #endif |