From d9c284c3e975ecbc04d66d8b907643ed31f8229c Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Fri, 11 Nov 2016 21:52:00 +0300 Subject: [PATCH] compel: plugins,std -- Implement generic std_memcpy The routine was #if0ed for a while (taken from older compel), now it's time to provide any generic version. Signed-off-by: Cyrill Gorcunov Signed-off-by: Pavel Emelyanov Signed-off-by: Andrei Vagin --- compel/plugins/std/string.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/compel/plugins/std/string.c b/compel/plugins/std/string.c index 6e5d42ed1..e987e408e 100644 --- a/compel/plugins/std/string.c +++ b/compel/plugins/std/string.c @@ -222,19 +222,11 @@ fin: void *std_memcpy(void *to, const void *from, unsigned int n) { - /* FIXME: Per-arch support */ -#if 0 - int d0, d1, d2; - asm volatile("rep ; movsl \n" - "movl %4,%%ecx \n" - "andl $3,%%ecx \n" - "jz 1f \n" - "rep ; movsb \n" - "1:" - : "=&c" (d0), "=&D" (d1), "=&S" (d2) - : "0" (n / 4), "g" (n), "1" ((long)to), "2" ((long)from) - : "memory"); -#endif + char *tmp = to; + const char *s = from; + + while (n--) + *tmp++ = *s++; return to; }