1
0
Fork 0
forked from len0rd/rockbox

Enabled the FLAC EMAC optimisations.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7678 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Thom Johansen 2005-10-28 22:03:52 +00:00
parent eb87ad5e32
commit 6ff8463216
2 changed files with 12 additions and 0 deletions

View file

@ -1,2 +1,5 @@
bitstream.c bitstream.c
decoder.c decoder.c
#if defined(CPU_COLDFIRE) && !defined(SIMULATOR)
coldfire.S
#endif

View file

@ -42,6 +42,10 @@
#include "decoder.h" #include "decoder.h"
#if defined(CPU_COLDFIRE) && !defined(SIMULATOR)
#include "coldfire.h"
#endif
#define INT_MAX 2147483647 #define INT_MAX 2147483647
#define FFMAX(a,b) ((a) > (b) ? (a) : (b)) #define FFMAX(a,b) ((a) > (b) ? (a) : (b))
@ -262,6 +266,10 @@ static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order)
return -8; return -8;
if ((s->bps + coeff_prec + av_log2(pred_order)) <= 32) { if ((s->bps + coeff_prec + av_log2(pred_order)) <= 32) {
#if defined(CPU_COLDFIRE) && !defined(SIMULATOR)
(void)sum;
lpc_decode_emac(s->blocksize - pred_order, qlevel, pred_order, decoded + pred_order, coeffs);
#else
for (i = pred_order; i < s->blocksize; i++) for (i = pred_order; i < s->blocksize; i++)
{ {
sum = 0; sum = 0;
@ -269,6 +277,7 @@ static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order)
sum += coeffs[j] * decoded[i-j-1]; sum += coeffs[j] * decoded[i-j-1];
decoded[i] += sum >> qlevel; decoded[i] += sum >> qlevel;
} }
#endif
} else { } else {
for (i = pred_order; i < s->blocksize; i++) for (i = pred_order; i < s->blocksize; i++)
{ {