| Index: silk/SigProc_FIX.h
|
| diff --git a/silk/SigProc_FIX.h b/silk/SigProc_FIX.h
|
| index 1b580579104143b8c560bf4930bf1031b55ece97..b63299441e930a385e97ef9c13d5755cc0f9c413 100644
|
| --- a/silk/SigProc_FIX.h
|
| +++ b/silk/SigProc_FIX.h
|
| @@ -41,7 +41,11 @@ extern "C"
|
| #include "typedef.h"
|
| #include "resampler_structs.h"
|
| #include "macros.h"
|
| +#include "cpu_support.h"
|
|
|
| +#if defined(OPUS_X86_MAY_HAVE_SSE4_1)
|
| +#include "x86/SigProc_FIX_sse.h"
|
| +#endif
|
|
|
| /********************************************************************/
|
| /* SIGNAL PROCESSING FUNCTIONS */
|
| @@ -108,7 +112,8 @@ void silk_LPC_analysis_filter(
|
| const opus_int16 *in, /* I Input signal */
|
| const opus_int16 *B, /* I MA prediction coefficients, Q12 [order] */
|
| const opus_int32 len, /* I Signal length */
|
| - const opus_int32 d /* I Filter order */
|
| + const opus_int32 d, /* I Filter order */
|
| + int arch /* I Run-time architecture */
|
| );
|
|
|
| /* Chirp (bandwidth expand) LP AR filter */
|
| @@ -303,7 +308,7 @@ void silk_NLSF_VQ_weights_laroia(
|
| );
|
|
|
| /* Compute reflection coefficients from input signal */
|
| -void silk_burg_modified(
|
| +void silk_burg_modified_c(
|
| opus_int32 *res_nrg, /* O Residual energy */
|
| opus_int *res_nrg_Q, /* O Residual energy Q value */
|
| opus_int32 A_Q16[], /* O Prediction coefficients (length order) */
|
| @@ -335,12 +340,15 @@ void silk_scale_vector32_Q26_lshift_18(
|
| /********************************************************************/
|
|
|
| /* return sum( inVec1[i] * inVec2[i] ) */
|
| +
|
| opus_int32 silk_inner_prod_aligned(
|
| const opus_int16 *const inVec1, /* I input vector 1 */
|
| const opus_int16 *const inVec2, /* I input vector 2 */
|
| - const opus_int len /* I vector lengths */
|
| + const opus_int len, /* I vector lengths */
|
| + int arch /* I Run-time architecture */
|
| );
|
|
|
| +
|
| opus_int32 silk_inner_prod_aligned_scale(
|
| const opus_int16 *const inVec1, /* I input vector 1 */
|
| const opus_int16 *const inVec2, /* I input vector 2 */
|
| @@ -348,7 +356,7 @@ opus_int32 silk_inner_prod_aligned_scale(
|
| const opus_int len /* I vector lengths */
|
| );
|
|
|
| -opus_int64 silk_inner_prod16_aligned_64(
|
| +opus_int64 silk_inner_prod16_aligned_64_c(
|
| const opus_int16 *inVec1, /* I input vector 1 */
|
| const opus_int16 *inVec2, /* I input vector 2 */
|
| const opus_int len /* I vector lengths */
|
| @@ -575,6 +583,14 @@ static OPUS_INLINE opus_int64 silk_max_64(opus_int64 a, opus_int64 b)
|
| /* the following seems faster on x86 */
|
| #define silk_SMMUL(a32, b32) (opus_int32)silk_RSHIFT64(silk_SMULL((a32), (b32)), 32)
|
|
|
| +#if !defined(OPUS_X86_MAY_HAVE_SSE4_1)
|
| +#define silk_burg_modified(res_nrg, res_nrg_Q, A_Q16, x, minInvGain_Q30, subfr_length, nb_subfr, D, arch) \
|
| + ((void)(arch), silk_burg_modified_c(res_nrg, res_nrg_Q, A_Q16, x, minInvGain_Q30, subfr_length, nb_subfr, D, arch))
|
| +
|
| +#define silk_inner_prod16_aligned_64(inVec1, inVec2, len, arch) \
|
| + ((void)(arch),silk_inner_prod16_aligned_64_c(inVec1, inVec2, len))
|
| +#endif
|
| +
|
| #include "Inlines.h"
|
| #include "MacroCount.h"
|
| #include "MacroDebug.h"
|
| @@ -587,6 +603,11 @@ static OPUS_INLINE opus_int64 silk_max_64(opus_int64 a, opus_int64 b)
|
| #include "arm/SigProc_FIX_armv5e.h"
|
| #endif
|
|
|
| +#if defined(MIPSr1_ASM)
|
| +#include "mips/sigproc_fix_mipsr1.h"
|
| +#endif
|
| +
|
| +
|
| #ifdef __cplusplus
|
| }
|
| #endif
|
|
|