Disassembly of section .text.__udelay: 00000000 <__udelay>: 0: e92d 4cf0 stmdb sp!, {r4, r5, r6, r7, sl, fp, lr} 4: ee1e 1f10 mrc 15, 0, r1, cr14, cr0, {0} 8: f244 243f movw r4, #16959 ; 0x423f c: f2c0 040f movt r4, #15 10: 2500 movs r5, #0 12: f243 4edb movw lr, #13531 ; 0x34db 16: fbe1 4500 umlal r4, r5, r1, r0 1a: f2cd 7eb6 movt lr, #55222 ; 0xd7b6 1e: f64d 6c82 movw ip, #56962 ; 0xde82 22: f2c4 3c1b movt ip, #17179 ; 0x431b 26: 2300 movs r3, #0 28: f64d 6082 movw r0, #56962 ; 0xde82 2c: f2c4 301b movt r0, #17179 ; 0x431b 30: fba4 670e umull r6, r7, r4, lr 34: 4629 mov r1, r5 36: 2500 movs r5, #0 38: fba4 ab0c umull sl, fp, r4, ip 3c: fb0e 7205 mla r2, lr, r5, r7 40: fb0c bb05 mla fp, ip, r5, fp 44: 2500 movs r5, #0 46: fbee 2301 umlal r2, r3, lr, r1 4a: eb1a 0a02 adds.w sl, sl, r2 4e: eb4b 0b03 adc.w fp, fp, r3 52: 459b cmp fp, r3 54: 465c mov r4, fp 56: bf08 it eq 58: 4592 cmpeq sl, r2 5a: fbe0 4501 umlal r4, r5, r0, r1 5e: f04f 0200 mov.w r2, #0 62: bf2c ite cs 64: 2300 movcs r3, #0 66: 2301 movcc r3, #1 68: 4620 mov r0, r4 6a: 4629 mov r1, r5 6c: ec55 4f0e mrrc 15, 0, r4, r5, cr14 70: 1812 adds r2, r2, r0 72: f8c9 40a4 str.w r4, [r9, #164] ; 0xa4 76: 414b adcs r3, r1 78: f8c9 50a0 str.w r5, [r9, #160] ; 0xa0 7c: 0c92 lsrs r2, r2, #18 7e: 4649 mov r1, r9 80: ea42 3283 orr.w r2, r2, r3, lsl #14 84: 18a4 adds r4, r4, r2 86: f145 0500 adc.w r5, r5, #0 8a: ec53 2f0e mrrc 15, 0, r2, r3, cr14 8e: 42ab cmp r3, r5 90: f8c1 20a4 str.w r2, [r1, #164] ; 0xa4 94: bf08 it eq 96: 42a2 cmpeq r2, r4 98: f8c1 30a0 str.w r3, [r1, #160] ; 0xa0 9c: d3f5 bcc.n 8a <__udelay+0x8a> 9e: e8bd 8cf0 ldmia.w sp!, {r4, r5, r6, r7, sl, fp, pc} a2: bf00 nop