Commit d23f7137 authored by Russell King's avatar Russell King

[ARM] Optimise readsl.

This optimises the underlying string-long read function for little
endian platforms.
parent 3297f15f
...@@ -19,10 +19,24 @@ ENTRY(__raw_readsl) ...@@ -19,10 +19,24 @@ ENTRY(__raw_readsl)
ands ip, r1, #3 ands ip, r1, #3
bne 2f bne 2f
1: ldr r3, [r0] subs r2, r2, #4
str r3, [r1], #4 bmi 1001f
subs r2, r2, #1 stmfd sp!, {r4, lr}
bne 1b 1000: ldr r3, [r0, #0]
ldr r4, [r0, #0]
ldr ip, [r0, #0]
ldr lr, [r0, #0]
subs r2, r2, #4
stmia r1!, {r3, r4, ip, lr}
bpl 1000b
ldmfd sp!, {r4, lr}
1001: tst r2, #2
ldrne r3, [r0, #0]
ldrne ip, [r0, #0]
stmneia r1!, {r3, ip}
tst r2, #1
ldrne r3, [r0, #0]
strne r3, [r1, #0]
mov pc, lr mov pc, lr
2: cmp ip, #2 2: cmp ip, #2
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment