3 #include "../../string/strcpy.c"
11 strcpy (char *dest
, const char *src
)
15 asm (PRELOADSTR ("%0") : : "r" (src
));
17 #ifndef __OPTIMIZE_SIZE__
18 if (((long)src
& 3) == ((long)dest
& 3))
20 /* Skip unaligned part. */
23 if (! (*dest
++ = *src
++))
27 /* Load two constants:
28 R4 = 0xfefefeff [ == ~(0x80808080 << 1) ]
31 asm ("mov r5, #0x80\n\
33 add r5, r5, #0x8000\n\
34 add r5, r5, r5, lsl #16\n\
44 " PRELOADSTR("%1") "\n\
51 : "=&r" (dest
), "=&r" (src
)
52 : "0" (dest
), "1" (src
)
53 : "r1", "r2", "r3", "r4", "r5", "memory", "cc");
57 while (*dest
++ = *src
++)
58 asm (PRELOADSTR ("%0") : : "r" (src
));