Loading lib_com/fd_cng_com_fx.c +8 −2 Original line number Diff line number Diff line Loading @@ -2279,10 +2279,12 @@ static void getmidbands( ) { Word16 j, max_psize, shift; #ifndef ISSUE_1796_replace_shl_o #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move32(); #endif #endif max_psize = psize[0]; Loading Loading @@ -2316,7 +2318,11 @@ static void getmidbands( move16(); FOR( j = 0; j < npart; j++ ) { #ifdef ISSUE_1796_replace_shl_o psize_norm[j] = shl_sat( psize[j], shift ); // Q(15 - psize_norm_exp) #else psize_norm[j] = shl_o( psize[j], shift, &Overflow ); // Q(15 - psize_norm_exp) #endif move16(); } /* minimum_statistics needs fixed exponent of 6 */ Loading lib_com/gs_gains_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -126,7 +126,11 @@ void Comp_and_apply_gain_fx( y_gain = extract_l( Pow2( 14, frac ) ); /* Put 14 as exponent so that */ /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ #ifdef ISSUE_1796_replace_shl_o Ener_per_bd_yQ[i_band] = shl_sat( y_gain, sub( exp1, 13 ) ); #else Ener_per_bd_yQ[i_band] = shl_o( y_gain, sub( exp1, 13 ), &Overflow ); #endif move16(); /*Q1 */ tmp_exp = add( add( exp1, 1 ), sub( Q_exc, Qexc_diff ) ); Loading Loading @@ -208,7 +212,11 @@ void Comp_and_apply_gain_ivas_fx( y_gain = extract_l( Pow2( 14, frac ) ); /* Put 14 as exponent so that */ /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ #ifdef ISSUE_1796_replace_shl_o Ener_per_bd_yQ[i_band] = shl_sat( y_gain, sub( exp1, 13 ) ); /*Q13*/ #else Ener_per_bd_yQ[i_band] = shl_o( y_gain, sub( exp1, 13 ), &Overflow ); /*Q13*/ #endif move16(); /*Q1 */ tmp_exp = add( add( exp1, 1 ), sub( *Q_exc, Qexc_diff ) ); Loading lib_com/gs_noisefill_fx.c +18 −0 Original line number Diff line number Diff line Loading @@ -528,9 +528,11 @@ static void envelop_modify_fx( Word16 weight_fx; Word32 L_exc_diffQ_fx[L_FRAME16k], exc_diffQ_max; Word16 Q_tmp; #ifndef ISSUE_1796_replace_shl_o #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move16(); #endif #endif start_band = i_mult( last_bin, 16 ); Loading Loading @@ -565,7 +567,11 @@ static void envelop_modify_fx( /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ exp = sub( exp, 14 ); #ifdef ISSUE_1796_replace_shl_o Ener1_fx = mult_ro( 13107, shl_sat( tmp, exp ), &Overflow ); /*Q0 */ #else Ener1_fx = mult_ro( 13107, shl_o( tmp, exp, &Overflow ), &Overflow ); /*Q0 */ #endif FOR( j = 0; j < 16; j++ ) { Loading @@ -591,7 +597,11 @@ static void envelop_modify_fx( /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ exp = sub( exp, 14 ); #ifdef ISSUE_1796_replace_shl_o Ener1_fx = mult_r( 13107, shl_sat( tmp, exp ) ); /*Q0 */ #else Ener1_fx = mult_r( 13107, shl_o( tmp, exp, &Overflow ) ); /*Q0 */ #endif src_fx = &exc_diffQ_fx[224]; FOR( j = 0; j < 32; j++ ) Loading Loading @@ -708,7 +718,11 @@ void highband_exc_dct_in_fx( /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ exp = sub( exp, 14 ); #ifdef ISSUE_1796_replace_shl_o tmp1 = shl_sat( tmp, exp ); #else tmp1 = shl_o( tmp, exp, &Overflow ); #endif move16(); ener = add_o( tmp1, ener, &Overflow ); /*Q0 */ } Loading Loading @@ -1086,7 +1100,11 @@ void highband_exc_dct_in_ivas_fx( /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ exp = sub( exp, 14 ); #ifdef ISSUE_1796_replace_shl_o tmp1 = shl_sat( tmp, exp ); #else tmp1 = shl_o( tmp, exp, &Overflow ); #endif move16(); ener = add_o( tmp1, ener, &Overflow ); /*Q0 */ } Loading lib_com/hq2_core_com_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -163,7 +163,11 @@ void mdct_spectrum_denorm_fx( pd_fx = div_s( shl( npulses[k], exp_normn ), shl( band_width[k], exp_normd ) ); /* 15 + (exp_norm - exp_normd) */ Qpd = add( sub( exp_normn, exp_normd ), 15 ); #ifdef ISSUE_1796_replace_shl_o cond_fx = sub( shl_sat( pd_fx, sub( 15, Qpd ) ), pd_thresh_fx /*Q15*/ ); /* Q15 */ #else cond_fx = sub( shl_o( pd_fx, sub( 15, Qpd ), &Overflow ), pd_thresh_fx /*Q15*/ ); /* Q15 */ #endif Overflow = 0; move16(); /* allow overflow happen. */ IF( cond_fx < 0 ) Loading Loading @@ -335,7 +339,11 @@ void mdct_spectrum_denorm_ivas_fx( pd_fx = div_s( shl( npulses[k], exp_normn ), shl( band_width[k], exp_normd ) ); /* 15 + (exp_normn + exp_normd) */ Qpd = add( sub( exp_normn, exp_normd ), 15 ); #ifdef ISSUE_1796_replace_shl_o cond_fx = sub( shl_sat( pd_fx, sub( 15, Qpd ) ), pd_thresh_fx /*Q15*/ ); /* Q15 */ #else cond_fx = sub( shl_o( pd_fx, sub( 15, Qpd ), &Overflow ), pd_thresh_fx /*Q15*/ ); /* Q15 */ #endif Overflow = 0; move16(); /* allow overflow happen. */ IF( cond_fx < 0 ) Loading lib_com/hq2_noise_inject_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -608,7 +608,11 @@ void hq2_noise_inject_fx( IF( band_width[k] != 0 ) { Q_speech = norm_s( band_width[k] ); #ifdef ISSUE_1796_replace_shl_o tmp = shl_sat( band_width[k], Q_speech ); /*Q(Q_speech) */ #else tmp = shl_o( band_width[k], Q_speech, &Overflow ); /*Q(Q_speech) */ #endif tmp = div_s( 16384 /* 0.5 in Q15 */, tmp ); /*Q(15+14-Q_speech) */ } ELSE Loading Loading
lib_com/fd_cng_com_fx.c +8 −2 Original line number Diff line number Diff line Loading @@ -2279,10 +2279,12 @@ static void getmidbands( ) { Word16 j, max_psize, shift; #ifndef ISSUE_1796_replace_shl_o #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move32(); #endif #endif max_psize = psize[0]; Loading Loading @@ -2316,7 +2318,11 @@ static void getmidbands( move16(); FOR( j = 0; j < npart; j++ ) { #ifdef ISSUE_1796_replace_shl_o psize_norm[j] = shl_sat( psize[j], shift ); // Q(15 - psize_norm_exp) #else psize_norm[j] = shl_o( psize[j], shift, &Overflow ); // Q(15 - psize_norm_exp) #endif move16(); } /* minimum_statistics needs fixed exponent of 6 */ Loading
lib_com/gs_gains_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -126,7 +126,11 @@ void Comp_and_apply_gain_fx( y_gain = extract_l( Pow2( 14, frac ) ); /* Put 14 as exponent so that */ /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ #ifdef ISSUE_1796_replace_shl_o Ener_per_bd_yQ[i_band] = shl_sat( y_gain, sub( exp1, 13 ) ); #else Ener_per_bd_yQ[i_band] = shl_o( y_gain, sub( exp1, 13 ), &Overflow ); #endif move16(); /*Q1 */ tmp_exp = add( add( exp1, 1 ), sub( Q_exc, Qexc_diff ) ); Loading Loading @@ -208,7 +212,11 @@ void Comp_and_apply_gain_ivas_fx( y_gain = extract_l( Pow2( 14, frac ) ); /* Put 14 as exponent so that */ /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ #ifdef ISSUE_1796_replace_shl_o Ener_per_bd_yQ[i_band] = shl_sat( y_gain, sub( exp1, 13 ) ); /*Q13*/ #else Ener_per_bd_yQ[i_band] = shl_o( y_gain, sub( exp1, 13 ), &Overflow ); /*Q13*/ #endif move16(); /*Q1 */ tmp_exp = add( add( exp1, 1 ), sub( *Q_exc, Qexc_diff ) ); Loading
lib_com/gs_noisefill_fx.c +18 −0 Original line number Diff line number Diff line Loading @@ -528,9 +528,11 @@ static void envelop_modify_fx( Word16 weight_fx; Word32 L_exc_diffQ_fx[L_FRAME16k], exc_diffQ_max; Word16 Q_tmp; #ifndef ISSUE_1796_replace_shl_o #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move16(); #endif #endif start_band = i_mult( last_bin, 16 ); Loading Loading @@ -565,7 +567,11 @@ static void envelop_modify_fx( /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ exp = sub( exp, 14 ); #ifdef ISSUE_1796_replace_shl_o Ener1_fx = mult_ro( 13107, shl_sat( tmp, exp ), &Overflow ); /*Q0 */ #else Ener1_fx = mult_ro( 13107, shl_o( tmp, exp, &Overflow ), &Overflow ); /*Q0 */ #endif FOR( j = 0; j < 16; j++ ) { Loading @@ -591,7 +597,11 @@ static void envelop_modify_fx( /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ exp = sub( exp, 14 ); #ifdef ISSUE_1796_replace_shl_o Ener1_fx = mult_r( 13107, shl_sat( tmp, exp ) ); /*Q0 */ #else Ener1_fx = mult_r( 13107, shl_o( tmp, exp, &Overflow ) ); /*Q0 */ #endif src_fx = &exc_diffQ_fx[224]; FOR( j = 0; j < 32; j++ ) Loading Loading @@ -708,7 +718,11 @@ void highband_exc_dct_in_fx( /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ exp = sub( exp, 14 ); #ifdef ISSUE_1796_replace_shl_o tmp1 = shl_sat( tmp, exp ); #else tmp1 = shl_o( tmp, exp, &Overflow ); #endif move16(); ener = add_o( tmp1, ener, &Overflow ); /*Q0 */ } Loading Loading @@ -1086,7 +1100,11 @@ void highband_exc_dct_in_ivas_fx( /* output of Pow2() will be: */ /* 16384 < Pow2() <= 32767 */ exp = sub( exp, 14 ); #ifdef ISSUE_1796_replace_shl_o tmp1 = shl_sat( tmp, exp ); #else tmp1 = shl_o( tmp, exp, &Overflow ); #endif move16(); ener = add_o( tmp1, ener, &Overflow ); /*Q0 */ } Loading
lib_com/hq2_core_com_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -163,7 +163,11 @@ void mdct_spectrum_denorm_fx( pd_fx = div_s( shl( npulses[k], exp_normn ), shl( band_width[k], exp_normd ) ); /* 15 + (exp_norm - exp_normd) */ Qpd = add( sub( exp_normn, exp_normd ), 15 ); #ifdef ISSUE_1796_replace_shl_o cond_fx = sub( shl_sat( pd_fx, sub( 15, Qpd ) ), pd_thresh_fx /*Q15*/ ); /* Q15 */ #else cond_fx = sub( shl_o( pd_fx, sub( 15, Qpd ), &Overflow ), pd_thresh_fx /*Q15*/ ); /* Q15 */ #endif Overflow = 0; move16(); /* allow overflow happen. */ IF( cond_fx < 0 ) Loading Loading @@ -335,7 +339,11 @@ void mdct_spectrum_denorm_ivas_fx( pd_fx = div_s( shl( npulses[k], exp_normn ), shl( band_width[k], exp_normd ) ); /* 15 + (exp_normn + exp_normd) */ Qpd = add( sub( exp_normn, exp_normd ), 15 ); #ifdef ISSUE_1796_replace_shl_o cond_fx = sub( shl_sat( pd_fx, sub( 15, Qpd ) ), pd_thresh_fx /*Q15*/ ); /* Q15 */ #else cond_fx = sub( shl_o( pd_fx, sub( 15, Qpd ), &Overflow ), pd_thresh_fx /*Q15*/ ); /* Q15 */ #endif Overflow = 0; move16(); /* allow overflow happen. */ IF( cond_fx < 0 ) Loading
lib_com/hq2_noise_inject_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -608,7 +608,11 @@ void hq2_noise_inject_fx( IF( band_width[k] != 0 ) { Q_speech = norm_s( band_width[k] ); #ifdef ISSUE_1796_replace_shl_o tmp = shl_sat( band_width[k], Q_speech ); /*Q(Q_speech) */ #else tmp = shl_o( band_width[k], Q_speech, &Overflow ); /*Q(Q_speech) */ #endif tmp = div_s( 16384 /* 0.5 in Q15 */, tmp ); /*Q(15+14-Q_speech) */ } ELSE Loading