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 @@ | |||
31 | * | 31 | * |
32 | * This is written to work on a ARM7TDMI processor. This version only uses the | 32 | * This is written to work on a ARM7TDMI processor. This version only uses the |
33 | * 32-bit multiply-accumulate instruction and so will overflow with 24-bit | 33 | * 32-bit multiply-accumulate instruction and so will overflow with 24-bit |
34 | * WavPack files. The advanced 64-bit multiply instructions in the ARM will | 34 | * WavPack files. |
35 | * provide full resolution for this, but are somewhat slower and have not | ||
36 | * been included yet. | ||
37 | */ | 35 | */ |
38 | .text | 36 | .text |
39 | .align | 37 | .align |
@@ -248,7 +246,7 @@ term_2_loop: | |||
248 | term_default_loop: | 246 | term_default_loop: |
249 | ldr ip, [r1] @ get original sample | 247 | ldr ip, [r1] @ get original sample |
250 | ldr r3, [r1, -r2, asl #3] @ get decorrelation value based on term | 248 | ldr r3, [r1, -r2, asl #3] @ get decorrelation value based on term |
251 | mla r8, r4, r3, r11 @ mult decorr value by weight, round, | 249 | mla r8, r3, r4, r11 @ mult decorr value by weight, round, |
252 | add r8, ip, r8, asr #10 @ shift and add to new sample | 250 | add r8, ip, r8, asr #10 @ shift and add to new sample |
253 | str r8, [r1], #4 @ store update sample | 251 | str r8, [r1], #4 @ store update sample |
254 | cmp r3, #0 | 252 | cmp r3, #0 |
@@ -260,7 +258,7 @@ term_default_loop: | |||
260 | 258 | ||
261 | .L350: ldr ip, [r1] @ do the same thing for right channel | 259 | .L350: ldr ip, [r1] @ do the same thing for right channel |
262 | ldr r3, [r1, -r2, asl #3] | 260 | ldr r3, [r1, -r2, asl #3] |
263 | mla r8, r0, r3, r11 | 261 | mla r8, r3, r0, r11 |
264 | add r8, ip, r8, asr #10 | 262 | add r8, ip, r8, asr #10 |
265 | str r8, [r1], #4 | 263 | str r8, [r1], #4 |
266 | cmp r3, #0 | 264 | cmp r3, #0 |
@@ -330,7 +328,7 @@ term_minus_1_loop: | |||
330 | movlt r4, r10 | 328 | movlt r4, r10 |
331 | 329 | ||
332 | .L361: ldr r2, [r1, #-4] @ for right channel the decorrelation value | 330 | .L361: ldr r2, [r1, #-4] @ for right channel the decorrelation value |
333 | mla r3, r0, lr, r11 @ is the just updated right sample (in lr) | 331 | mla r3, lr, r0, r11 @ is the just updated right sample (in lr) |
334 | add r3, r2, r3, asr #10 | 332 | add r3, r2, r3, asr #10 |
335 | str r3, [r1, #-4] | 333 | str r3, [r1, #-4] |
336 | cmp lr, #0 | 334 | cmp lr, #0 |
@@ -386,7 +384,7 @@ term_minus_2_loop: | |||
386 | movlt r0, r10 | 384 | movlt r0, r10 |
387 | 385 | ||
388 | .L380: ldr r2, [r1, #0] @ for left channel the decorrelation value | 386 | .L380: ldr r2, [r1, #0] @ for left channel the decorrelation value |
389 | mla r3, r4, lr, r11 @ is the just updated left sample (in lr) | 387 | mla r3, lr, r4, r11 @ is the just updated left sample (in lr) |
390 | add r3, r2, r3, asr #10 | 388 | add r3, r2, r3, asr #10 |
391 | str r3, [r1], #8 | 389 | str r3, [r1], #8 |
392 | cmp lr, #0 | 390 | cmp lr, #0 |