Index: silk/fixed/pitch_analysis_core_FIX.c |
diff --git a/silk/fixed/pitch_analysis_core_FIX.c b/silk/fixed/pitch_analysis_core_FIX.c |
index 1641a0fbcdad74e10f7ce0c755bdf98feae324eb..01bb9fc0a837b6c34933fcb066a791873540dea3 100644 |
--- a/silk/fixed/pitch_analysis_core_FIX.c |
+++ b/silk/fixed/pitch_analysis_core_FIX.c |
@@ -72,7 +72,8 @@ static void silk_P_Ana_calc_energy_st3( |
opus_int start_lag, /* I lag offset to search around */ |
opus_int sf_length, /* I length of one 5 ms subframe */ |
opus_int nb_subfr, /* I number of subframes */ |
- opus_int complexity /* I Complexity setting */ |
+ opus_int complexity, /* I Complexity setting */ |
+ int arch /* I Run-time architecture */ |
); |
/*************************************************************/ |
@@ -195,8 +196,8 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 |
/* Calculate first vector products before loop */ |
cross_corr = xcorr32[ MAX_LAG_4KHZ - MIN_LAG_4KHZ ]; |
- normalizer = silk_inner_prod_aligned( target_ptr, target_ptr, SF_LENGTH_8KHZ ); |
- normalizer = silk_ADD32( normalizer, silk_inner_prod_aligned( basis_ptr, basis_ptr, SF_LENGTH_8KHZ ) ); |
+ normalizer = silk_inner_prod_aligned( target_ptr, target_ptr, SF_LENGTH_8KHZ, arch ); |
+ normalizer = silk_ADD32( normalizer, silk_inner_prod_aligned( basis_ptr, basis_ptr, SF_LENGTH_8KHZ, arch ) ); |
normalizer = silk_ADD32( normalizer, silk_SMULBB( SF_LENGTH_8KHZ, 4000 ) ); |
matrix_ptr( C, k, 0, CSTRIDE_4KHZ ) = |
@@ -334,7 +335,7 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 |
silk_assert( target_ptr >= frame_8kHz ); |
silk_assert( target_ptr + SF_LENGTH_8KHZ <= frame_8kHz + frame_length_8kHz ); |
- energy_target = silk_ADD32( silk_inner_prod_aligned( target_ptr, target_ptr, SF_LENGTH_8KHZ ), 1 ); |
+ energy_target = silk_ADD32( silk_inner_prod_aligned( target_ptr, target_ptr, SF_LENGTH_8KHZ, arch ), 1 ); |
for( j = 0; j < length_d_comp; j++ ) { |
d = d_comp[ j ]; |
basis_ptr = target_ptr - d; |
@@ -343,9 +344,9 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 |
silk_assert( basis_ptr >= frame_8kHz ); |
silk_assert( basis_ptr + SF_LENGTH_8KHZ <= frame_8kHz + frame_length_8kHz ); |
- cross_corr = silk_inner_prod_aligned( target_ptr, basis_ptr, SF_LENGTH_8KHZ ); |
+ cross_corr = silk_inner_prod_aligned( target_ptr, basis_ptr, SF_LENGTH_8KHZ, arch ); |
if( cross_corr > 0 ) { |
- energy_basis = silk_inner_prod_aligned( basis_ptr, basis_ptr, SF_LENGTH_8KHZ ); |
+ energy_basis = silk_inner_prod_aligned( basis_ptr, basis_ptr, SF_LENGTH_8KHZ, arch ); |
matrix_ptr( C, k, d - ( MIN_LAG_8KHZ - 2 ), CSTRIDE_8KHZ ) = |
(opus_int16)silk_DIV32_varQ( cross_corr, |
silk_ADD32( energy_target, |
@@ -519,14 +520,14 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 |
ALLOC( energies_st3, nb_subfr * nb_cbk_search, silk_pe_stage3_vals ); |
ALLOC( cross_corr_st3, nb_subfr * nb_cbk_search, silk_pe_stage3_vals ); |
silk_P_Ana_calc_corr_st3( cross_corr_st3, input_frame_ptr, start_lag, sf_length, nb_subfr, complexity, arch ); |
- silk_P_Ana_calc_energy_st3( energies_st3, input_frame_ptr, start_lag, sf_length, nb_subfr, complexity ); |
+ silk_P_Ana_calc_energy_st3( energies_st3, input_frame_ptr, start_lag, sf_length, nb_subfr, complexity, arch ); |
lag_counter = 0; |
silk_assert( lag == silk_SAT16( lag ) ); |
contour_bias_Q15 = silk_DIV32_16( SILK_FIX_CONST( PE_FLATCONTOUR_BIAS, 15 ), lag ); |
target_ptr = &input_frame_ptr[ PE_LTP_MEM_LENGTH_MS * Fs_kHz ]; |
- energy_target = silk_ADD32( silk_inner_prod_aligned( target_ptr, target_ptr, nb_subfr * sf_length ), 1 ); |
+ energy_target = silk_ADD32( silk_inner_prod_aligned( target_ptr, target_ptr, nb_subfr * sf_length, arch ), 1 ); |
for( d = start_lag; d <= end_lag; d++ ) { |
for( j = 0; j < nb_cbk_search; j++ ) { |
cross_corr = 0; |
@@ -671,7 +672,8 @@ static void silk_P_Ana_calc_energy_st3( |
opus_int start_lag, /* I lag offset to search around */ |
opus_int sf_length, /* I length of one 5 ms subframe */ |
opus_int nb_subfr, /* I number of subframes */ |
- opus_int complexity /* I Complexity setting */ |
+ opus_int complexity, /* I Complexity setting */ |
+ int arch /* I Run-time architecture */ |
) |
{ |
const opus_int16 *target_ptr, *basis_ptr; |
@@ -705,7 +707,7 @@ static void silk_P_Ana_calc_energy_st3( |
/* Calculate the energy for first lag */ |
basis_ptr = target_ptr - ( start_lag + matrix_ptr( Lag_range_ptr, k, 0, 2 ) ); |
- energy = silk_inner_prod_aligned( basis_ptr, basis_ptr, sf_length ); |
+ energy = silk_inner_prod_aligned( basis_ptr, basis_ptr, sf_length, arch ); |
silk_assert( energy >= 0 ); |
scratch_mem[ lag_counter ] = energy; |
lag_counter++; |