vserver 1.9.5.x5
[linux-2.6.git] / arch / arm / lib / delay.S
index 67cbd86..3c7f7e6 100644 (file)
@@ -16,15 +16,16 @@ LC0:                .word   loops_per_jiffy
 /*
  * 0 <= r0 <= 2000
  */
-ENTRY(udelay)
+ENTRY(__udelay)
                mov     r2,     #0x6800
                orr     r2, r2, #0x00db
-               mul     r1, r0, r2
+               mul     r0, r2, r0
+ENTRY(__const_udelay)                          @ 0 <= r0 <= 0x01ffffff
                ldr     r2, LC0
-               ldr     r2, [r2]
-               mov     r1, r1, lsr #11
-               mov     r2, r2, lsr #11
-               mul     r0, r1, r2
+               ldr     r2, [r2]                @ max = 0x0fffffff
+               mov     r0, r0, lsr #11         @ max = 0x00003fff
+               mov     r2, r2, lsr #11         @ max = 0x0003ffff
+               mul     r0, r2, r0              @ max = 2^32-1
                movs    r0, r0, lsr #6
                RETINSTR(moveq,pc,lr)