patch-2.4.0-test9 linux/include/asm-sh/string.h

Next file: linux/include/asm-sh/system.h
Previous file: linux/include/asm-sh/resource.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test8/linux/include/asm-sh/string.h linux/include/asm-sh/string.h
@@ -20,7 +20,7 @@
 			     " add	#1, %0\n\t"
 			     : "=r" (__dest), "=r" (__src), "=&z" (__dummy)
 			     : "0" (__dest), "1" (__src)
-			     : "memory");
+			     : "memory", "t");
 
 	return __xdest;
 }
@@ -46,7 +46,7 @@
 		"2:"
 		: "=r" (__dest), "=r" (__src), "=&z" (__dummy)
 		: "0" (__dest), "1" (__src), "r" (__src+__n)
-		: "memory");
+		: "memory", "t");
 
 	return __xdest;
 }
@@ -71,7 +71,8 @@
 		"sub	%3, %2\n"
 		"2:"
 		: "=r" (__cs), "=r" (__ct), "=&r" (__res), "=&z" (__dummy)
-		: "0" (__cs), "1" (__ct));
+		: "0" (__cs), "1" (__ct)
+		: "t");
 
 	return __res;
 }
@@ -82,6 +83,9 @@
 	register int __res;
 	unsigned long __dummy;
 
+	if (__n == 0)
+		return 0;
+
 	__asm__ __volatile__(
 		"mov.b	@%1+, %3\n"
 		"1:\n\t"
@@ -99,7 +103,8 @@
 		"sub	%3, %2\n"
 		"3:"
 		:"=r" (__cs), "=r" (__ct), "=&r" (__res), "=&z" (__dummy)
-		: "0" (__cs), "1" (__ct), "r" (__cs+__n));
+		: "0" (__cs), "1" (__ct), "r" (__cs+__n)
+		: "t");
 
 	return __res;
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)