vserver 1.9.5.x5
[linux-2.6.git] / include / asm-sparc / string.h
index 1182435..cb1e923 100644 (file)
@@ -22,7 +22,6 @@ extern __kernel_size_t __memset(void *,int,__kernel_size_t);
 #ifndef EXPORT_SYMTAB_STROPS
 
 /* First the mem*() things. */
-#define __HAVE_ARCH_BCOPY
 #define __HAVE_ARCH_MEMMOVE
 #undef memmove
 #define memmove(_to, _from, _n) \
@@ -40,6 +39,9 @@ static inline void *__constant_memcpy(void *to, const void *from, __kernel_size_
 
        if(n <= 32) {
                __builtin_memcpy(to, from, n);
+       } else if (((unsigned int) to & 7) != 0) {
+               /* Destination is not aligned on the double-word boundary */
+               __memcpy(to, from, n);
        } else {
                switch(n) {
                case PAGE_SIZE: