indeed..you're right, saving r12 seems to be not necessary. i did some tests, even with gcc 5, all worked. but i'm still only 99.9% sure .-)dds
| @@ -44,7 +44,7 @@ | |||
| @ r1: srcL | |||
| @ r2: srcR | |||
| push {r4-r12,r14} | |||
| push {r4-r11,r14} | |||
| add r14,r0,#256 // TODO: 256 = AUDIO_BLOCK_SAMPLES*2 | |||
| .align 2 | |||
| .loopLR: | |||
| @@ -75,7 +75,7 @@ | |||
| cmp r14, r0 | |||
| bne .loopLR | |||
| pop {r4-r12,r14} | |||
| pop {r4-r11,r14} | |||
| BX lr | |||
| @@ -87,7 +87,7 @@ | |||
| @ r0: dst | |||
| @ r1: srcL | |||
| push {r4-r12} | |||
| push {r4-r11} | |||
| mov r2, #0 | |||
| add r12,r0,#256 // TODO: 256 = AUDIO_BLOCK_SAMPLES*2 | |||
| .align 2 | |||
| @@ -118,7 +118,7 @@ | |||
| cmp r12, r0 | |||
| bne .loopL | |||
| pop {r4-r12} | |||
| pop {r4-r11} | |||
| BX lr | |||
| /* void memcpy_tointerleaveL(short *dst, short *srcR); */ | |||
| @@ -129,7 +129,7 @@ | |||
| @ r0: dst | |||
| @ r1: srcR | |||
| push {r4-r12} | |||
| push {r4-r11} | |||
| mov r2, #0 | |||
| add r12,r0,#256 // TODO: 256 = AUDIO_BLOCK_SAMPLES*2 | |||
| .align 2 | |||
| @@ -160,7 +160,7 @@ | |||
| cmp r12, r0 | |||
| bne .loopR | |||
| pop {r4-r12} | |||
| pop {r4-r11} | |||
| BX lr | |||