From 53f3deee06366dacd38974af7beb89aa7ce6c45e Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 5 Nov 2012 00:58:20 +0000 Subject: [libc] Fix and externalise memswap() Make memswap() behave correctly if called with a length of zero. Signed-off-by: Michael Brown --- src/arch/x86/include/bits/string.h | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) (limited to 'src/arch/x86/include/bits/string.h') diff --git a/src/arch/x86/include/bits/string.h b/src/arch/x86/include/bits/string.h index 249dd5438..4d44c722f 100644 --- a/src/arch/x86/include/bits/string.h +++ b/src/arch/x86/include/bits/string.h @@ -213,21 +213,8 @@ static inline void * memset ( void *dest, int fill, size_t len ) { } #define __HAVE_ARCH_MEMSWAP -static inline void * memswap(void *dest, void *src, size_t n) -{ -long d0, d1, d2, d3; -__asm__ __volatile__( - "\n1:\t" - "movb (%2),%%al\n\t" - "xchgb (%1),%%al\n\t" - "inc %1\n\t" - "stosb\n\t" - "loop 1b" - : "=&c" (d0), "=&S" (d1), "=&D" (d2), "=&a" (d3) - : "0" (n), "1" (src), "2" (dest) - : "memory" ); -return dest; -} + +extern void * memswap ( void *dest, void *src, size_t len ); #define __HAVE_ARCH_STRNCMP -- cgit v1.2.3-55-g7522