ENTRY(__raw_writesl)
teq r2,
moveq pc, lr
ands ip, r1,
bne 3f
subs r2, r2,
bmi 2f
stmfd sp!, {r4, lr}
1: ldmia r1!, {r3, r4, ip, lr}
subs r2, r2,
str r3, [r0,
str r4, [r0,
str ip, [r0,
str lr, [r0,
bpl 1b
ldmfd sp!, {r4, lr}
2: movs r2, r2, lsl
ldmcsia r1!, {r3, ip}
strcs r3, [r0,
ldrne r3, [r1,
strcs ip, [r0,
strne r3, [r0,
mov pc, lr
3: bic r1, r1,
ldr r3, [r1],
cmp ip,
blt 5f
bgt 6f
4: mov ip, r3, pull
ldr r3, [r1],
subs r2, r2,
orr ip, ip, r3, push
str ip, [r0]
bne 4b
mov pc, lr
5: mov ip, r3, pull
ldr r3, [r1],
subs r2, r2,
orr ip, ip, r3, push
str ip, [r0]
bne 5b
mov pc, lr
6: mov ip, r3, pull
ldr r3, [r1],
subs r2, r2,
orr ip, ip, r3, push
str ip, [r0]
bne 6b
mov pc, lr
ENDPROC(__raw_writesl)