aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/string.c
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-05-07 10:14:55 +0000
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-05-07 10:14:55 +0000
commit904141e5e30e923f7f7ccaa65894a1fbb51dfc65 (patch)
treea841ac56a4a8b8d39fb589d777501626ca2279a3 /xen/arch/x86/string.c
parent186141a492e85b49c4a21cd2afbf5a459417258b (diff)
downloadxen-904141e5e30e923f7f7ccaa65894a1fbb51dfc65.tar.gz
xen-904141e5e30e923f7f7ccaa65894a1fbb51dfc65.tar.bz2
xen-904141e5e30e923f7f7ccaa65894a1fbb51dfc65.zip
bitkeeper revision 1.1389.5.30 (427c951f6ULpkuxG36TskUioGnRY9w)
x86_64 gcc sometimes doesn't have builtin memmove. Always use the version we provide. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/string.c')
-rw-r--r--xen/arch/x86/string.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/xen/arch/x86/string.c b/xen/arch/x86/string.c
index b45a9197d5..745670b926 100644
--- a/xen/arch/x86/string.c
+++ b/xen/arch/x86/string.c
@@ -8,25 +8,6 @@
#include <xen/config.h>
#include <xen/lib.h>
-#undef memmove
-void *memmove(void *dest, const void *src, size_t n)
-{
- int d0, d1, d2;
-
- if ( dest < src )
- return memcpy(dest, src, n);
-
- __asm__ __volatile__ (
- " std ; "
- " rep ; movsb ; "
- " cld "
- : "=&c" (d0), "=&S" (d1), "=&D" (d2)
- : "0" (n), "1" (n-1+(const char *)src), "2" (n-1+(char *)dest)
- : "memory");
-
- return dest;
-}
-
#undef memcpy
void *memcpy(void *dest, const void *src, size_t n)
{
@@ -61,3 +42,22 @@ void *memset(void *s, int c, size_t n)
return s;
}
+
+#undef memmove
+void *memmove(void *dest, const void *src, size_t n)
+{
+ int d0, d1, d2;
+
+ if ( dest < src )
+ return memcpy(dest, src, n);
+
+ __asm__ __volatile__ (
+ " std ; "
+ " rep ; movsb ; "
+ " cld "
+ : "=&c" (d0), "=&S" (d1), "=&D" (d2)
+ : "0" (n), "1" (n-1+(const char *)src), "2" (n-1+(char *)dest)
+ : "memory");
+
+ return dest;
+}