/branches/arm/kernel/arch/arm32/src/asm.S |
---|
46,51 → 46,51 |
bic r3, r3, #3 |
cmp r1, r3 |
stmdb sp!, {r4, lr} |
beq case_4 |
case_1: |
beq 4f |
1: |
cmp r2, #0 |
movne ip, #0 |
beq case_3 |
case_2: |
beq 3f |
2: |
ldrb r3, [ip, r1] |
strb r3, [ip, r0] |
add ip, ip, #1 |
cmp ip, r2 |
bne case_2 |
case_3: |
bne 2b |
3: |
mov r0, r1 |
ldmia sp!, {r4, pc} |
case_4: |
4: |
add r3, r0, #3 |
bic r3, r3, #3 |
cmp r0, r3 |
bne case_1 |
bne 1b |
movs r4, r2, lsr #2 |
moveq lr, r4 |
beq case_6 |
beq 6f |
mov lr, #0 |
mov ip, lr |
case_5: |
5: |
ldr r3, [ip, r1] |
add lr, lr, #1 |
cmp lr, r4 |
str r3, [ip, r0] |
add ip, ip, #4 |
bne case_5 |
case_6: |
bne 5b |
6: |
ands r4, r2, #3 |
beq case_3 |
beq 3b |
mov r3, lr, lsl #2 |
add r0, r3, r0 |
add ip, r3, r1 |
mov r2, #0 |
case_7: |
7: |
ldrb r3, [r2, ip] |
strb r3, [r2, r0] |
add r2, r2, #1 |
cmp r2, r4 |
bne case_7 |
b case_3 |
bne 7b |
b 3b |
memcpy_from_uspace_failover_address: |
memcpy_to_uspace_failover_address: |