This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / include / asm-m68k / string.h
index 44def07..7ea5dc8 100644 (file)
@@ -290,7 +290,9 @@ static inline void * __memset_g(void * s, int c, size_t count)
 static inline void * __memset_page(void * s,int c,size_t count)
 {
   unsigned long data, tmp;
-  void *xs = s;
+  void *xs, *sp;
+
+  xs = sp = s;
 
   c = c & 255;
   data = c | (c << 8);
@@ -301,11 +303,10 @@ static inline void * __memset_page(void * s,int c,size_t count)
   if (((unsigned long) s) & 0x0f)
          __memset_g(s, c, count);
   else{
-         unsigned long *sp = s;
-         *sp++ = data;
-         *sp++ = data;
-         *sp++ = data;
-         *sp++ = data;
+         *((unsigned long *)(s))++ = data;
+         *((unsigned long *)(s))++ = data;
+         *((unsigned long *)(s))++ = data;
+         *((unsigned long *)(s))++ = data;
 
          __asm__ __volatile__("1:\t"
                               ".chip 68040\n\t"
@@ -314,8 +315,8 @@ static inline void * __memset_page(void * s,int c,size_t count)
                               "subqw  #8,%2\n\t"
                               "subqw  #8,%2\n\t"
                               "dbra   %1,1b\n\t"
-                              : "=a" (sp), "=d" (tmp)
-                              : "a" (s), "0" (sp), "1" ((count - 16) / 16 - 1)
+                              : "=a" (s), "=d" (tmp)
+                              : "a" (sp), "0" (s), "1" ((count - 16) / 16 - 1)
                               );
   }