|
|
|
|
|
|
|
|
@ r1: srcL |
|
|
@ r1: srcL |
|
|
@ r2: srcR |
|
|
@ r2: srcR |
|
|
|
|
|
|
|
|
push {r4-r12,r14} |
|
|
|
|
|
|
|
|
push {r4-r11,r14} |
|
|
add r14,r0,#256 // TODO: 256 = AUDIO_BLOCK_SAMPLES*2 |
|
|
add r14,r0,#256 // TODO: 256 = AUDIO_BLOCK_SAMPLES*2 |
|
|
.align 2 |
|
|
.align 2 |
|
|
.loopLR: |
|
|
.loopLR: |
|
|
|
|
|
|
|
|
cmp r14, r0 |
|
|
cmp r14, r0 |
|
|
bne .loopLR |
|
|
bne .loopLR |
|
|
|
|
|
|
|
|
pop {r4-r12,r14} |
|
|
|
|
|
|
|
|
pop {r4-r11,r14} |
|
|
BX lr |
|
|
BX lr |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ r0: dst |
|
|
@ r0: dst |
|
|
@ r1: srcL |
|
|
@ r1: srcL |
|
|
|
|
|
|
|
|
push {r4-r12} |
|
|
|
|
|
|
|
|
push {r4-r11} |
|
|
mov r2, #0 |
|
|
mov r2, #0 |
|
|
add r12,r0,#256 // TODO: 256 = AUDIO_BLOCK_SAMPLES*2 |
|
|
add r12,r0,#256 // TODO: 256 = AUDIO_BLOCK_SAMPLES*2 |
|
|
.align 2 |
|
|
.align 2 |
|
|
|
|
|
|
|
|
cmp r12, r0 |
|
|
cmp r12, r0 |
|
|
bne .loopL |
|
|
bne .loopL |
|
|
|
|
|
|
|
|
pop {r4-r12} |
|
|
|
|
|
|
|
|
pop {r4-r11} |
|
|
BX lr |
|
|
BX lr |
|
|
|
|
|
|
|
|
/* void memcpy_tointerleaveL(short *dst, short *srcR); */ |
|
|
/* void memcpy_tointerleaveL(short *dst, short *srcR); */ |
|
|
|
|
|
|
|
|
@ r0: dst |
|
|
@ r0: dst |
|
|
@ r1: srcR |
|
|
@ r1: srcR |
|
|
|
|
|
|
|
|
push {r4-r12} |
|
|
|
|
|
|
|
|
push {r4-r11} |
|
|
mov r2, #0 |
|
|
mov r2, #0 |
|
|
add r12,r0,#256 // TODO: 256 = AUDIO_BLOCK_SAMPLES*2 |
|
|
add r12,r0,#256 // TODO: 256 = AUDIO_BLOCK_SAMPLES*2 |
|
|
.align 2 |
|
|
.align 2 |
|
|
|
|
|
|
|
|
cmp r12, r0 |
|
|
cmp r12, r0 |
|
|
bne .loopR |
|
|
bne .loopR |
|
|
|
|
|
|
|
|
pop {r4-r12} |
|
|
|
|
|
|
|
|
pop {r4-r11} |
|
|
BX lr |
|
|
BX lr |
|
|
|
|
|
|
|
|
|
|
|
|