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

fix macro - do all recalcs, but R2

parent d4407fc7
Loading
Loading
Loading
Loading
Loading
+26 −20
Original line number Diff line number Diff line
@@ -515,6 +515,8 @@ void hp20_fx_32(
}
#else
#define SPEEDUP_1_hp20_fx_32
#define SPEEDUP_2_hp20_fx_32

void hp20_fx_32(
    Word32 signal_fx[],
    const Word16 lg,
@@ -582,10 +584,6 @@ void hp20_fx_32(
    x0_fx64 = W_deposit32_l( mem_fx[2] );
    x1_fx64 = W_deposit32_l( mem_fx[3] );

#ifdef SPEEDUP_1_hp20_fx_32
    Word16 Qy1_new, Qy2_new;
#endif

    FOR( i = 0; i < lg; i++ )
    {
        x2_fx64 = x1_fx64;
@@ -603,7 +601,7 @@ void hp20_fx_32(
        Qy1 = sub( Qy1, 34 );

#ifdef SPEEDUP_1_hp20_fx_32
        Qy1_new = add( Qy1, Qprev_y1 );


#else
        R1 = W_mult0_32_32( W_shl_sat_l( y1_fx64, Qy1 ), a1_fx );
@@ -618,7 +616,6 @@ void hp20_fx_32(
        Qy2 = sub( Qy2, 34 );

#ifdef SPEEDUP_1_hp20_fx_32
        Qy2_new = add( Qy2, Qprev_y2 );

#else
        R2 = W_mult0_32_32( W_shl_sat_l( y2_fx64, Qy2 ), a2_fx );
@@ -643,7 +640,6 @@ void hp20_fx_32(
        }
        Qx1 = sub( Qx1, 34 );
#ifndef SPEEDUP_1_hp20_fx_32

        R4 = W_mult0_32_32( W_shl_sat_l( x1_fx64, Qx1 ), b1_fx );
#endif
        Qx2 = W_norm( x2_fx64 );
@@ -653,18 +649,23 @@ void hp20_fx_32(
            move16();
        }
        Qx2 = sub( Qx2, 34 );

#ifndef SPEEDUP_1_hp20_fx_32
        R5 = W_mult0_32_32( W_shl_sat_l( x2_fx64, Qx2 ), b2_fx );

#endif
#ifdef SPEEDUP_1_hp20_fx_32

        Qmin = s_min( Qy1_new, Qy2_new );

        R1 = W_mult0_32_32( W_shr( W_shl( y1_fx64, Qy1 ), sub( Qy1_new, Qmin ) ), a1_fx );
        R2 = W_mult0_32_32( W_shr( W_shl( y2_fx64, Qy2 ), sub( Qy2_new, Qmin ) ), a2_fx );
        R3 = W_mult0_32_32( W_shl( x0_fx64, Qx0 ), b2_fx );
        R4 = W_mult0_32_32( W_shl( x1_fx64, Qx1 ), b1_fx );
        Qmin = s_min( add( Qy1, Qprev_y1 ), add( Qy2, Qprev_y2 ) );

#ifdef SPEEDUP_2_hp20_fx_32
        R1 = W_mult0_32_32( W_shl_sat_l( y1_fx64, sub( Qy1, sub( add( Qy1, Qprev_y1 ), Qmin ) ) ), a1_fx );
#else
        R1 = W_shr( W_mult0_32_32( W_shl_sat_l( y1_fx64, Qy1 ), a1_fx ), sub( add( Qy1, Qprev_y1 ), Qmin ) );
#endif
#ifdef SPEEDUP_2_hp20_fx_32_
        R2 = W_mult0_32_32( W_shl_sat_l( y2_fx64, sub( Qy2, sub( add( Qy2, Qprev_y2 ), Qmin ) ) ), a2_fx );
#else
        R2 = W_shr( W_mult0_32_32( W_shl_sat_l( y2_fx64, Qy2 ), a2_fx ), sub( add( Qy2, Qprev_y2 ), Qmin ) );
#endif
        y0_fx64 = W_add( R1, R2 );


@@ -672,11 +673,16 @@ void hp20_fx_32(
        Qmin = s_min( Qmin, Qx1 );
        Qmin = s_min( Qmin, Qx2 );

        R3 = W_shr( R3, sub( Qx0, Qmin ) );
        R4 = W_shr( R4, sub( Qx1, Qmin ) );
        R5 = W_shr( R5, sub( Qx2, Qmin ) );

        y0_fx64 = W_add( W_shr( y0_fx64, sub( s_min( Qy1_new, Qy2_new ), Qmin ) ), W_add( R3, W_add( R4, R5 ) ) );
#ifdef SPEEDUP_2_hp20_fx_32
        R3 = W_shr( W_mult0_32_32( W_shl_sat_l( x0_fx64, sub( Qx0, sub( Qx0, Qmin ) ) ), b2_fx ), 0 );
        R4 = W_shr( W_mult0_32_32( W_shl_sat_l( x1_fx64, sub( Qx1, sub( Qx1, Qmin ) ) ), b1_fx ), 0 );
        R5 = W_shr( W_mult0_32_32( W_shl_sat_l( x2_fx64, sub( Qx2, sub( Qx2, Qmin ) ) ), b2_fx ), 0 );
#else
        R3 = W_shr( W_mult0_32_32( W_shl_sat_l( x0_fx64, Qx0 ), b2_fx ), sub( Qx0, Qmin ) );
        R4 = W_shr( W_mult0_32_32( W_shl_sat_l( x1_fx64, Qx1 ), b1_fx ), sub( Qx1, Qmin ) );
        R5 = W_shr( W_mult0_32_32( W_shl_sat_l( x2_fx64, Qx2 ), b2_fx ), sub( Qx2, Qmin ) );
#endif
        y0_fx64 = W_add( W_shr( y0_fx64, sub( s_min( add( Qy1, Qprev_y1 ), add( Qy2, Qprev_y2 ) ), Qmin ) ), W_add( R3, W_add( R4, R5 ) ) );
#else
        Qmin = s_min( Qy1, Qy2 );