/*
* 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)