patch-1.3.4 linux/include/asm-i386/bitops.h

Next file: linux/include/asm-i386/io.h
Previous file: linux/include/asm-alpha/termios.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.3/linux/include/asm-i386/bitops.h linux/include/asm-i386/bitops.h
@@ -25,7 +25,7 @@
 
 	__asm__ __volatile__("btsl %2,%1\n\tsbbl %0,%0"
 		:"=r" (oldbit),"=m" (ADDR)
-		:"r" (nr));
+		:"ir" (nr));
 	return oldbit;
 }
 
@@ -35,7 +35,7 @@
 
 	__asm__ __volatile__("btrl %2,%1\n\tsbbl %0,%0"
 		:"=r" (oldbit),"=m" (ADDR)
-		:"r" (nr));
+		:"ir" (nr));
 	return oldbit;
 }
 
@@ -45,7 +45,7 @@
 
 	__asm__ __volatile__("btcl %2,%1\n\tsbbl %0,%0"
 		:"=r" (oldbit),"=m" (ADDR)
-		:"r" (nr));
+		:"ir" (nr));
 	return oldbit;
 }
 
@@ -59,7 +59,7 @@
 
 	__asm__ __volatile__("btl %2,%1\n\tsbbl %0,%0"
 		:"=r" (oldbit)
-		:"m" (ADDR),"r" (nr));
+		:"m" (ADDR),"ir" (nr));
 	return oldbit;
 }
 
@@ -75,20 +75,18 @@
 	__asm__("
 		cld
 		movl $-1,%%eax
+		xorl %%edx,%%edx
 		repe; scasl
 		je 1f
+		xorl -4(%%edi),%%eax
 		subl $4,%%edi
-		movl (%%edi),%%eax
-		notl %%eax
 		bsfl %%eax,%%edx
-		jmp 2f
-1:		xorl %%edx,%%edx
-2:		subl %%ebx,%%edi
+1:		subl %%ebx,%%edi
 		shll $3,%%edi
 		addl %%edi,%%edx"
 		:"=d" (res)
 		:"c" ((size + 31) >> 5), "D" (addr), "b" (addr)
-		:"ax", "bx", "cx", "di");
+		:"ax", "cx", "di");
 	return res;
 }
 

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