summaryrefslogtreecommitdiffstats
path: root/libc/string/x86_64/strcpy.S
diff options
context:
space:
mode:
authorCarmelo Amoroso <carmelo.amoroso@st.com>2008-06-19 06:48:05 +0000
committerCarmelo Amoroso <carmelo.amoroso@st.com>2008-06-19 06:48:05 +0000
commit8b96f0d1ca80a4ba9f8b06313dac4e7a351d728d (patch)
treeaba7c0f12efda51131ffb58eea03246f27f52b13 /libc/string/x86_64/strcpy.S
parentee82aebd10ba586d3380d6524eae98ee259b133c (diff)
downloaduClibc-alpine-8b96f0d1ca80a4ba9f8b06313dac4e7a351d728d.tar.bz2
uClibc-alpine-8b96f0d1ca80a4ba9f8b06313dac4e7a351d728d.tar.xz
Synch arch specific part of libc/string for frv/ia64/sparc/i386/powerpc/arm/avr32/x86_64/cris/bfin
Diffstat (limited to 'libc/string/x86_64/strcpy.S')
-rw-r--r--libc/string/x86_64/strcpy.S10
1 files changed, 8 insertions, 2 deletions
diff --git a/libc/string/x86_64/strcpy.S b/libc/string/x86_64/strcpy.S
index d9a51b0bb..612a30d1a 100644
--- a/libc/string/x86_64/strcpy.S
+++ b/libc/string/x86_64/strcpy.S
@@ -20,6 +20,8 @@
#include "_glibc_inc.h"
+/* Seems to be unrolled too much */
+
#ifndef USE_AS_STPCPY
# define STRCPY strcpy
#endif
@@ -51,7 +53,9 @@ ENTRY (BP_SYM (STRCPY))
/* Now the sources is aligned. Unfortunatly we cannot force
to have both source and destination aligned, so ignore the
alignment of the destination. */
- .p2align 4
+
+ /* Next 3 insns are 10 bytes total, make sure we decode them in one go */
+ .p2align 4,,10
1:
/* 1st unroll. */
movq (%rsi), %rax /* Read double word (8 bytes). */
@@ -128,7 +132,9 @@ ENTRY (BP_SYM (STRCPY))
/* Do the last few bytes. %rax contains the value to write.
The loop is unrolled twice. */
- .p2align 4
+
+ /* Next 3 insns are 6 bytes total, make sure we decode them in one go */
+ .p2align 3,,6
3:
/* Note that stpcpy needs to return with the value of the NUL
byte. */