#include <machine/asm.h>
ENTRY(rapide_bs_rm_4)
add r0, r1, r2
mov r1, r3
ldr r2, [sp, #0]
tst r2, #0x7f
beq rapide_rm_4_m128
tst r2, #0x07
beq rapide_rm_4_m8
rapide_rm_4_loop:
ldr r3, [r0]
str r3, [r1], #0x0004
subs r2, r2, #1
bne rapide_rm_4_loop
mov pc, lr
rapide_rm_4_m8:
stmfd sp!, {r4-r10}
rapide_rm_4_m8_loop:
ldmia r0, {r3-r10}
stmia r1!, {r3-r10}
subs r2, r2, #8
bne rapide_rm_4_m8_loop
ldmfd sp!, {r4-r10}
mov pc, lr
rapide_rm_4_m128:
stmfd sp!, {r4-r12, r14}
rapide_rm_4_m128_loop:
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r12, r14}
stmia r1!, {r3-r12, r14}
ldmia r0, {r3-r9}
stmia r1!, {r3-r9}
subs r2, r2, #128
bne rapide_rm_4_m128_loop
ldmfd sp!, {r4-r12, pc}
ENTRY(rapide_bs_wm_4)
add r0, r1, r2
mov r1, r3
ldr r2, [sp, #0]
tst r2, #0x7f
beq rapide_wm_4_m128
tst r2, #0x07
beq rapide_wm_4_m8
rapide_wm_4_loop:
ldr r3, [r1], #0x0004
str r3, [r0]
subs r2, r2, #1
bne rapide_wm_4_loop
mov pc, lr
rapide_wm_4_m8:
stmfd sp!, {r4-r10}
rapide_wm_4_m8_loop:
ldmia r1!, {r3-r10}
stmia r0, {r3-r10}
subs r2, r2, #8
bne rapide_wm_4_m8_loop
ldmfd sp!, {r4-r10}
mov pc, lr
rapide_wm_4_m128:
stmfd sp!, {r4-r12}
rapide_wm_4_m128_loop:
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r12}
stmia r0, {r3-r12}
ldmia r1!, {r3-r10}
stmia r0, {r3-r10}
subs r2, r2, #128
bne rapide_wm_4_m128_loop
ldmfd sp!, {r4-r12}
mov pc, lr