Commit c8764650 authored by vaillancour's avatar vaillancour
Browse files

Fixes VOIP

parent 7d4ed746
Loading
Loading
Loading
Loading
+54 −17
Original line number Diff line number Diff line
@@ -1245,35 +1245,41 @@ static void fft5_32_16fx(
    move16();
    T3 = zRe[i4];
    move16();
    T4 = add(T2, T3);

#ifdef BASOP_NOGLOB
    T4 = add_sat(T2, T3);
    T5 = zRe[i2];
    move16();
    T6 = zRe[i3];
    move16();
#ifdef BASOP_NOGLOB
    T7 = add_o(T5,T6, &Overflow);
    T8 = add_o(T4,T7, &Overflow);
    Tt = sub_o(T5,T6, &Overflow);
#else
    T4 = add(T2, T3);
    T5 = zRe[i2];
    move16();
    T6 = zRe[i3];
    move16();
    T7 = add(T5,T6);
    T8 = add(T4,T7);
    Tt = sub(T5,T6);
#endif
#ifdef BASOP_NOGLOB
    /* T9 = KP559016994 * (T4 - T7); */
    L_tmp = Mult_32_16(KP559016994_16FX,sub(T4,T7));
    T9 = round_fx(L_tmp);
    Ts = sub(T2,T3);
    L_tmp = Mult_32_16(KP559016994_16FX, sub_sat(T4, T7));
    T9 = round_fx_sat(L_tmp);
    Ts = sub_sat(T2, T3);

    T2 = zIm[i1];
    move16();
    T3 = zIm[i4];
    move16();
    T4 = add(T2,T3);
    T4 = add_sat(T2, T3);
    T5 = zIm[i2];
    move16();
    T6 = zIm[i3];
    move16();
#ifdef BASOP_NOGLOB
    T7 = add_sat(T5,T6);
    Te = sub_sat(T2,T3);
    Tp = add_sat(T4,T7);
@@ -1281,6 +1287,20 @@ static void fft5_32_16fx(
    L_tmp = Mult_32_16(KP559016994_16FX,sub_sat(T4,T7));
    Tn = round_fx_sat(L_tmp);
#else
    /* T9 = KP559016994 * (T4 - T7); */
    L_tmp = Mult_32_16(KP559016994_16FX, sub(T4, T7));
    T9 = round_fx(L_tmp);
    Ts = sub(T2, T3);

    T2 = zIm[i1];
    move16();
    T3 = zIm[i4];
    move16();
    T4 = add(T2, T3);
    T5 = zIm[i2];
    move16();
    T6 = zIm[i3];
    move16();
    T7 = add(T5,T6);
    Te = sub(T2,T3);
    Tp = add(T4,T7);
@@ -1302,22 +1322,23 @@ static void fft5_32_16fx(
    move32();
#endif

#ifdef BASOP_NOGLOB
    /*T2 = KP951056516*Te + KP587785252*Th; */
    L_tmp = Mult_32_16(KP951056516_16FX, Te);
    L_tmp = Madd_32_16(L_tmp, KP587785252_16FX, Th);
    T2 = round_fx(L_tmp);
    T2 = round_fx_sat(L_tmp);

    /*T3 = KP951056516*Th - KP587785252*Te; */
    L_tmp = Mult_32_16(KP951056516_16FX, Th);
    L_tmp = Msub_32_16(L_tmp, KP587785252_16FX, Te);
    T3 = round_fx(L_tmp);
    T3 = round_fx_sat(L_tmp);



    T6 = sub(T1,shr(T8,2));
    T4 = add(T9,T6);
    T5 = sub(T6,T9);
#ifdef BASOP_NOGLOB
    T6 = sub_sat(T1, shr(T8, 2));
    T4 = add_sat(T9, T6);
    T5 = sub_sat(T6, T9);

    zRe[i3] = sub_o(T4,T2, &Overflow);
    move32();
    zRe[i1] = add_o(T5,T3, &Overflow);
@@ -1327,6 +1348,22 @@ static void fft5_32_16fx(
    zRe[i4] = sub_o(T5,T3, &Overflow);
    move32();
#else
    /*T2 = KP951056516*Te + KP587785252*Th; */
    L_tmp = Mult_32_16(KP951056516_16FX, Te);
    L_tmp = Madd_32_16(L_tmp, KP587785252_16FX, Th);
    T2 = round_fx(L_tmp);

    /*T3 = KP951056516*Th - KP587785252*Te; */
    L_tmp = Mult_32_16(KP951056516_16FX, Th);
    L_tmp = Msub_32_16(L_tmp, KP587785252_16FX, Te);
    T3 = round_fx(L_tmp);



    T6 = sub(T1, shr(T8, 2));
    T4 = add(T9, T6);
    T5 = sub(T6, T9);

    zRe[i3] = sub(T4,T2);
    move32();
    zRe[i1] = add(T5,T3);
+4 −0
Original line number Diff line number Diff line
@@ -1419,7 +1419,11 @@ static void envelope_fx(
    pt3 = exp_tab_q_fx+33;
    FOR ( i = 0; i <= M; i++ )
    {
#ifdef BASOP_NOGLOB
        L_tmp = L_mac_sat(L_tmp, *pt2++, *pt3--);
#else
        L_tmp = L_mac(L_tmp, *pt2++, *pt3--);
#endif
    }
    q3 = norm_l(L_tmp);
    shift = sub(q2, q3);