diff options
Diffstat (limited to 'arch/i386/lib/delay.c')
-rw-r--r-- | arch/i386/lib/delay.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/i386/lib/delay.c b/arch/i386/lib/delay.c index ae8aec636..6918451a6 100644 --- a/arch/i386/lib/delay.c +++ b/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); } |