--- src/include/gcc/memcopy.h~	2001-01-20 04:08:22 +0000
+++ src/include/gcc/memcopy.h	2007-11-08 12:28:36 +0000
@@ -27,11 +27,12 @@
 
 #define __INLINE_386_ROWCOPY__(D,S,C,SIZE) ({                           \
     __asm__ volatile(                                                   \
-       " cld        \n"                                                 \
-       " rep        \n"                                                 \
-       " movs"#SIZE                                                     \
+	" cld        \n"                                                 \
+	" rep        \n"                                                 \
+	" movs"#SIZE                                                     \
 	: "=D" ((void *)(D)), "=S" ((void *)(S)), "=c" ((int)(C))       \
 	: "0"  ((void *)(D)), "1"  ((void *)(S)), "2"  ((int)(C))       \
+	: "memory"                                                      \
     );                                                                  \
 })
 
@@ -60,6 +61,7 @@
 	    "=&q" ((TYPE)_scr_)                                              \
 	  : "0"  ((void *)(DP)),"1"  ((void *)(SP)), "2" ((int)(C)),         \
 	    "gn" ((int)(DS)), "gn" ((int)(SS))                               \
+	  : "memory"                                                         \
     );                                                                       \
 })
 
@@ -84,6 +86,7 @@
 	  : "=r" ((void *)(DP)),"=r" ((void *)(SP)),"=r" ((int)(C)),         \
 	    "=&q" ((TYPE)_scr_)                                              \
 	  : "0"  ((void *)(DP)),"1"  ((void *)(SP)), "2" ((int)(C))          \
+	  : "memory"                                                         \
     );                                                                       \
 })
 
@@ -201,6 +204,7 @@
 	  : "=D" ((void *)(D)),"=S" ((void *)(S)),"=r" ((int)(C)),           \
 	    "=&c" ((int)_scr_)                                               \
 	  : "0"  ((void *)(D)), "1" ((void *)(S)), "2" ((int)(C))            \
+	  : "memory"                                                         \
     );                                                                       \
   else                                                                       \
     __asm__ volatile("\n"                                                    \
@@ -231,6 +235,7 @@
 	  : "=D" ((void *)(D)),"=S" ((void *)(S)),"=r" ((int)(C)),           \
 	    "=&c" ((int)_scr_)                                               \
 	  : "0"  ((void *)(D)), "1" ((void *)(S)), "2" ((int)(C))            \
+	  : "memory"                                                         \
     );                                                                       \
 } while (0)
 
--- src/include/gcc/memfill.h~	2001-01-20 04:08:38 +0000
+++ src/include/gcc/memfill.h	2007-11-08 12:32:36 +0000
@@ -33,9 +33,10 @@
 		" cld          \n"                                      \
 		" rep          \n"                                      \
 		" stos"#SIZE                                            \
-		  : "=D" ((void *)(P)), "=c" ((int)(C))                 \
-		  : "0"  ((void *)(P)), "1"  ((int)(C)),                \
-		    "a"  ((TYPE)(V))                                    \
+		: "=D" ((void *)(P)), "=c" ((int)(C))                   \
+		: "0"  ((void *)(P)), "1"  ((int)(C)),                  \
+		  "a"  ((TYPE)(V))                                      \
+		: "memory"                                              \
 	);                                                              \
 })
 #define __INLINE_STD_ROWFILL__(P,V,C,FMODE,SIZE,TYPE)                   \
@@ -58,6 +59,7 @@
 		: "=r" ((void *)(P)), "=r" ((int)(C))                   \
 		: "0"  ((void *)(P)), "1"  ((int)(C)),                  \
 		  "qn" ((TYPE)(V))                                      \
+		: "memory"                                              \
 	  );                                                            \
 	else                                                            \
 	if(__builtin_constant_p(SKIP) && ((SKIP) == 2))                 \
@@ -76,6 +78,7 @@
 		: "=r" ((void *)(P)), "=r" ((int)(C))                   \
 		: "0"  ((void *)(P)), "1"  ((int)(C)),                  \
 		  "qn" ((TYPE)(V))                                      \
+		: "memory"                                              \
 	  );                                                            \
 	else                                                            \
 	if(__builtin_constant_p(SKIP) && ((SKIP) == 4))                 \
@@ -94,6 +97,7 @@
 		: "=r" ((void *)(P)), "=r" ((int)(C))                   \
 		: "0"  ((void *)(P)), "1"  ((int)(C)),                  \
 		  "qn" ((TYPE)(V))                                      \
+		: "memory"                                              \
 	  );                                                            \
 	else                                                            \
 	  __asm__ volatile(""                                           \
@@ -111,6 +115,7 @@
 		: "=r" ((void *)(P)), "=r" ((int)(C))                   \
 		: "0"  ((void *)(P)), "1"  ((int)(C)),                  \
 		  "ng" ((int)(SKIP)), "qn" ((TYPE)(V))                  \
+		: "memory"                                              \
 	  );                                                            \
 })
 #define __INLINE_STD_COLFILL__(P,V,C,SKIP,FMODE,INS,SIZE,TYPE)          \
@@ -167,11 +172,12 @@
     "      movb    %%al,(%%edi)             \n"    \
     "      incl    %%edi                    \n"    \
     "4:                                       "    \
-  : "=c" ((unsigned int) (c)),                     \
-    "=D" ((void *)(p))                             \
-  : "0" ((unsigned int) (c)),                      \
-    "1" ((void *)(p)),                             \
-    "a" ((GR_int32u)(v))                           \
+    : "=c" ((unsigned int) (c)),                   \
+      "=D" ((void *)(p))                           \
+    : "0" ((unsigned int) (c)),                    \
+      "1" ((void *)(p)),                           \
+      "a" ((GR_int32u)(v))                         \
+    : "memory"                                     \
   );                                               \
 } while (0)
 
@@ -250,9 +256,9 @@
     "    "#INS"b  %%dl,"#SEG"(%0)    \n"                           \
     "      incl   %0                 \n"                           \
     "9:                              \n"                           \
-          : "=r" ((void *)(p)), "=r" ((int)(b)), "=d" (_dummy_)    \
-          : "2"  ((int)(c)), "0"  ((void *)(p)), "1"  ((int)(b))   \
-          : "ax", "cx"                                             \
+    : "=r" ((void *)(p)), "=r" ((int)(b)), "=d" (_dummy_)          \
+    : "2"  ((int)(c)), "0"  ((void *)(p)), "1"  ((int)(b))         \
+    : "ax", "cx", "memory"                                         \
   );                                                               \
 } while (0)
 

