Commit 5e1a31be authored by vaillancour's avatar vaillancour
Browse files

fixes EVS stv16c_32000_16kHz addition of shl_ro

parent 96089fa0
Loading
Loading
Loading
Loading
+18 −5
Original line number Diff line number Diff line
@@ -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 */
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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);

+7 −1
Original line number Diff line number Diff line
@@ -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);

@@ -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 */
+15 −1
Original line number Diff line number Diff line
@@ -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))
@@ -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
        {
@@ -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 */
@@ -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  */
+4 −1
Original line number Diff line number Diff line
@@ -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