diff options
Diffstat (limited to 'apps/codecs/libmusepack/synth_filter.c')
-rw-r--r-- | apps/codecs/libmusepack/synth_filter.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/apps/codecs/libmusepack/synth_filter.c b/apps/codecs/libmusepack/synth_filter.c index ae94741368..9c8d27eed2 100644 --- a/apps/codecs/libmusepack/synth_filter.c +++ b/apps/codecs/libmusepack/synth_filter.c | |||
@@ -54,9 +54,16 @@ | |||
54 | 54 | ||
55 | // in this configuration a post-shift by >>1 is needed after synthesis | 55 | // in this configuration a post-shift by >>1 is needed after synthesis |
56 | #else | 56 | #else |
57 | // saturate to +/- 2^31 (= value << (31-17)), D-values are +/- 2^17 | 57 | #if defined(CPU_ARM) |
58 | #define D(value) (value << (14)) | 58 | // do not up-scale D-values to achieve higher speed in smull/mlal |
59 | 59 | // operations. saves ~14/8 = 1.75 cycles per multiplication | |
60 | #define D(value) (value) | ||
61 | |||
62 | // in this configuration a post-shift by >>16 is needed after synthesis | ||
63 | #else | ||
64 | // saturate to +/- 2^31 (= value << (31-17)), D-values are +/- 2^17 | ||
65 | #define D(value) (value << (14)) | ||
66 | #endif | ||
60 | // do not perform pre-shift | 67 | // do not perform pre-shift |
61 | #define MPC_V_PRESHIFT(X) (X) | 68 | #define MPC_V_PRESHIFT(X) (X) |
62 | #endif | 69 | #endif |