Commit ef6ce7b0 authored by vaillancour's avatar vaillancour
Browse files

add *_sat where the MACRO BASOP_SATURATE_WARNING_* was present but Overflow...

 add *_sat where the MACRO BASOP_SATURATE_WARNING_* was present but Overflow has not been triggered yet. The presence of the MACRO indicates that saturation could be expected at some points.
parent 8e7b3fe5
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1231,7 +1231,11 @@ Word16 round_fx( Word32 L_var1 )
    Word32 L_rounded;

    BASOP_SATURATE_WARNING_OFF
#ifdef BASOP_NOGLOB
    L_rounded = L_add_sat( L_var1, (Word32) 0x00008000L );
#else
    L_rounded = L_add( L_var1, (Word32) 0x00008000L );
#endif
    BASOP_SATURATE_WARNING_ON
    var_out = extract_h( L_rounded );

+25 −4
Original line number Diff line number Diff line
@@ -370,7 +370,11 @@ static Word32 Sqrt32_common(Word32 m,
  if (m != 0)
  {
    BASOP_SATURATE_WARNING_OFF_EVS;
#ifdef BASOP_NOGLOB
      m = L_mac_sat( SqrtTable[index], SqrtDiffTable[index], frac );
#else
      m = L_mac( SqrtTable[index], SqrtDiffTable[index], frac );
#endif
    BASOP_SATURATE_WARNING_ON_EVS;
  }

@@ -654,8 +658,13 @@ void BASOP_Util_Sqrt_InvSqrt_MantExp(Word16 mantissa, /*!< mantissa */

  /* interpolate */
  BASOP_SATURATE_WARNING_OFF_EVS;
#ifdef BASOP_NOGLOB
  m = mac_r_sat( SqrtTable[index], SqrtDiffTable[index], frac );
  mi = msu_r_sat(ISqrtTable[index], ISqrtDiffTable[index], frac);
#else
  m = mac_r( SqrtTable[index], SqrtDiffTable[index], frac );
  mi = msu_r(ISqrtTable[index], ISqrtDiffTable[index], frac);
#endif
  BASOP_SATURATE_WARNING_ON_EVS;

  /* handle even/odd exponents */
@@ -1276,7 +1285,11 @@ Word16 getCosWord16R2(
    /* The negation cannot overflow, sine is in range [0x0..0x7FFF] */
    BASOP_SATURATE_WARNING_OFF
    sine = negate( sine );
#ifdef BASOP_NOGLOB
    result = msu_r_sat( L_mult( sine, residual ), cosine, -32768 );
#else
    result = msu_r( L_mult( sine, residual ), cosine, -32768 );
#endif    
    BASOP_SATURATE_WARNING_ON

    return result;
@@ -1421,7 +1434,11 @@ Word16 idiv1616U_IVAS(
    s = s_max( s, 0 );

    BASOP_SATURATE_WARNING_OFF
#ifdef BASOP_NOGLOB
    y = shl_sat( y, s );
#else
    y = shl( y, s );
#endif
    BASOP_SATURATE_WARNING_ON

    /* divide and shift */
@@ -2035,7 +2052,11 @@ Word16 BASOP_Util_Cmp_Mant32Exp /*!< o: flag: result of compari
  }

  BASOP_SATURATE_WARNING_OFF_EVS
#ifdef BASOP_NOGLOB
  diff_m = L_sub_sat( a_m, b_m );
#else
  diff_m = L_sub( a_m, b_m );
#endif
  BASOP_SATURATE_WARNING_ON_EVS
  diff_e = sub(a_e, b_e);

+6 −1
Original line number Diff line number Diff line
@@ -1404,8 +1404,13 @@ GetEnergyCldfb( Word32 *energyLookahead, /*!< o: Q(*sf_energyLookahead) | p
        sm = sub(s_min(s, 44), 1);
        BASOP_SATURATE_WARNING_OFF_EVS
        /* nrg + 6.1e-5f => value 0x40000000, scale 44 */
#ifdef BASOP_NOGLOB
        *energyLookahead = L_add_sat( L_shr_sat( nrg, sub( s, sm ) ),
                                 L_shr_sat(0x40000000, s_max(-31, s_min(31, sub(44, sm)))));
#else
        *energyLookahead = L_add( L_shr( nrg, sub( s, sm ) ),
                                 L_shr(0x40000000, s_max(-31, s_min(31, sub(44, sm)))));
#endif
        move32();
        BASOP_SATURATE_WARNING_ON_EVS
        *sf_energyLookahead = sm;
+10 −2
Original line number Diff line number Diff line
@@ -41,7 +41,11 @@ Word16 tcxGetNoiseFillingTilt(
		Copy_Scale_sig(A, As, lpcorder + 1, sub(norm_s(A[0]),2));
		tmp = get_gain(As + 1, As, lpcorder);
		BASOP_SATURATE_WARNING_OFF_EVS;
#ifdef BASOP_NOGLOB
        *noiseTiltFactor = add_sat( round_fx_sat( L_shl_sat( tmp, 15 ) ), 3072 /*0.09375f Q15*/ );
#else
        *noiseTiltFactor = add( round_fx( L_shl( tmp, 15 ) ), 3072 /*0.09375f Q15*/ );
#endif
		move16();
		BASOP_SATURATE_WARNING_ON_EVS;
	}
@@ -186,7 +190,11 @@ void tcxFormantEnhancement(
	{
		fac = add(fac0, mult(d, extract_l(L_mult0(j, inv_int[n]))));
		BASOP_SATURATE_WARNING_OFF_EVS;
#ifdef BASOP_NOGLOB
        xn_buf[l + j] = s_min( xn_one, shl_sat( mult( xn_buf[l + j], fac ), fac_e ) );
#else
        xn_buf[l + j] = s_min( xn_one, shl( mult( xn_buf[l + j], fac ), fac_e ) );
#endif
		move16();
		BASOP_SATURATE_WARNING_ON_EVS;
	}
+23 −5
Original line number Diff line number Diff line
@@ -70,8 +70,13 @@ Word16 est_tilt_fx( /* o : tilt of the code Q15 *

    i = sub(exp1, exp2);
    BASOP_SATURATE_WARNING_OFF_EVS
#ifdef BASOP_NOGLOB
    ener1 = shr_sat( ener1, sub( 1, s_min( i, 0 ) ) );
    ener2 = shr_sat(ener2, add(s_max(0, i), 1));
#else
    ener1 = shr( ener1, sub( 1, s_min( i, 0 ) ) );
    ener2 = shr(ener2, add(s_max(0, i), 1));
#endif
    BASOP_SATURATE_WARNING_ON_EVS
    tmp = sub(ener1, ener2);
    ener1 = add(add(ener1, ener2), 1);
@@ -154,8 +159,13 @@ Word16 est_tilt_ivas_fx( /* o : tilt of the code Q15

    i = sub(exp1, exp2);
    BASOP_SATURATE_WARNING_OFF_EVS
#ifdef BASOP_NOGLOB
    ener1 = shr_sat( ener1, sub( 1, s_min( i, 0 ) ) );
    ener2 = shr_sat(ener2, add(s_max(0, i), 1));
#else
    ener1 = shr( ener1, sub( 1, s_min( i, 0 ) ) );
    ener2 = shr(ener2, add(s_max(0, i), 1));
#endif
    BASOP_SATURATE_WARNING_ON_EVS
    tmp = sub(ener1, ener2);
    ener1 = add(add(ener1, ener2), 1);
@@ -335,7 +345,11 @@ void E_UTIL_voice_factor( Word16 *exc, /* i : pointer to the excitatio
    {
        tmp = L_shr(tmp,1);
        BASOP_SATURATE_WARNING_OFF_EVS
#ifdef BASOP_NOGLOB
        ener = L_shr_sat( ener, sub( 1, i ) );
#else
        ener = L_shr( ener, sub( 1, i ) );
#endif
        BASOP_SATURATE_WARNING_ON_EVS
    }

@@ -345,7 +359,11 @@ void E_UTIL_voice_factor( Word16 *exc, /* i : pointer to the excitatio
    IF(num != 0)
    {
        BASOP_SATURATE_WARNING_OFF_EVS /* Allow saturating the voice factor because if has a limited range by definition. */
#ifdef BASOP_NOGLOB
        *voice_fac = divide3232( num, L_add_sat( ener, tmp ) );
#else
        *voice_fac = divide3232( num, L_add( ener, tmp ) );
#endif
        move16();
        BASOP_SATURATE_WARNING_ON_EVS
    }
Loading