diff options
Diffstat (limited to 'apps/codecs/libwavpack/arm.S')
-rw-r--r-- | apps/codecs/libwavpack/arm.S | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/apps/codecs/libwavpack/arm.S b/apps/codecs/libwavpack/arm.S index 0b92bfccd7..233bfd3a52 100644 --- a/apps/codecs/libwavpack/arm.S +++ b/apps/codecs/libwavpack/arm.S @@ -31,9 +31,7 @@ * * This is written to work on a ARM7TDMI processor. This version only uses the * 32-bit multiply-accumulate instruction and so will overflow with 24-bit - * WavPack files. The advanced 64-bit multiply instructions in the ARM will - * provide full resolution for this, but are somewhat slower and have not - * been included yet. + * WavPack files. */ .text .align @@ -248,7 +246,7 @@ term_2_loop: term_default_loop: ldr ip, [r1] @ get original sample ldr r3, [r1, -r2, asl #3] @ get decorrelation value based on term - mla r8, r4, r3, r11 @ mult decorr value by weight, round, + mla r8, r3, r4, r11 @ mult decorr value by weight, round, add r8, ip, r8, asr #10 @ shift and add to new sample str r8, [r1], #4 @ store update sample cmp r3, #0 @@ -260,7 +258,7 @@ term_default_loop: .L350: ldr ip, [r1] @ do the same thing for right channel ldr r3, [r1, -r2, asl #3] - mla r8, r0, r3, r11 + mla r8, r3, r0, r11 add r8, ip, r8, asr #10 str r8, [r1], #4 cmp r3, #0 @@ -330,7 +328,7 @@ term_minus_1_loop: movlt r4, r10 .L361: ldr r2, [r1, #-4] @ for right channel the decorrelation value - mla r3, r0, lr, r11 @ is the just updated right sample (in lr) + mla r3, lr, r0, r11 @ is the just updated right sample (in lr) add r3, r2, r3, asr #10 str r3, [r1, #-4] cmp lr, #0 @@ -386,7 +384,7 @@ term_minus_2_loop: movlt r0, r10 .L380: ldr r2, [r1, #0] @ for left channel the decorrelation value - mla r3, r4, lr, r11 @ is the just updated left sample (in lr) + mla r3, lr, r4, r11 @ is the just updated left sample (in lr) add r3, r2, r3, asr #10 str r3, [r1], #8 cmp lr, #0 |