patch-pre2.0.9 linux/include/asm-i386/system.h

Next file: linux/include/asm-ppc/posix_types.h
Previous file: linux/include/asm-i386/checksum.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file pre2.0.8/linux/include/asm-i386/system.h linux/include/asm-i386/system.h
@@ -199,18 +199,21 @@
 	switch (size) {
 		case 1:
 			__asm__("xchgb %b0,%1"
-				:"=&q" (x), "=m" (*__xg(ptr))
-				:"0" (x), "m" (*__xg(ptr)));
+				:"=q" (x)
+				:"m" (*__xg(ptr)), "0" (x)
+				:"memory");
 			break;
 		case 2:
 			__asm__("xchgw %w0,%1"
-				:"=&r" (x), "=m" (*__xg(ptr))
-				:"0" (x), "m" (*__xg(ptr)));
+				:"=r" (x)
+				:"m" (*__xg(ptr)), "0" (x)
+				:"memory");
 			break;
 		case 4:
 			__asm__("xchgl %0,%1"
-				:"=&r" (x), "=m" (*__xg(ptr))
-				:"0" (x), "m" (*__xg(ptr)));
+				:"=r" (x)
+				:"m" (*__xg(ptr)), "0" (x)
+				:"memory");
 			break;
 	}
 	return x;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this