Commit 6936ad5b authored by norvell's avatar norvell
Browse files

A few more BASOP_NOGLOB patches

parent 983ba7a6
Loading
Loading
Loading
Loading
+28 −6
Original line number Diff line number Diff line
@@ -1044,6 +1044,10 @@ static void fft5_shift4_16fx(
    Word16 T1, To, T8, Tt, T9, Ts, Te, Tp, Th, Tn,T2, T3, T4, T5, T6, T7;
    Word16 i0,i1,i2,i3,i4;
    Word32 L_tmp;
#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif


    i0 = Idx[0];
    move16();
@@ -1095,7 +1099,11 @@ static void fft5_shift4_16fx(
    L_tmp = Mult_32_16(KP559016994_16FX,sub(T4,T7));
    Tn = round_fx(L_tmp);

#ifdef BASOP_NOGLOB
    zRe[i0] = add_o(T1, T8, &Overflow);
#else
    zRe[i0] = add(T1,T8);
#endif
    move16();
    zIm[i0] = add(To,Tp);
    move16();
@@ -1110,6 +1118,19 @@ static void fft5_shift4_16fx(
    L_tmp = Msub_32_16(L_tmp,KP587785252_16FX,Te);
    T3 = round_fx(L_tmp);

#ifdef BASOP_NOGLOB
    T6 = sub_o(T1, shr_o(T8, 2, &Overflow), &Overflow);
    T4 = add_o(T9, T6, &Overflow);
    T5 = sub_o(T6, T9, &Overflow);
    zRe[i1] = sub_o(T4, T2, &Overflow);
    move16();
    zRe[i2] = add_o(T5, T3, &Overflow);
    move16();
    zRe[i4] = add_o(T4, T2, &Overflow);
    move16();
    zRe[i3] = sub_o(T5, T3, &Overflow);
    move16();
#else
    T6 = sub(T1, shr(T8, 2));
    T4 = add(T9, T6);
    T5 = sub(T6, T9);
@@ -1121,6 +1142,7 @@ static void fft5_shift4_16fx(
    move16();
    zRe[i3] = sub(T5, T3);
    move16();
#endif

    /*    T2 = KP951056516 * Ts + KP587785252 * Tt; */
    L_tmp = Mult_32_16(KP951056516_16FX,Ts);
+12 −0
Original line number Diff line number Diff line
@@ -323,7 +323,11 @@ void FEC_clas_estim_fx(
            {
                pt1++;
                pt2++;
#ifdef BASOP_NOGLOB
                Ltmp = L_mac0_o(Ltmp, *pt1, *pt1, &Overflow);
#else
                Ltmp  = L_mac0(Ltmp,  *pt1, *pt1);
#endif
                Ltmp1 = L_mac0(Ltmp1, *pt1, *pt2);
            }
            tilt = 0;
@@ -891,10 +895,18 @@ static void Corre(
    Word16 den2, den2_exp;
    Word32 tmp;
    Word16 tmp_exp;
#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif


    /* keep Q15 normalized result */
    cor = extract_h(Dot_product12(x, y, l, &cor_exp));
#ifdef BASOP_NOGLOB
    den = add_o(extract_h(Dot_product12(y, y, l, &den_exp)), 1, &Overflow);
#else
    den = add(extract_h(Dot_product12(y, y, l, &den_exp)), 1);
#endif
    den2 = extract_h(Dot_product12(x, x, l, &den2_exp));

    /* keep Q31 normalized result */
+4 −0
Original line number Diff line number Diff line
@@ -126,7 +126,11 @@ void FEC_exc_estim_fx(
        gainCNG = round_fx(L_shl(L_tmp, sub(exp, 12))); /* In Q3 */

    }
#ifdef BASOP_NOGLOB
    tmp1 = shl_o(st_fx->lp_gainc_fx, 1, &Overflow);
#else
    tmp1 = shl(st_fx->lp_gainc_fx,1);
#endif
    gainCNG = s_min(gainCNG , tmp1);
    set16_fx( exc_dct_in, 0, L_FRAME16k );

+20 −0
Original line number Diff line number Diff line
@@ -73,6 +73,10 @@ void LD_music_post_filter_fx
    Word16 mant, exp1, s_ave, tmp16, old_tmp16;
    Word16 diff_sc;
    Word16 old_tmp16_1;
#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif



    local_min_gain = hMusicPF->LDm_enh_min_ns_gain_fx;
@@ -176,7 +180,11 @@ void LD_music_post_filter_fx
        FOR( k=j; k < mfreq_bindiv_LD[i]+j; k++ )
        {
            /*m_ave += lf_E[k];*/
#ifdef BASOP_NOGLOB
            Ltmp = L_add_o(lf_E[k], Ltmp, &Overflow);
#else
            Ltmp = L_add(lf_E[k], Ltmp);
#endif
            max_val = L_max(max_val, lf_E[k]);
        }
        Ltmp_max = L_max(Ltmp_max, max_val);
@@ -469,7 +477,11 @@ static void spectrum_mod_dct_fx(

    IF ( music_flag != 0 ) /* prevent subtraction on clean speech */
    {
#ifdef BASOP_NOGLOB
        IF(LE_32(maxNoise, L_shl_o(10, scaling, &Overflow)))
#else
        IF( LE_32(maxNoise, L_shl(10, scaling)))
#endif
        {
            minE = 18432/2;      /*Q14*/ move16();
        }
@@ -671,6 +683,10 @@ static void find_enr_dct_fx(
    Word16 freq;
    const Word16 *ptR;
    Word32 LE_min, Ltmp, Ltmp1;
#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif


    LE_min = L_max(L_shl(E_MIN_Q15, sub(shl(Q_dct,1)+10,22)),1);

@@ -696,7 +712,11 @@ static void find_enr_dct_fx(
            move32();

            /*band[i] += *ptE++;*/
#ifdef BASOP_NOGLOB
            Ltmp1 = L_add_o(Ltmp, Ltmp1, &Overflow);
#else
            Ltmp1 = L_add(Ltmp, Ltmp1);
#endif

            ptE++;
            ptR++;
+27 −1
Original line number Diff line number Diff line
@@ -489,7 +489,11 @@ void bass_psfilter_fx(
                FOR (i=0; i< subfr_len /2; i++)
                {
                    Lener0 = L_mult0(sigPtr[i], sigPtr[i]);
#ifdef BASOP_NOGLOB
                    Lener = L_add(Lener, L_shr(L_mac0_o(Lener0, err[i], err[i], &Overflow), 5));
#else
                    Lener = L_add(Lener, L_shr(L_mac0(Lener0, err[i], err[i]), 5));
#endif
                }
                exp2 = sub(exp2, 5);
            }
@@ -598,9 +602,17 @@ void bass_psfilter_fx(
            tmp2 = sub(tmp2, 1+4); /* substract 1 because 'Lener' is divided by two */
            tmp2 = add(tmp2, Q_syn2x);
            tmp2 = s_max(0, s_min(30, tmp2));
#ifdef BASOP_NOGLOB
            Lener = L_add_o(Lener, Pow2(tmp2, exp2), &Overflow);
#else
            Lener = L_add(Lener, Pow2(tmp2, exp2));
#endif
            exp2 = norm_l(Lener);
#ifdef BASOP_NOGLOB
            tmp2 = round_fx_o(L_shl(Lener, exp2), &Overflow);
#else
            tmp2 = round_fx(L_shl(Lener, exp2));
#endif
            if (GT_16(tmp, tmp2))
            {
                exp = sub(exp, 1);
@@ -724,6 +736,10 @@ static Word16 Pit_track_fx( /* o : Pitch */
    Word32 Ltmp0, Lcorr0, Lener0;
    Word16 *v1, *v2;
    Word16 exp1, exp2;
#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif


    /*----------------------------------------------------------------*
     * Test pitch/2 to avoid continuous pitch doubling
@@ -751,9 +767,15 @@ static Word16 Pit_track_fx( /* o : Pitch */
        Lcorr0 = L_mult0(*v1++, *v2++);
        FOR (i = 1; i < (L_HALFR16k+NBPSF_L_EXTRA)/14; i++)
        {
#ifdef BASOP_NOGLOB
            Lener0 = L_mac0_o(Lener0, *v1, *v1, &Overflow);
            Ltmp0 = L_mac0_o(Ltmp0, *v2, *v2, &Overflow);
            Lcorr0 = L_mac0_o(Lcorr0, *v1++, *v2++, &Overflow);
#else
            Lener0 = L_mac0(Lener0, *v1, *v1);
            Ltmp0 = L_mac0(Ltmp0, *v2, *v2);
            Lcorr0 = L_mac0(Lcorr0, *v1++, *v2++);
#endif
        }
        BASOP_SATURATE_WARNING_ON
        test();
@@ -793,7 +815,11 @@ static Word16 Pit_track_fx( /* o : Pitch */
    exp1 = norm_l(Lener);
    exp2 = norm_l(Ltmp);
    /* Multiply the Most Significant 16 bits */
#ifdef BASOP_NOGLOB
    Ltmp = L_mult0(round_fx_o(L_shl_o(Lener, exp1, &Overflow), &Overflow), round_fx_o(L_shl_o(Ltmp, exp2, &Overflow), &Overflow));
#else
    Ltmp = L_mult0(round_fx(L_shl(Lener, exp1)), round_fx(L_shl(Ltmp, exp2)));
#endif
    exp1 = add(exp1, exp2);
    /* Correct if Odd # of Shifts */
    exp2 = s_and(exp1, 1);
Loading