libmusepack: use postindexing on the pointer when storing to increment it for free, saves another instruction in the loop in mpc_decoder_windowing_D speed difference is in the noise though.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28492 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
34fb311638
commit
f174c3513b
1 changed files with 3 additions and 6 deletions
|
@ -238,13 +238,12 @@ mpc_decoder_windowing_D:
|
||||||
/* store Data[01..15] */
|
/* store Data[01..15] */
|
||||||
mov r8, r8, lsr #16
|
mov r8, r8, lsr #16
|
||||||
orr r8, r8, r9, lsl #16 /* (lo>>16) || (hi<<16) */
|
orr r8, r8, r9, lsl #16 /* (lo>>16) || (hi<<16) */
|
||||||
str r8, [r0] /* store Data */
|
|
||||||
/* store Data[31..17] */
|
/* store Data[31..17] */
|
||||||
mov r10, r10, lsr #16
|
mov r10, r10, lsr #16
|
||||||
orr r10, r10, r11, lsl #16 /* (lo>>16) || (hi<<16) */
|
orr r10, r10, r11, lsl #16 /* (lo>>16) || (hi<<16) */
|
||||||
rsb r10, r10, #0 /* r10 = -r10 */
|
rsb r10, r10, #0 /* r10 = -r10 */
|
||||||
str r10, [r0, lr] /* store Data */
|
str r10, [r0, lr] /* store Data */
|
||||||
add r0, r0, #4 /* r0++ */
|
str r8, [r0], #4 /* store Data */
|
||||||
/* correct adresses for next loop */
|
/* correct adresses for next loop */
|
||||||
sub r12, r12, #4 /* r12 = V-- */
|
sub r12, r12, #4 /* r12 = V-- */
|
||||||
add r1, r1, #4 /* r1 = V++ */
|
add r1, r1, #4 /* r1 = V++ */
|
||||||
|
@ -441,13 +440,12 @@ mpc_decoder_windowing_D:
|
||||||
/* store Data[01..15] */
|
/* store Data[01..15] */
|
||||||
mov r8, r8, lsr #16
|
mov r8, r8, lsr #16
|
||||||
orr r8, r8, r9, lsl #16 /* (lo>>16) || (hi<<16) */
|
orr r8, r8, r9, lsl #16 /* (lo>>16) || (hi<<16) */
|
||||||
str r8, [r0] /* store Data */
|
|
||||||
/* store Data[31..17] */
|
/* store Data[31..17] */
|
||||||
mov r10, r10, lsr #16
|
mov r10, r10, lsr #16
|
||||||
orr r10, r10, r11, lsl #16 /* (lo>>16) || (hi<<16) */
|
orr r10, r10, r11, lsl #16 /* (lo>>16) || (hi<<16) */
|
||||||
rsb r10, r10, #0 /* r10 = -r10 */
|
rsb r10, r10, #0 /* r10 = -r10 */
|
||||||
str r10, [r0, lr] /* store Data */
|
str r10, [r0, lr] /* store Data */
|
||||||
add r0, r0, #4 /* r0++ */
|
str r8, [r0], #4 /* store Data */
|
||||||
/* correct adresses for next loop */
|
/* correct adresses for next loop */
|
||||||
sub r12, r12, #4 /* r12 = V-- */
|
sub r12, r12, #4 /* r12 = V-- */
|
||||||
add r1, r1, #4 /* r1 = V++ */
|
add r1, r1, #4 /* r1 = V++ */
|
||||||
|
@ -641,11 +639,10 @@ mpc_decoder_windowing_D:
|
||||||
rsb r11, r11, #0 /* r11 = -r11 */
|
rsb r11, r11, #0 /* r11 = -r11 */
|
||||||
/* store Data[01..15] */
|
/* store Data[01..15] */
|
||||||
mov r9, r9, lsl #2
|
mov r9, r9, lsl #2
|
||||||
str r9, [r0] /* store Data */
|
|
||||||
/* store Data[31..17] */
|
/* store Data[31..17] */
|
||||||
mov r11, r11, lsl #2
|
mov r11, r11, lsl #2
|
||||||
str r11, [r0, lr] /* store Data */
|
str r11, [r0, lr] /* store Data */
|
||||||
add r0, r0, #4 /* r0++ */
|
str r9, [r0], #4 /* store Data */
|
||||||
/* next loop */
|
/* next loop */
|
||||||
subs lr, lr, #8
|
subs lr, lr, #8
|
||||||
bgt .loop15
|
bgt .loop15
|
||||||
|
|
Loading…
Reference in a new issue