Loading basic_op/enh1632.c +18 −5 Original line number Diff line number Diff line Loading @@ -349,20 +349,30 @@ Word32 L_lshr (Word32 L_var1, Word16 var2) { * the range : 0xffff 8000 <= var_out <= 0x0000 7fff. * *****************************************************************************/ #ifdef BASOP_NOGLOB Word16 shl_ro(Word16 var1, Word16 var2, Flag* Overflow) { #else Word16 shl_r (Word16 var1, Word16 var2) { #endif Word16 var_out; if (var2 >= 0) { #ifdef BASOP_NOGLOB var_out = shl_o (var1, var2, Overflow); #else var_out = shl (var1, var2); #endif #if (WMOPS) multiCounter[currCounter].shl--; #endif /* ifdef WMOPS */ } else { var2 = -var2; #ifdef BASOP_NOGLOB var_out = shr_ro (var1, var2, Overflow); #else var_out = shr_r (var1, var2); #endif #if (WMOPS) multiCounter[currCounter].shr_r--; #endif /* ifdef WMOPS */ Loading @@ -374,8 +384,11 @@ Word16 shl_r (Word16 var1, Word16 var2) { return (var_out); } #ifdef BASOP_NOGLOB Word16 shl_r(Word16 var1, Word16 var2) { return shl_ro(var1, var2, NULL); } #endif /***************************************************************************** * * Function Name : L_shl_r Loading basic_op/enh1632.h +3 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,9 @@ extern int currCounter; * Prototypes for enhanced 16/32 bit arithmetic operators * *****************************************************************************/ #ifdef BASOP_NOGLOB Word16 shl_ro(Word16 var1, Word16 var2, Flag* Overflow); #endif Word16 shl_r (Word16 var1, Word16 var2); Word32 L_shl_r (Word32 L_var1, Word16 var2); Loading lib_com/env_stab_fx.c +7 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,9 @@ Word16 env_stab_smo_fx( /* Q0 */ Word16 maxval, pp[NUM_ENV_STAB_PLC_STATES], pa[NUM_ENV_STAB_PLC_STATES]; Word16 i; Word16 tmp, sum, exp; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif /* get previous state */ prev_state = maximum_fx(env_stab_state_p, NUM_ENV_STAB_PLC_STATES, &maxval); Loading Loading @@ -186,7 +188,11 @@ Word16 env_stab_smo_fx( /* Q0 */ /*tmp = shl(tmp, add(exp, 1));*/ /* Q15 */ FOR (i = 0; i < NUM_ENV_STAB_PLC_STATES; i++) { #ifdef BASOP_NOGLOB env_stab_state_p[i] = round_fx_o(L_shl_o(L_mult_o(env_stab_state_p[i], tmp, &Overflow), add(exp, 1), &Overflow), &Overflow); /* Q15 */ #else env_stab_state_p[i] = round_fx(L_shl(L_mult(env_stab_state_p[i], tmp), add(exp, 1))); /* Q15 */ #endif } /* find maximum index as return value */ Loading lib_com/hq_tools_fx.c +15 −1 Original line number Diff line number Diff line Loading @@ -1829,7 +1829,9 @@ void hq_wb_nf_bwe_fx( Word16 tmp; Word32 L_tmp; Word32 mean_fx; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif IF( is_transient == 0 ) { IF( EQ_16(prev_bfi, 1)) Loading @@ -1853,7 +1855,11 @@ void hq_wb_nf_bwe_fx( tmp = shl(total_bit,exp);/*Q(exp) */ tmp = div_s(16384,tmp);/*Q(15+14-exp) */ L_tmp = L_mult(tmp, bitalloc_var_fx); /*Q(29-exp+1) */ #ifdef BASOP_NOGLOB bitalloc_var_fx = round_fx_o(L_shl_o(L_tmp,exp, &Overflow), &Overflow);/*Q14 */ #else bitalloc_var_fx = round_fx(L_shl(L_tmp,exp));/*Q14 */ #endif } ELSE { Loading Loading @@ -1928,7 +1934,11 @@ void hq_wb_nf_bwe_fx( L_tmp = L_mult(5,sharp_fx);/*Q15 */ L_tmp = Mult_32_16(L_tmp,tmp);/*Q15 */ #ifdef BASOP_NOGLOB step_fx = round_fx_o(L_shl_o(L_tmp,16, &Overflow), &Overflow);/*Q15 */ #else step_fx = round_fx(L_shl(L_tmp,16));/*Q15 */ #endif alfa_fx = 20480; move16();/*Q13 = 2.5 */ /* fill noise for the insaturable subbands */ Loading Loading @@ -2065,7 +2075,11 @@ void hq_wb_nf_bwe_fx( exp =sub(45,exp); } #ifdef BASOP_NOGLOB sharp_fx = add_o(sharp_fx,shr(step_fx,1), &Overflow); #else sharp_fx = add(sharp_fx,shr(step_fx,1)); #endif } IF(GT_32(L_tmp2,L_shl(min_coef_fx,sub(exp,13))))/*exp */ Loading lib_com/wi_fx.c +4 −1 Original line number Diff line number Diff line Loading @@ -2398,8 +2398,11 @@ static void cubicPhase_fx( Ltemp3 = L_add(Ltemp3,1); } #ifdef BASOP_NOGLOB Ltemp3 = L_shl_o(Mult_32_16(L_shl_o(Ltemp3,7, &Overflow),c0),2, &Overflow); /* Ltemp3=c0*n^3, Q27 */ #else Ltemp3 = L_shl(Mult_32_16(L_shl(Ltemp3,7),c0),2); /* Ltemp3=c0*n^3, Q27 */ #endif Ltemp2 = L_shl(Mult_32_16(N2 ,c1 ),1); /* Ltemp2 = (Word32)L_mult_su(c1,(UNS_Word16)n2); : Ltemp2=c1*n^2, Q27 */ Ltemp1 = L_shl(L_mult(c2,n),7); /* Ltemp1=c2*n, Q27 */ Loading Loading
basic_op/enh1632.c +18 −5 Original line number Diff line number Diff line Loading @@ -349,20 +349,30 @@ Word32 L_lshr (Word32 L_var1, Word16 var2) { * the range : 0xffff 8000 <= var_out <= 0x0000 7fff. * *****************************************************************************/ #ifdef BASOP_NOGLOB Word16 shl_ro(Word16 var1, Word16 var2, Flag* Overflow) { #else Word16 shl_r (Word16 var1, Word16 var2) { #endif Word16 var_out; if (var2 >= 0) { #ifdef BASOP_NOGLOB var_out = shl_o (var1, var2, Overflow); #else var_out = shl (var1, var2); #endif #if (WMOPS) multiCounter[currCounter].shl--; #endif /* ifdef WMOPS */ } else { var2 = -var2; #ifdef BASOP_NOGLOB var_out = shr_ro (var1, var2, Overflow); #else var_out = shr_r (var1, var2); #endif #if (WMOPS) multiCounter[currCounter].shr_r--; #endif /* ifdef WMOPS */ Loading @@ -374,8 +384,11 @@ Word16 shl_r (Word16 var1, Word16 var2) { return (var_out); } #ifdef BASOP_NOGLOB Word16 shl_r(Word16 var1, Word16 var2) { return shl_ro(var1, var2, NULL); } #endif /***************************************************************************** * * Function Name : L_shl_r Loading
basic_op/enh1632.h +3 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,9 @@ extern int currCounter; * Prototypes for enhanced 16/32 bit arithmetic operators * *****************************************************************************/ #ifdef BASOP_NOGLOB Word16 shl_ro(Word16 var1, Word16 var2, Flag* Overflow); #endif Word16 shl_r (Word16 var1, Word16 var2); Word32 L_shl_r (Word32 L_var1, Word16 var2); Loading
lib_com/env_stab_fx.c +7 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,9 @@ Word16 env_stab_smo_fx( /* Q0 */ Word16 maxval, pp[NUM_ENV_STAB_PLC_STATES], pa[NUM_ENV_STAB_PLC_STATES]; Word16 i; Word16 tmp, sum, exp; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif /* get previous state */ prev_state = maximum_fx(env_stab_state_p, NUM_ENV_STAB_PLC_STATES, &maxval); Loading Loading @@ -186,7 +188,11 @@ Word16 env_stab_smo_fx( /* Q0 */ /*tmp = shl(tmp, add(exp, 1));*/ /* Q15 */ FOR (i = 0; i < NUM_ENV_STAB_PLC_STATES; i++) { #ifdef BASOP_NOGLOB env_stab_state_p[i] = round_fx_o(L_shl_o(L_mult_o(env_stab_state_p[i], tmp, &Overflow), add(exp, 1), &Overflow), &Overflow); /* Q15 */ #else env_stab_state_p[i] = round_fx(L_shl(L_mult(env_stab_state_p[i], tmp), add(exp, 1))); /* Q15 */ #endif } /* find maximum index as return value */ Loading
lib_com/hq_tools_fx.c +15 −1 Original line number Diff line number Diff line Loading @@ -1829,7 +1829,9 @@ void hq_wb_nf_bwe_fx( Word16 tmp; Word32 L_tmp; Word32 mean_fx; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif IF( is_transient == 0 ) { IF( EQ_16(prev_bfi, 1)) Loading @@ -1853,7 +1855,11 @@ void hq_wb_nf_bwe_fx( tmp = shl(total_bit,exp);/*Q(exp) */ tmp = div_s(16384,tmp);/*Q(15+14-exp) */ L_tmp = L_mult(tmp, bitalloc_var_fx); /*Q(29-exp+1) */ #ifdef BASOP_NOGLOB bitalloc_var_fx = round_fx_o(L_shl_o(L_tmp,exp, &Overflow), &Overflow);/*Q14 */ #else bitalloc_var_fx = round_fx(L_shl(L_tmp,exp));/*Q14 */ #endif } ELSE { Loading Loading @@ -1928,7 +1934,11 @@ void hq_wb_nf_bwe_fx( L_tmp = L_mult(5,sharp_fx);/*Q15 */ L_tmp = Mult_32_16(L_tmp,tmp);/*Q15 */ #ifdef BASOP_NOGLOB step_fx = round_fx_o(L_shl_o(L_tmp,16, &Overflow), &Overflow);/*Q15 */ #else step_fx = round_fx(L_shl(L_tmp,16));/*Q15 */ #endif alfa_fx = 20480; move16();/*Q13 = 2.5 */ /* fill noise for the insaturable subbands */ Loading Loading @@ -2065,7 +2075,11 @@ void hq_wb_nf_bwe_fx( exp =sub(45,exp); } #ifdef BASOP_NOGLOB sharp_fx = add_o(sharp_fx,shr(step_fx,1), &Overflow); #else sharp_fx = add(sharp_fx,shr(step_fx,1)); #endif } IF(GT_32(L_tmp2,L_shl(min_coef_fx,sub(exp,13))))/*exp */ Loading
lib_com/wi_fx.c +4 −1 Original line number Diff line number Diff line Loading @@ -2398,8 +2398,11 @@ static void cubicPhase_fx( Ltemp3 = L_add(Ltemp3,1); } #ifdef BASOP_NOGLOB Ltemp3 = L_shl_o(Mult_32_16(L_shl_o(Ltemp3,7, &Overflow),c0),2, &Overflow); /* Ltemp3=c0*n^3, Q27 */ #else Ltemp3 = L_shl(Mult_32_16(L_shl(Ltemp3,7),c0),2); /* Ltemp3=c0*n^3, Q27 */ #endif Ltemp2 = L_shl(Mult_32_16(N2 ,c1 ),1); /* Ltemp2 = (Word32)L_mult_su(c1,(UNS_Word16)n2); : Ltemp2=c1*n^2, Q27 */ Ltemp1 = L_shl(L_mult(c2,n),7); /* Ltemp1=c2*n, Q27 */ Loading