Commit 11d11a1d authored by vaillancour's avatar vaillancour
Browse files

Fix more overflows with that command line : 24400 16 stv16n2.INP

parent 0647b2bd
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -30,6 +30,9 @@ static Word16 find_ener_decrease_fx( /* o : maximum energy ratio Q10
    Word16 wtmp0, wtmp1;
    Word32 maxEnr, minEnr;
    Word16 dE2, exp0, exp1;
#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif

    dE2 = 0;
    move16();
@@ -71,8 +74,11 @@ static Word16 find_ener_decrease_fx( /* o : maximum energy ratio Q10
    exp1 = sub(norm_l(maxEnr),1);
    wtmp1 = extract_h(L_shl(maxEnr, exp1));
    wtmp1 = div_s(wtmp1,wtmp0);
#ifdef BASOP_NOGLOB
    dE2 = shr_r_o(wtmp1, add(sub(exp1, exp0),15-10), &Overflow);  /*Q10*/
#else
    dE2 = shr_r(wtmp1, add(sub(exp1, exp0),15-10));  /*Q10*/

#endif
    return dE2;
}

+4 −1
Original line number Diff line number Diff line
@@ -773,8 +773,11 @@ void pitch_ol_fx(
            move16();  /* selected moving vector  */
            enr1_exp = 0;
            move16();
#ifdef BASOP_NOGLOB
            enr1 = add_o(extract_h(dotp_fx( pt4, pt4, len1[j], &enr1_exp)), 1, &Overflow);
#else
            enr1 = add(extract_h(dotp_fx( pt4, pt4, len1[j], &enr1_exp)), 1);

#endif
            enr2 = L_mult(enr0_1[j], enr1);
            enr2_exp = norm_l(enr2);
            enr2 = L_shl(enr2, enr2_exp);