Loading lib_com/hp50_fx.c +26 −20 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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; Loading @@ -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 ); Loading @@ -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 ); Loading @@ -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 ); Loading @@ -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 ); Loading @@ -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 ); Loading Loading
lib_com/hp50_fx.c +26 −20 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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; Loading @@ -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 ); Loading @@ -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 ); Loading @@ -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 ); Loading @@ -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 ); Loading @@ -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 ); Loading