Commit d9831640 authored by Fabian Bauer's avatar Fabian Bauer
Browse files

some more _o replacements

parent 2093b5fd
Loading
Loading
Loading
Loading
Loading
+44 −0
Original line number Diff line number Diff line
@@ -354,9 +354,11 @@ void nelp_encoder_fx(
    move32();
    Word16 BP1_ORDER;
    Word16 rf_flag;
#ifndef ISSUE_1867_replace_overflow_libenc
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
    Flag Overflow = 0;
    move32();
#endif
#endif
    SC_VBR_ENC_HANDLE hSC_VBR = st_fx->hSC_VBR;
    BSTR_ENC_HANDLE hBstr = st_fx->hBstr;
@@ -422,7 +424,11 @@ void nelp_encoder_fx(
        E1_fx = L_deposit_l( 0 );
        FOR( i = 0; i < L_FRAME; i++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            E1_fx = L_mac0_sat( E1_fx, in_fx[i], in_fx[i] ); /*Q(qE1+qE1) */  //??sat
#else
            E1_fx = L_mac0_o( E1_fx, in_fx[i], in_fx[i], &Overflow ); /*Q(qE1+qE1) */
#endif
        }

        qE1 = shl( qE1, 1 );
@@ -438,7 +444,11 @@ void nelp_encoder_fx(
        EL1_fx = L_deposit_l( 0 );
        FOR( i = 0; i < L_FRAME; i++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            EL1_fx = L_mac0_sat( EL1_fx, filtRes_fx[i], filtRes_fx[i] ); /*Q(2*qIn) */  //??sat
#else
            EL1_fx = L_mac0_o( EL1_fx, filtRes_fx[i], filtRes_fx[i], &Overflow ); /*Q(2*qIn) */
#endif
        }
        qEL1 = shl( qEL1, 1 );

@@ -454,7 +464,11 @@ void nelp_encoder_fx(
        EH1_fx = L_deposit_l( 0 );
        FOR( i = 0; i < L_FRAME; i++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            EH1_fx = L_mac0_sat( EH1_fx, filtRes_fx[i], filtRes_fx[i] ); /*Q(2*qEH1) */   //??sat
#else
            EH1_fx = L_mac0_o( EH1_fx, filtRes_fx[i], filtRes_fx[i], &Overflow ); /*Q(2*qEH1) */
#endif
        }
        qEH1 = 2 * qEH1;
        move16();
@@ -470,7 +484,11 @@ void nelp_encoder_fx(
        Ltemp = L_deposit_l( 0 );
        FOR( j = (Word16) ( i * lag ); j < (Word16) ( ( i + 1 ) * lag ); j++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            Ltemp = L_mac0_sat( Ltemp, in_fx[j], in_fx[j] ); /*Q(2*qGain) */  //??sat
#else
            Ltemp = L_mac0_o( Ltemp, in_fx[j], in_fx[j], &Overflow ); /*Q(2*qGain) */
#endif
        }

        /*Gains[i] = (float) sqrt(Gains[i]/lag); */
@@ -494,7 +512,11 @@ void nelp_encoder_fx(
    Ltemp = L_deposit_l( 0 );
    FOR( j = (Word16) ( i * lag ); j < L_FRAME; j++ )
    {
#ifdef ISSUE_1867_replace_overflow_libenc
        Ltemp = L_mac0_sat( Ltemp, in_fx[j], in_fx[j] ); /*Q(2*qGain) */  //??sat
#else
        Ltemp = L_mac0_o( Ltemp, in_fx[j], in_fx[j], &Overflow ); /*Q(2*qGain) */
#endif
    }

    /*Gains[i] = (float) sqrt(Gains[i]/(L_FRAME-(lag*i))); */
@@ -1099,9 +1121,11 @@ void nelp_encoder_ivas_fx(
    move32();
    Word16 BP1_ORDER;
    Word16 rf_flag;
#ifndef ISSUE_1867_replace_overflow_libenc
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
    Flag Overflow = 0;
    move32();
#endif
#endif
    SC_VBR_ENC_HANDLE hSC_VBR = st_fx->hSC_VBR;
    BSTR_ENC_HANDLE hBstr = st_fx->hBstr;
@@ -1169,7 +1193,11 @@ void nelp_encoder_ivas_fx(
        E1_fx = L_deposit_l( 0 );
        FOR( i = 0; i < L_FRAME; i++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            E1_fx = L_mac0_sat( E1_fx, in_fx[i], in_fx[i] ); /*Q(qE1+qE1) */  //??sat
#else
            E1_fx = L_mac0_o( E1_fx, in_fx[i], in_fx[i], &Overflow ); /*Q(qE1+qE1) */
#endif
        }

        qE1 = shl( qE1, 1 );
@@ -1184,7 +1212,11 @@ void nelp_encoder_ivas_fx(
        EL1_fx = L_deposit_l( 0 );
        FOR( i = 0; i < L_FRAME; i++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            EL1_fx = L_mac0_sat( EL1_fx, filtRes_fx[i], filtRes_fx[i] ); /*Q(2*qIn) */  //??sat
#else
            EL1_fx = L_mac0_o( EL1_fx, filtRes_fx[i], filtRes_fx[i], &Overflow ); /*Q(2*qIn) */
#endif
        }
        qEL1 = shl( qEL1, 1 );

@@ -1200,7 +1232,11 @@ void nelp_encoder_ivas_fx(
        EH1_fx = L_deposit_l( 0 );
        FOR( i = 0; i < L_FRAME; i++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            EH1_fx = L_mac0_sat( EH1_fx, filtRes_fx[i], filtRes_fx[i] ); /*Q(2*qEH1) */   //??sat
#else
            EH1_fx = L_mac0_o( EH1_fx, filtRes_fx[i], filtRes_fx[i], &Overflow ); /*Q(2*qEH1) */
#endif
        }
        qEH1 = shl( qEH1, 1 );
        move16();
@@ -1215,7 +1251,11 @@ void nelp_encoder_ivas_fx(
        Ltemp = L_deposit_l( 0 );
        FOR( j = (Word16) ( i * lag ); j < (Word16) ( ( i + 1 ) * lag ); j++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            Ltemp = L_mac0_sat( Ltemp, in_fx[j], in_fx[j] ); /*Q(2*qGain) */  //??sat
#else
            Ltemp = L_mac0_o( Ltemp, in_fx[j], in_fx[j], &Overflow ); /*Q(2*qGain) */
#endif
        }

        /*Gains[i] = (float) sqrt(Gains[i]/lag); */
@@ -1239,7 +1279,11 @@ void nelp_encoder_ivas_fx(
    Ltemp = L_deposit_l( 0 );
    FOR( j = i_mult( i, lag ); j < L_FRAME; j++ )
    {
#ifdef ISSUE_1867_replace_overflow_libenc
        Ltemp = L_mac0_sat( Ltemp, in_fx[j], in_fx[j] ); /*Q(2*qGain) */  //??sat
#else
        Ltemp = L_mac0_o( Ltemp, in_fx[j], in_fx[j], &Overflow ); /*Q(2*qGain) */
#endif
    }

    /*Gains[i] = (float) sqrt(Gains[i]/(L_FRAME-(lag*i))); */
+99 −16
Original line number Diff line number Diff line
@@ -102,12 +102,18 @@ static Word16 noise_est_ln_q8_fx(
{
    Word16 e_ener, f_ener;
    Word32 L_tmp;
#ifndef ISSUE_1867_replace_overflow_libenc
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
    Flag Overflow = 0;
    move32();
#endif
#endif

#ifdef ISSUE_1867_replace_overflow_libenc
    L_tmp = L_add_sat( L_enr, L_shl( (Word32) 1L, q_new_plus_q_scale ) ); /*  +1.0f */  //??sat
#else
    L_tmp = L_add_o( L_enr, L_shl( (Word32) 1L, q_new_plus_q_scale ), &Overflow ); /*  +1.0f */
#endif
    if ( flag_add1p0 == 0 )
    {
        L_tmp = L_add( L_enr, 0 ); /* +0 , no offset */
@@ -664,8 +670,10 @@ void noise_est_down_fx(
    Word16 scale;
    Word32 totalNoise_temp;
    Word32 L_Etot, L_Etot_last, L_Etot_v_h2, L_Etot_v;
#ifndef ISSUE_1867_replace_overflow_libenc
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
    Flag Overflow = 0;
#endif
#endif

    L_Etot = L_shl( Etot, 16 ); /*Q24 for later AR1 computations*/
@@ -681,7 +689,11 @@ void noise_est_down_fx(
    totalNoise_temp = L_deposit_l( 0 );
    FOR( i = min_band; i <= max_band; i++ )
    {
#ifdef ISSUE_1867_replace_overflow_libenc
        totalNoise_temp = L_add_sat( totalNoise_temp, bckr[i] ); /*Q_new+QSCALE*/   //??sat
#else
        totalNoise_temp = L_add_o( totalNoise_temp, bckr[i], &Overflow ); /*Q_new+QSCALE*/
#endif
    }
    totalNoise_temp = L_max( totalNoise_temp, L_shl( e_min, 4 ) );

@@ -705,7 +717,11 @@ void noise_est_down_fx(

    FOR( i = 0; i < NB_BANDS; i++ )
    {
#ifdef ISSUE_1867_replace_overflow_libenc
        Ltmp = L_add_sat( L_shr_r( *pt1, 1 ), L_shr_r( *pt2, 1 ) );   //??sat
#else
        Ltmp = L_add_o( L_shr_r( *pt1, 1 ), L_shr_r( *pt2, 1 ), &Overflow );
#endif
        /*Ltmp = L_shr_r(L_add(*pt1,*pt2),1);*/
        enr[i] = Ltmp;
        move32(); /*Q_new+QSCALE*/
@@ -1003,9 +1019,11 @@ void noise_est_fx(
    }

    GSC_ENC_HANDLE hGSCEnc = st_fx->hGSCEnc;
#ifndef ISSUE_1867_replace_overflow_libenc
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
    Flag Overflow = 0;
    move32();
#endif
#endif

    /*-----------------------------------------------------------------*
@@ -1101,8 +1119,13 @@ void noise_est_fx(

    Ltmp = L_deposit_h( corr_shift );
    Ltmp = L_mac( Ltmp, st_fx->voicing_fx[0], 10923 );
#ifdef ISSUE_1867_replace_overflow_libenc
    Ltmp = L_mac_sat( Ltmp, st_fx->voicing_fx[1], 10923 );  //??sat
    wtmp = mac_r_sat( Ltmp, st_fx->voicing_fx[2], 10923 );   //??sat
#else
    Ltmp = L_mac_o( Ltmp, st_fx->voicing_fx[1], 10923, &Overflow );
    wtmp = mac_ro( Ltmp, st_fx->voicing_fx[2], 10923, &Overflow );
#endif

    tmp_pc = pc;
    move16();
@@ -1155,7 +1178,11 @@ void noise_est_fx(
    FOR( i = 10; i <= st_fx->max_band; i++ )
    {
        Lnum = L_max( *pt1, *pt2 ); /* Don't need if anymore */
#ifdef ISSUE_1867_replace_overflow_libenc
        Lsum_den = L_add_sat( Lsum_den, Lnum );   //??sat
#else
        Lsum_den = L_add_o( Lsum_den, Lnum, &Overflow );
#endif
        Ltmpden = L_min( *pt1, *pt2 );
        if ( Ltmpden == 0 )
        {
@@ -1211,8 +1238,8 @@ void noise_est_fx(
    /* calculation of energy in the rest of bands */
    Ltmp2 = sum32_fx( &fr_bands[10], sub( st_fx->max_band, 9 ) );

#ifdef ISSUE_1796_replace_shl_o
    wtmp = shl_sat( 1, sub( add( Q_new, QSCALE ), 1 ) );
#ifdef ISSUE_1867_replace_overflow_libenc
    wtmp = shl_sat( 1, sub( add( Q_new, QSCALE ), 1 ) );  //??sat
#else
    wtmp = shl_o( 1, sub( add( Q_new, QSCALE ), 1 ), &Overflow );
#endif
@@ -1232,8 +1259,8 @@ void noise_est_fx(
        ExpDen = norm_l( Ltmp );
        den = extract_h( L_shl( Ltmp, ExpDen ) );
        num = div_s( num, den );
#ifdef ISSUE_1799_replace_L_shr_o
        noise_chartmp = extract_h( L_shr_sat( num, add( sub( ExpNum, ExpDen ), 4 - 16 ) ) ); /* Q11 */
#ifdef ISSUE_1867_replace_overflow_libenc
        noise_chartmp = extract_h( L_shr_sat( num, add( sub( ExpNum, ExpDen ), 4 - 16 ) ) ); /* Q11 */ //??sat
#else
        noise_chartmp = extract_h( L_shr_o( num, add( sub( ExpNum, ExpDen ), 4 - 16 ), &Overflow ) ); /* Q11 */
#endif
@@ -1279,7 +1306,11 @@ void noise_est_fx(
    /* alpha =  0.064f * ftemp  +  0.75f; */
    Ltmp = Mult_32_16( (Word32) 137438953L, tmp );                  /* Q31(.064)+Q8+1-16      -->  Q24 */
    Ltmp = L_mac( Ltmp, 256, 24576 );                               /* Q8+Q15(.75)+1  --> Q24    */
#ifdef ISSUE_1867_replace_overflow_libenc
    alpha = round_fx_sat( L_shl_sat( Ltmp, 7 ) ); /*Q24 +7 --> Q31    Q15*/  //??sat  //??sat
#else
    alpha = round_fx_o( L_shl_o( Ltmp, 7, &Overflow ), &Overflow ); /*Q24 +7 --> Q31    Q15*/
#endif

    /*if( alpha > 0.999f  {     alpha = 0.999f;} */
    alpha = s_min( alpha, 32735 );            /*.999 in Q15*/
@@ -1315,8 +1346,13 @@ void noise_est_fx(
        /* tmp_enr = enr[i] + 1.0f; */
        tmp_Q = add( Q_new, Q_SCALE );
        Ltmp = L_shl( (Word32) 1L, tmp_Q );                                   /* 1.0 added in the right dynamic domain */
#ifdef ISSUE_1867_replace_overflow_libenc
        L_tmp_enr = L_add_sat( enr[i], Ltmp );                       /* enr      scale  dynamic     */  //??sat
        L_tmp_ave_enr = L_add_sat( hNoiseEst->ave_enr_fx[i], Ltmp ); /* ave__enr  scale dynamic  */   //??sat
#else
        L_tmp_enr = L_add_o( enr[i], Ltmp, &Overflow );                       /* enr      scale  dynamic     */
        L_tmp_ave_enr = L_add_o( hNoiseEst->ave_enr_fx[i], Ltmp, &Overflow ); /* ave__enr  scale dynamic  */
#endif

        IF( LE_32( non_sta, th_sta ) ) /* Just to limit the saturation */
        {
@@ -1335,8 +1371,8 @@ void noise_est_fx(
            den = extract_h( L_shl( Lden, ExpDen ) );
            num = div_s( num, den );
            Ltmp = Mult_32_16( non_sta, num );
#ifdef ISSUE_1799_replace_L_shr_o
            non_sta = L_shr_sat( Ltmp, sub( ExpNum, ExpDen ) ); /* Q10 */
#ifdef ISSUE_1867_replace_overflow_libenc
            non_sta = L_shr_sat( Ltmp, sub( ExpNum, ExpDen ) ); /* Q10 */   //??sat
#else
            non_sta = L_shr_o( Ltmp, sub( ExpNum, ExpDen ), &Overflow );                              /* Q10 */
#endif
@@ -1361,7 +1397,11 @@ void noise_est_fx(
        /* ave_enr2:: calculation of another non-stationarity measure (following attacks)  */
        Ltmp = L_shl( (Word32) 1L, tmp_Q );                                     /* 1.0 added in the right dynamic domain */
        /*L_tmp_enr    =  L_add(enr[i]              , Ltmp );*/                 /* enr      scale  dynamic    , done above  */
#ifdef ISSUE_1867_replace_overflow_libenc
        L_tmp_ave_enr2 = L_add_sat( hNoiseEst->ave_enr2_fx[i], Ltmp ); /* ave__enr  scale dynamic  */   //??sat
#else
        L_tmp_ave_enr2 = L_add_o( hNoiseEst->ave_enr2_fx[i], Ltmp, &Overflow ); /* ave__enr  scale dynamic  */
#endif
        IF( LE_32( Lnon_sta2, th_sta ) )                                        /* Just to limit the saturation */
        {
            Lnum = L_max( L_tmp_enr, L_tmp_ave_enr2 );
@@ -1374,8 +1414,8 @@ void noise_est_fx(
            den = extract_h( L_shl( Lden, ExpDen ) );
            num = div_s( num, den );
            Ltmp1 = Mult_32_16( Lnon_sta2, num );
#ifdef ISSUE_1799_replace_L_shr_o
            Lnon_sta2 = L_shr_sat( Ltmp1, sub( ExpNum, ExpDen ) ); /* Q10 */
#ifdef ISSUE_1867_replace_overflow_libenc
            Lnon_sta2 = L_shr_sat( Ltmp1, sub( ExpNum, ExpDen ) ); /* Q10 */  //??sat
#else
            Lnon_sta2 = L_shr_o( Ltmp1, sub( ExpNum, ExpDen ), &Overflow );                           /* Q10 */
#endif
@@ -1397,7 +1437,11 @@ void noise_est_fx(
                /* log_enr = (float)ln_fx(enr[i]); */
                log_enr16 = noise_est_ln_q8_fx( enr[i], 0, tmp_Q );
                wtmp = abs_s( sub( log_enr16, hSpMusClas->past_log_enr_fx[i - START_BAND_SPMUS] ) );
#ifdef ISSUE_1867_replace_overflow_libenc
                *non_staX = add_sat( *non_staX, wtmp );   //??sat
#else
                *non_staX = add_o( *non_staX, wtmp, &Overflow );
#endif
                move16(); /* Q8 */
                hSpMusClas->past_log_enr_fx[i - START_BAND_SPMUS] = log_enr16;
                move16();
@@ -1413,7 +1457,11 @@ void noise_est_fx(
                tmp_floor = LN_E_MIN_PLUS_ONE_FX;
                move16(); /* non dynamic init constant in Q8 */
                tmp_floor = noise_est_ln_q8_fx( hNoiseEst->bckr_fx[i], 1, tmp_Q );
#ifdef ISSUE_1867_replace_overflow_libenc
                non_staB = add_sat( non_staB, abs_s( sub( tmp_enr, tmp_floor ) ) ); /*  Q8  */  //??sat
#else
                non_staB = add_o( non_staB, abs_s( sub( tmp_enr, tmp_floor ) ), &Overflow ); /*  Q8  */
#endif
            }
            ELSE /*ini_frame < 100*/
            {
@@ -1422,7 +1470,11 @@ void noise_est_fx(
                tmp_floor = LN_E_MIN_PLUS_ONE_FX;
                move16(); /* non dynamic init constant in Q8 */
                tmp_floor = noise_est_ln_q8_fx( E_MIN_FX, 1, tmp_Q );
#ifdef ISSUE_1867_replace_overflow_libenc
                non_staB = add_sat( non_staB, abs_s( sub( tmp_enr, tmp_floor ) ) ); /*  Q8  */  //??sat
#else
                non_staB = add_o( non_staB, abs_s( sub( tmp_enr, tmp_floor ) ), &Overflow ); /*  Q8  */
#endif
            }
        }

@@ -1534,7 +1586,11 @@ void noise_est_fx(
    Ltmp = eps_quota_fx( epsP_h[0], epsP_l[0],
                         epsP_h[2], epsP_l[2], 12 );                        /* Word32  Q12 */
    BASOP_SATURATE_WARNING_OFF_EVS                                          /* may saturate*/
#ifdef ISSUE_1867_replace_overflow_libenc
        epsP_0_2 = round_fx_sat( L_shl_sat( Ltmp, 16 ) ); /* Q12+16  -16 ->  Q12 , NB saturation in Q12 sets max value to  7,999 */  //??sat  //??sat
#else
        epsP_0_2 = round_fx_o( L_shl_o( Ltmp, 16, &Overflow ), &Overflow ); /* Q12+16  -16 ->  Q12 , NB saturation in Q12 sets max value to  7,999 */
#endif
    BASOP_SATURATE_WARNING_ON_EVS

    epsP_0_2 = s_max( 0, epsP_0_2 ); /* min value is 0 , Q12 */
@@ -1573,8 +1629,12 @@ void noise_est_fx(
    Ltmp = eps_quota_fx( epsP_h[2], epsP_l[2],
                         epsP_h[16], epsP_l[16], 12 );                       /* Word32  Q12 */
    BASOP_SATURATE_WARNING_OFF_EVS                                           /* may saturate*/
        epsP_2_16 = round_fx_o( L_shl_o( Ltmp, 16, &Overflow ), &Overflow ); /* Q12+16  -16 ->  Q12 ,
                                          NB saturation in Q12 sets max value to  7,999 */
#ifdef ISSUE_1867_replace_overflow_libenc
        epsP_2_16 = round_fx_sat( L_shl_sat( Ltmp, 16 ) ); /* Q12+16  -16 ->  Q12 ,*/
#else
        epsP_2_16 = round_fx_o( L_shl_o( Ltmp, 16, &Overflow ), &Overflow ); /* Q12+16  -16 ->  Q12 ,*/
#endif
    /* NB saturation in Q12 sets max value to 7, 999 */
    BASOP_SATURATE_WARNING_ON_EVS

    epsP_2_16 = s_max( 0, epsP_2_16 ); /* min value is 0 , Q12 */
@@ -1696,7 +1756,11 @@ void noise_est_fx(
     *-----------------------------------------------------------------*/
    Ltmp = L_mult( st_fx->voicing_fx[0], 16384 );
    Ltmp = L_mac( Ltmp, st_fx->voicing_fx[1], 16384 );
#ifdef ISSUE_1867_replace_overflow_libenc
    cor_tmp = mac_r_sat( Ltmp, corr_shift, MAX_16 );   //??sat
#else
    cor_tmp = mac_ro( Ltmp, corr_shift, MAX_16, &Overflow );
#endif

    LepsP = eps_quota_fx( epsP_h[2], epsP_l[2],
                          epsP_h[16], epsP_l[16], 11 ); /* L_epsP in Q11 */
@@ -2299,9 +2363,11 @@ void noise_est_ivas_fx(
    Le_min_scaled = L_shl( E_MIN_FXQ31, sub( q_fr_bands, Q31 ) ); // q_fr_bands

    GSC_ENC_HANDLE hGSCEnc = st_fx->hGSCEnc;
#ifndef ISSUE_1867_replace_overflow_libenc
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
    Flag Overflow = 0;
    move32();
#endif
#endif

    /* Check if LR-VAD */
@@ -2418,8 +2484,13 @@ void noise_est_ivas_fx(

    Ltmp = L_deposit_h( corr_shift );
    Ltmp = L_mac( Ltmp, st_fx->voicing_fx[0], 10923 );
#ifdef ISSUE_1867_replace_overflow_libenc
    Ltmp = L_mac_sat( Ltmp, st_fx->voicing_fx[1], 10923 );  //??sat
    wtmp = mac_r_sat( Ltmp, st_fx->voicing_fx[2], 10923 );   //??sat
#else
    Ltmp = L_mac_o( Ltmp, st_fx->voicing_fx[1], 10923, &Overflow );
    wtmp = mac_ro( Ltmp, st_fx->voicing_fx[2], 10923, &Overflow );
#endif

    tmp_pc = pc;
    move16();
@@ -2565,8 +2636,8 @@ void noise_est_ivas_fx(
    {
        /* ftemp2 /= ftemp */
        num = div_s( extract_h( Ltmp2 ), extract_h( Ltmp ) ); // 15+exp2-exp
#ifdef ISSUE_1796_replace_shl_o
        noise_chartmp = shl_sat( num, sub( sub( exp, exp2 ), 4 ) ); // 15+exp2-exp1 -> Q11
#ifdef ISSUE_1867_replace_overflow_libenc
        noise_chartmp = shl_sat( num, sub( sub( exp, exp2 ), 4 ) ); // 15+exp2-exp1 -> Q11  //??sat
#else
        noise_chartmp = shl_o( num, sub( sub( exp, exp2 ), 4 ), &Overflow );                          // 15+exp2-exp1 -> Q11
#endif
@@ -2635,7 +2706,11 @@ void noise_est_ivas_fx(

    /* alpha =  0.064f * ftemp  +  0.75f; */
    Ltmp = Madd_32_16( 12582912 /* 0.75 in Q24*/, 137438953, tmp ); // Q24
#ifdef ISSUE_1867_replace_overflow_libenc
    alpha = round_fx_sat( L_shl_sat( Ltmp, 7 ) ); /*Q24 +7 --> Q31    Q15*/  //??sat  //??sat
#else
    alpha = round_fx_o( L_shl_o( Ltmp, 7, &Overflow ), &Overflow ); /*Q24 +7 --> Q31    Q15*/
#endif

    /*if( alpha > 0.999f  {     alpha = 0.999f;} */
    alpha = s_min( alpha, 32735 );            /*.999 in Q15*/
@@ -2699,8 +2774,8 @@ void noise_est_ivas_fx(

            num = div_s( num, den );            // 15+ExpNum-ExpDen
            Ltmp1 = Mult_32_16( non_sta, num ); // 15+ExpNum-ExpDen+10-15
#ifdef ISSUE_1799_replace_L_shr_o
            non_sta = L_shr_sat( Ltmp1, sub( ExpNum, ExpDen ) ); /* Q10 */
#ifdef ISSUE_1867_replace_overflow_libenc
            non_sta = L_shr_sat( Ltmp1, sub( ExpNum, ExpDen ) ); /* Q10 */  //??sat
#else
            non_sta = L_shr_o( Ltmp1, sub( ExpNum, ExpDen ), &Overflow );                             /* Q10 */
#endif
@@ -2742,8 +2817,8 @@ void noise_est_ivas_fx(

            num = div_s( num, den );              // 15+ExpNum-ExpDen
            Ltmp1 = Mult_32_16( Lnon_sta2, num ); // 15+ExpNum-ExpDen+10-15
#ifdef ISSUE_1799_replace_L_shr_o
            Lnon_sta2 = L_shr_sat( Ltmp1, sub( ExpNum, ExpDen ) ); /* Q10 */
#ifdef ISSUE_1867_replace_overflow_libenc
            Lnon_sta2 = L_shr_sat( Ltmp1, sub( ExpNum, ExpDen ) ); /* Q10 */  //??sat
#else
            Lnon_sta2 = L_shr_o( Ltmp1, sub( ExpNum, ExpDen ), &Overflow );                           /* Q10 */
#endif
@@ -2796,7 +2871,11 @@ void noise_est_ivas_fx(

            IF( LT_16( ini_frame, 100 ) )
            {
#ifdef ISSUE_1867_replace_overflow_libenc
                non_staB = add_sat( non_staB, abs_s( sub( tmp_enr, LN_E_MIN_PLUS_ONE_FX ) ) ); /*  Q8  */   //??sat
#else
                non_staB = add_o( non_staB, abs_s( sub( tmp_enr, LN_E_MIN_PLUS_ONE_FX ) ), &Overflow ); /*  Q8  */
#endif
            }
            ELSE /*ini_frame < 100*/
            {
@@ -2818,7 +2897,11 @@ void noise_est_ivas_fx(
                    Ltmp1 = Mpy_32_16_1( Ltmp1, 22713 );         // Q15
                    tmp_floor = round_fx( L_shl( Ltmp1, 9 ) );   /* Q8 */
                }
#ifdef ISSUE_1867_replace_overflow_libenc
                non_staB = add_sat( non_staB, abs_s( sub( tmp_enr, tmp_floor ) ) ); /*  Q8  */  //??sat
#else
                non_staB = add_o( non_staB, abs_s( sub( tmp_enr, tmp_floor ) ), &Overflow ); /*  Q8  */
#endif
            }
        }

+6 −0
Original line number Diff line number Diff line
@@ -29,9 +29,11 @@ void normalizecoefs_fx(
    Word16 *pcoefs16;
    Word32 *pcoefs;
    Word16 subvec_start, subvec_end, num_coefs;
#ifndef ISSUE_1867_replace_overflow_libenc
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
    Flag Overflow = 0;
    move16();
#endif
#endif
    pcoefs = coefs;
    pcoefs16 = coefs_norm;
@@ -55,7 +57,11 @@ void normalizecoefs_fx(
                *pcoefs = Mpy_32_16_1( *pcoefs, INV2POWHALF );
                move32();
            }
#ifdef ISSUE_1867_replace_overflow_libenc
            *pcoefs16++ = round_fx_sat( L_shl_sat( *pcoefs++, 16 - k ) ); /* Q12 */  //??sat  //??sat
#else
            *pcoefs16++ = round_fx_o( L_shl_o( *pcoefs++, 16 - k, &Overflow ), &Overflow ); /* Q12 */
#endif
            move16();
        }
    }
+24 −0
Original line number Diff line number Diff line
@@ -1518,9 +1518,11 @@ void norm_corr_ivas_fx(
    Word16 h_e, e_max;
    Word32 L_tmp;
    Word64 W_tmp;
#ifndef ISSUE_1867_replace_overflow_libenc
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
    Flag Overflow = 0;
    move16();
#endif
#endif

    k = negate( t_min );
@@ -1542,7 +1544,11 @@ void norm_corr_ivas_fx(
        L_tmp = L_mac( 0, xn[0], excf[0] );
        FOR( i = 1; i < L_subfr; i++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            L_tmp = L_mac_sat( L_tmp, xn[i], excf[i] ); // (Q_new - 1) + (Q_new - h_e) + 1  //??sat
#else
            L_tmp = L_mac_o( L_tmp, xn[i], excf[i], &Overflow ); // (Q_new - 1) + (Q_new - h_e) + 1
#endif
        }
        exp = norm_l( L_tmp );
        L_tmp = L_shl( L_tmp, exp );
@@ -1613,9 +1619,11 @@ void norm_corr_fx(
    Word16 corr, exp_corr, norm, exp_norm, exp, scale;
    Word16 excf[L_FRAME16k];
    Word32 L_tmp;
#ifndef ISSUE_1867_replace_overflow_libenc
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
    Flag Overflow = 0;
    move32();
#endif
#endif

    k = negate( t_min );
@@ -1627,10 +1635,18 @@ void norm_corr_fx(
    conv_fx( &exc[k], h, excf, L_subfr );

    /* Compute rounded down 1/sqrt(energy of xn[]) */
#ifdef ISSUE_1867_replace_overflow_libenc
    L_tmp = L_mac_sat( 1, xn[0], xn[0] );   //??sat
#else
    L_tmp = L_mac_o( 1, xn[0], xn[0], &Overflow );
#endif
    FOR( i = 1; i < L_subfr; i++ )
    {
#ifdef ISSUE_1867_replace_overflow_libenc
        L_tmp = L_mac_sat( L_tmp, xn[i], xn[i] );   //??sat
#else
        L_tmp = L_mac_o( L_tmp, xn[i], xn[i], &Overflow );
#endif
    }
    exp = norm_l( L_tmp );
    exp = sub( 30, exp );
@@ -1649,7 +1665,11 @@ void norm_corr_fx(
        L_tmp = L_mac( 1, xn[0], excf[0] );
        FOR( i = 1; i < L_subfr; i++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            L_tmp = L_mac_sat( L_tmp, xn[i], excf[i] );   //??sat
#else
            L_tmp = L_mac_o( L_tmp, xn[i], excf[i], &Overflow );
#endif
        }
        exp = norm_l( L_tmp );
        L_tmp = L_shl( L_tmp, exp );
@@ -1660,7 +1680,11 @@ void norm_corr_fx(
        L_tmp = L_mac( 1, excf[0], excf[0] );
        FOR( i = 1; i < L_subfr; i++ )
        {
#ifdef ISSUE_1867_replace_overflow_libenc
            L_tmp = L_mac_sat( L_tmp, excf[i], excf[i] );   //??sat
#else
            L_tmp = L_mac_o( L_tmp, excf[i], excf[i], &Overflow );
#endif
        }

        exp = norm_l( L_tmp );
+55 −12

File changed.

Preview size limit exceeded, changes collapsed.

Loading