patch-2.2.0-pre1 linux/arch/i386/lib/delay.c

Next file: linux/arch/i386/lib/old-checksum.c
Previous file: linux/arch/i386/lib/checksum.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.132/linux/arch/i386/lib/delay.c linux/arch/i386/lib/delay.c
@@ -19,23 +19,23 @@
 
 void __delay(unsigned long loops)
 {
+	int d0;
 	__asm__ __volatile__(
 		"\tjmp 1f\n"
 		".align 16\n"
 		"1:\tjmp 2f\n"
 		".align 16\n"
 		"2:\tdecl %0\n\tjns 2b"
-		:/* no outputs */
-		:"a" (loops)
-		:"ax");
+		:"=&a" (d0)
+		:"0" (loops));
 }
 
 inline void __const_udelay(unsigned long xloops)
 {
+	int d0;
 	__asm__("mull %0"
-		:"=d" (xloops)
-		:"a" (xloops),"0" (current_cpu_data.loops_per_sec)
-		:"ax");
+		:"=d" (xloops), "=&a" (d0)
+		:"1" (xloops),"0" (current_cpu_data.loops_per_sec));
         __delay(xloops);
 }
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov