Loading lib_com/deemph_fx.c +5 −0 Original line number Diff line number Diff line Loading @@ -130,8 +130,13 @@ void E_UTIL_deemph2(Word16 shift, Word16 *x, const Word16 mu, const Word16 L, Wo shift = shr(-32768, shift); FOR (i = 0; i < L; i++) { #ifdef BASOP_NOGLOB L_tmp = L_msu_o(Mpy_32_16_1(L_tmp, mu), x[i],shift, &Overflow); x[i] = round_fx_o(L_tmp, &Overflow); #else L_tmp = L_msu(Mpy_32_16_1(L_tmp, mu), x[i],shift); x[i] = round_fx(L_tmp); #endif } } Loading lib_com/lsf_tools_fx.c +2 −1 Original line number Diff line number Diff line Loading @@ -440,11 +440,12 @@ void E_LPC_f_isp_a_conversion(const Word16 *isp, Word16 *a, const Word16 m) t0 = Madd_32_16(f1[nc], f1[nc], isp[m - 1]); BASOP_SATURATE_WARNING_OFF /*overflow handling in loop expression*/ t0 = L_shl(t0, q); #ifdef BASOP_NOGLOB t0 = L_shl_o(t0, q, &Overflow); t0n = L_sub_o(t0 , 0x7FFFFFFF, &Overflow); /*check for positive overflow*/ t0p = L_sub_o(t0, 0x80000000, &Overflow); /*check for negative overflow*/ #else /* BASOP_NOGLOB */ t0 = L_shl(t0, q); t0n = L_sub(t0 , 0x7FFFFFFF); /*check for positive overflow*/ t0p = L_sub(t0, 0x80000000); /*check for negative overflow*/ #endif /* BASOP_NOGLOB */ Loading lib_enc/bass_psfilter_enc.c +26 −2 Original line number Diff line number Diff line Loading @@ -152,14 +152,27 @@ Word16 bass_pf_enc( FOR (i = 0; i < lg; i++) { tmp32 = L_msu0(0, gain, syn[i+i_subfr-T]); #ifdef BASOP_NOGLOB tmp32 = L_msu0_o(tmp32, gain, syn[i + i_subfr + T], &Overflow); tmp16 = mac_ro(tmp32, gain, syn[i+i_subfr], &Overflow); /* Q0 */ #else tmp32 = L_msu0(tmp32, gain, syn[i + i_subfr + T]); tmp16 = mac_r(tmp32, gain, syn[i+i_subfr]); /* Q0 */ #endif lp_error = Mpy_32_16_1(lp_error, 29491/*0.9f Q15*/); #ifdef BASOP_NOGLOB lp_error = L_mac_o(lp_error, tmp16, 0x1000, &Overflow); /* Q13 */ tmp16 = round_fx_o(L_shl_o(lp_error, s1, &Overflow), &Overflow); /* Q0+s1-3 */ ener2 = L_mac0_o(ener2, tmp16, tmp16, &Overflow); /* Q0+(s1-3)*2 */ #else lp_error = L_mac(lp_error, tmp16, 0x1000); /* Q13 */ tmp16 = round_fx(L_shl(lp_error, s1)); /* Q0+s1-3 */ ener2 = L_mac0(ener2, tmp16, tmp16); /* Q0+(s1-3)*2 */ #endif } } Loading @@ -168,14 +181,25 @@ Word16 bass_pf_enc( FOR (i = lg; i < l_subfr; i++) { tmp32 = L_mult0(gain, syn[i+i_subfr]); #ifdef BASOP_NOGLOB tmp32 = L_msu0_o(tmp32, gain, syn[i+i_subfr-T], &Overflow); /* Q0 */ tmp16 = round_fx_o(tmp32, &Overflow); #else tmp32 = L_msu0(tmp32, gain, syn[i+i_subfr-T]); /* Q0 */ tmp16 = round_fx(tmp32); #endif lp_error = Mpy_32_16_1(lp_error, 29491/*0.9f Q15*/); #ifdef BASOP_NOGLOB lp_error = L_mac_o(lp_error, tmp16, 0x1000, &Overflow); /* Q13 */ tmp16 = round_fx_o(L_shl_o(lp_error, s1, &Overflow), &Overflow); /* Q0+s1-3 */ ener2 = L_mac0_o(ener2, tmp16, tmp16, &Overflow); /* Q0+(s1-3)*2 */ #else lp_error = L_mac(lp_error, tmp16, 0x1000); /* Q13 */ tmp16 = round_fx(L_shl(lp_error, s1)); /* Q0+s1-3 */ ener2 = L_mac0(ener2, tmp16, tmp16); /* Q0+(s1-3)*2 */ #endif } } Loading lib_enc/guided_plc_enc.c +5 −2 Original line number Diff line number Diff line Loading @@ -471,8 +471,11 @@ void updateSpecPowDiffuseIdx( /* Suppress saturation warning in threshold comparison. */ test(); if(LT_32(st->mean_gc[1], L_add(st->mean_gc[0], Mpy_32_16_r(st->mean_gc[0], 3211/*0.098 Q15*/)))|| GT_16(min_gp, 13435/*0.82 Q14*/)) #ifdef BASOP_NOGLOB if(LT_32(st->mean_gc[1], L_add_o(st->mean_gc[0], Mpy_32_16_r(st->mean_gc[0], 3211/*0.098 Q15*/), &Overflow))||GT_16(min_gp, 13435/*0.82 Q14*/)) #else if(LT_32(st->mean_gc[1], L_add(st->mean_gc[0], Mpy_32_16_r(st->mean_gc[0], 3211/*0.098 Q15*/)))||GT_16(min_gp, 13435/*0.82 Q14*/)) #endif { move16(); st->glr_idx [0]= 0; Loading Loading
lib_com/deemph_fx.c +5 −0 Original line number Diff line number Diff line Loading @@ -130,8 +130,13 @@ void E_UTIL_deemph2(Word16 shift, Word16 *x, const Word16 mu, const Word16 L, Wo shift = shr(-32768, shift); FOR (i = 0; i < L; i++) { #ifdef BASOP_NOGLOB L_tmp = L_msu_o(Mpy_32_16_1(L_tmp, mu), x[i],shift, &Overflow); x[i] = round_fx_o(L_tmp, &Overflow); #else L_tmp = L_msu(Mpy_32_16_1(L_tmp, mu), x[i],shift); x[i] = round_fx(L_tmp); #endif } } Loading
lib_com/lsf_tools_fx.c +2 −1 Original line number Diff line number Diff line Loading @@ -440,11 +440,12 @@ void E_LPC_f_isp_a_conversion(const Word16 *isp, Word16 *a, const Word16 m) t0 = Madd_32_16(f1[nc], f1[nc], isp[m - 1]); BASOP_SATURATE_WARNING_OFF /*overflow handling in loop expression*/ t0 = L_shl(t0, q); #ifdef BASOP_NOGLOB t0 = L_shl_o(t0, q, &Overflow); t0n = L_sub_o(t0 , 0x7FFFFFFF, &Overflow); /*check for positive overflow*/ t0p = L_sub_o(t0, 0x80000000, &Overflow); /*check for negative overflow*/ #else /* BASOP_NOGLOB */ t0 = L_shl(t0, q); t0n = L_sub(t0 , 0x7FFFFFFF); /*check for positive overflow*/ t0p = L_sub(t0, 0x80000000); /*check for negative overflow*/ #endif /* BASOP_NOGLOB */ Loading
lib_enc/bass_psfilter_enc.c +26 −2 Original line number Diff line number Diff line Loading @@ -152,14 +152,27 @@ Word16 bass_pf_enc( FOR (i = 0; i < lg; i++) { tmp32 = L_msu0(0, gain, syn[i+i_subfr-T]); #ifdef BASOP_NOGLOB tmp32 = L_msu0_o(tmp32, gain, syn[i + i_subfr + T], &Overflow); tmp16 = mac_ro(tmp32, gain, syn[i+i_subfr], &Overflow); /* Q0 */ #else tmp32 = L_msu0(tmp32, gain, syn[i + i_subfr + T]); tmp16 = mac_r(tmp32, gain, syn[i+i_subfr]); /* Q0 */ #endif lp_error = Mpy_32_16_1(lp_error, 29491/*0.9f Q15*/); #ifdef BASOP_NOGLOB lp_error = L_mac_o(lp_error, tmp16, 0x1000, &Overflow); /* Q13 */ tmp16 = round_fx_o(L_shl_o(lp_error, s1, &Overflow), &Overflow); /* Q0+s1-3 */ ener2 = L_mac0_o(ener2, tmp16, tmp16, &Overflow); /* Q0+(s1-3)*2 */ #else lp_error = L_mac(lp_error, tmp16, 0x1000); /* Q13 */ tmp16 = round_fx(L_shl(lp_error, s1)); /* Q0+s1-3 */ ener2 = L_mac0(ener2, tmp16, tmp16); /* Q0+(s1-3)*2 */ #endif } } Loading @@ -168,14 +181,25 @@ Word16 bass_pf_enc( FOR (i = lg; i < l_subfr; i++) { tmp32 = L_mult0(gain, syn[i+i_subfr]); #ifdef BASOP_NOGLOB tmp32 = L_msu0_o(tmp32, gain, syn[i+i_subfr-T], &Overflow); /* Q0 */ tmp16 = round_fx_o(tmp32, &Overflow); #else tmp32 = L_msu0(tmp32, gain, syn[i+i_subfr-T]); /* Q0 */ tmp16 = round_fx(tmp32); #endif lp_error = Mpy_32_16_1(lp_error, 29491/*0.9f Q15*/); #ifdef BASOP_NOGLOB lp_error = L_mac_o(lp_error, tmp16, 0x1000, &Overflow); /* Q13 */ tmp16 = round_fx_o(L_shl_o(lp_error, s1, &Overflow), &Overflow); /* Q0+s1-3 */ ener2 = L_mac0_o(ener2, tmp16, tmp16, &Overflow); /* Q0+(s1-3)*2 */ #else lp_error = L_mac(lp_error, tmp16, 0x1000); /* Q13 */ tmp16 = round_fx(L_shl(lp_error, s1)); /* Q0+s1-3 */ ener2 = L_mac0(ener2, tmp16, tmp16); /* Q0+(s1-3)*2 */ #endif } } Loading
lib_enc/guided_plc_enc.c +5 −2 Original line number Diff line number Diff line Loading @@ -471,8 +471,11 @@ void updateSpecPowDiffuseIdx( /* Suppress saturation warning in threshold comparison. */ test(); if(LT_32(st->mean_gc[1], L_add(st->mean_gc[0], Mpy_32_16_r(st->mean_gc[0], 3211/*0.098 Q15*/)))|| GT_16(min_gp, 13435/*0.82 Q14*/)) #ifdef BASOP_NOGLOB if(LT_32(st->mean_gc[1], L_add_o(st->mean_gc[0], Mpy_32_16_r(st->mean_gc[0], 3211/*0.098 Q15*/), &Overflow))||GT_16(min_gp, 13435/*0.82 Q14*/)) #else if(LT_32(st->mean_gc[1], L_add(st->mean_gc[0], Mpy_32_16_r(st->mean_gc[0], 3211/*0.098 Q15*/)))||GT_16(min_gp, 13435/*0.82 Q14*/)) #endif { move16(); st->glr_idx [0]= 0; Loading