Commit 0e303421 authored by malenov's avatar malenov
Browse files

replace common BASOP files with their instrumented versions

parent e5c57042
Loading
Loading
Loading
Loading
Loading
+328 −17
Original line number Diff line number Diff line
@@ -261,6 +261,9 @@ static Word16 saturate_o( Word32 L_var1, Flag *Overflow )
    else
    {
        var_out = extract_l( L_var1 );
#ifdef WMOPS
        multiCounter[currCounter].extract_l--;
#endif
    }

    BASOP_CHECK();
@@ -286,6 +289,9 @@ static Word16 saturate( Word32 L_var1 )
    else
    {
        var_out = extract_l( L_var1 );
#ifdef WMOPS
        multiCounter[currCounter].extract_l--;
#endif
    }

    BASOP_CHECK();
@@ -336,7 +342,9 @@ Word16 add_o( Word16 var1, Word16 var2, Flag *Overflow )
    L_sum = (Word32) var1 + var2;
    var_out = saturate_o( L_sum, Overflow );


#ifdef WMOPS
    multiCounter[currCounter].add++;
#endif
    return ( var_out );
}

@@ -349,7 +357,9 @@ Word16 add( Word16 var1, Word16 var2 )
    L_sum = (Word32) var1 + var2;
    var_out = saturate( L_sum );


#ifdef WMOPS
    multiCounter[currCounter].add++;
#endif
    return ( var_out );
}

@@ -396,6 +406,9 @@ Word16 sub_o( Word16 var1, Word16 var2, Flag *Overflow )
    L_diff = (Word32) var1 - var2;
    var_out = saturate_o( L_diff, Overflow );

#ifdef WMOPS
    multiCounter[currCounter].sub++;
#endif
    return ( var_out );
}

@@ -408,6 +421,9 @@ Word16 sub( Word16 var1, Word16 var2 )
    L_diff = (Word32) var1 - var2;
    var_out = saturate( L_diff );

#ifdef WMOPS
    multiCounter[currCounter].sub++;
#endif
    return ( var_out );
}

@@ -459,6 +475,9 @@ Word16 abs_s( Word16 var1 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].abs_s++;
#endif
    BASOP_CHECK();


@@ -515,6 +534,10 @@ Word16 shl_o( Word16 var1, Word16 var2, Flag *Overflow )
            var2 = -16;
        var2 = -var2;
        var_out = shr( var1, var2 );

#ifdef WMOPS
        multiCounter[currCounter].shr--;
#endif
    }
    else
    {
@@ -532,9 +555,17 @@ Word16 shl_o( Word16 var1, Word16 var2, Flag *Overflow )
        else
        {
            var_out = extract_l( result );

#ifdef WMOPS
            multiCounter[currCounter].extract_l--;
#endif
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].shl++;
#endif

    BASOP_CHECK();


@@ -553,6 +584,10 @@ Word16 shl( Word16 var1, Word16 var2 )
            var2 = -16;
        var2 = -var2;
        var_out = shr( var1, var2 );

#ifdef WMOPS
        multiCounter[currCounter].shr--;
#endif
    }
    else
    {
@@ -566,9 +601,16 @@ Word16 shl( Word16 var1, Word16 var2 )
        else
        {
            var_out = extract_l( result );

#ifdef WMOPS
            multiCounter[currCounter].extract_l--;
#endif
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].shl++;
#endif
    BASOP_CHECK();


@@ -623,6 +665,10 @@ Word16 shr( Word16 var1, Word16 var2 )
            var2 = -16;
        var2 = -var2;
        var_out = shl( var1, var2 );

#ifdef WMOPS
        multiCounter[currCounter].shl--;
#endif
    }
    else
    {
@@ -643,6 +689,10 @@ Word16 shr( Word16 var1, Word16 var2 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].shr++;
#endif

    BASOP_CHECK();


@@ -699,6 +749,9 @@ Word16 mult_o( Word16 var1, Word16 var2, Flag *Overflow )

    var_out = saturate_o( L_product, Overflow );

#ifdef WMOPS
    multiCounter[currCounter].mult++;
#endif

	return ( var_out );
}
@@ -718,7 +771,9 @@ Word16 mult( Word16 var1, Word16 var2 )

    var_out = saturate( L_product );


#ifdef WMOPS
    multiCounter[currCounter].mult++;
#endif
    return ( var_out );
}

@@ -781,6 +836,10 @@ Word32 L_mult_o( Word16 var1, Word16 var2, Flag *Overflow )
        L_var_out = MAX_32;
    }

#ifdef WMOPS
    multiCounter[currCounter].L_mult++;
#endif

    BASOP_CHECK();

    return ( L_var_out );
@@ -803,6 +862,10 @@ Word32 L_mult( Word16 var1, Word16 var2 )
        L_var_out = MAX_32;
    }

#ifdef WMOPS
    multiCounter[currCounter].L_mult++;
#endif

    BASOP_CHECK();

    return ( L_var_out );
@@ -844,6 +907,10 @@ Word16 negate( Word16 var1 )
    var_out = ( var1 == MIN_16 ) ? MAX_16 : -var1;


#ifdef WMOPS
    multiCounter[currCounter].negate++;
#endif

    BASOP_CHECK();


@@ -884,6 +951,10 @@ Word16 extract_h( Word32 L_var1 )

    var_out = (Word16) ( L_var1 >> 16 );

#ifdef WMOPS
    multiCounter[currCounter].extract_h++;
#endif

    BASOP_CHECK();


@@ -924,6 +995,10 @@ Word16 extract_l( Word32 L_var1 )

    var_out = (Word16) L_var1;

#ifdef WMOPS
    multiCounter[currCounter].extract_l++;
#endif

    BASOP_CHECK();


@@ -972,6 +1047,12 @@ Word16 round_fx_o( Word32 L_var1, Flag *Overflow )
    BASOP_SATURATE_WARNING_ON
    var_out = extract_h( L_rounded );

#ifdef WMOPS
    multiCounter[currCounter].L_add--;
    multiCounter[currCounter].extract_h--;
    multiCounter[currCounter].round++;
#endif

	BASOP_CHECK();

    return ( var_out );
@@ -988,6 +1069,11 @@ Word16 round_fx( Word32 L_var1 )
    BASOP_SATURATE_WARNING_ON
    var_out = extract_h( L_rounded );

#ifdef WMOPS
    multiCounter[currCounter].L_add--;
    multiCounter[currCounter].extract_h--;
    multiCounter[currCounter].round++;
#endif
    BASOP_CHECK();

    return ( var_out );
@@ -1039,7 +1125,11 @@ Word32 L_mac_o( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow )
    L_product = L_mult_o( var1, var2, Overflow );
    L_var_out = L_add_o( L_var3, L_product, Overflow );

    BASOP_CHECK();
#ifdef WMOPS
    multiCounter[currCounter].L_mult--;
    multiCounter[currCounter].L_add--;
    multiCounter[currCounter].L_mac++;
#endif

    return ( L_var_out );
}
@@ -1053,6 +1143,11 @@ Word32 L_mac( Word32 L_var3, Word16 var1, Word16 var2 )
    L_product = L_mult( var1, var2 );
    L_var_out = L_add( L_var3, L_product );

#ifdef WMOPS
    multiCounter[currCounter].L_mult--;
    multiCounter[currCounter].L_add--;
    multiCounter[currCounter].L_mac++;
#endif
    BASOP_CHECK();

    return ( L_var_out );
@@ -1104,7 +1199,11 @@ Word32 L_msu_o( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow )
    L_product = L_mult_o( var1, var2, Overflow );
    L_var_out = L_sub_o( L_var3, L_product, Overflow );

    BASOP_CHECK();
#ifdef WMOPS
    multiCounter[currCounter].L_mult--;
    multiCounter[currCounter].L_sub--;
    multiCounter[currCounter].L_msu++;
#endif

    return ( L_var_out );
}
@@ -1118,6 +1217,11 @@ Word32 L_msu( Word32 L_var3, Word16 var1, Word16 var2 )
    L_product = L_mult( var1, var2 );
    L_var_out = L_sub( L_var3, L_product );

#ifdef WMOPS
    multiCounter[currCounter].L_mult--;
    multiCounter[currCounter].L_sub--;
    multiCounter[currCounter].L_msu++;
#endif
    BASOP_CHECK();

    return ( L_var_out );
@@ -1185,6 +1289,12 @@ Word32 DEPR_L_macNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry )
    L_var_out = DEPR_L_add_c( L_var3, L_var_out, Carry );
#endif /* BASOP_NOGLOB */

#ifdef WMOPS
    multiCounter[currCounter].L_mult--;
    multiCounter[currCounter].L_add_c--;
    multiCounter[currCounter].L_macNs++;
#endif

    /* BASOP_CHECK(); Do not check for overflow here, function produces the carry bit instead */


@@ -1253,8 +1363,13 @@ Word32 DEPR_L_msuNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry )
    L_var_out = DEPR_L_sub_c( L_var3, L_var_out, Carry );
#endif /* BASOP_NOGLOB */

    /* BASOP_CHECK(); Do not check for overflow here, function produces the carry bit instead */
#ifdef WMOPS
    multiCounter[currCounter].L_mult--;
    multiCounter[currCounter].L_sub_c--;
    multiCounter[currCounter].L_msuNs++;
#endif

    /* BASOP_CHECK(); Do not check for overflow here, function produces the carry bit instead */

    return ( L_var_out );
}
@@ -1314,6 +1429,10 @@ Word32 L_add_o( Word32 L_var1, Word32 L_var2, Flag *Overflow )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_add++;
#endif

    BASOP_CHECK();


@@ -1336,6 +1455,9 @@ Word32 L_add( Word32 L_var1, Word32 L_var2 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_add++;
#endif
    return ( L_var_out );
}
#endif /* BASOP_NOGLOB */
@@ -1394,6 +1516,10 @@ Word32 L_sub_o( Word32 L_var1, Word32 L_var2, Flag *Overflow )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_sub++;
#endif

    BASOP_CHECK();

    return ( L_var_out );
@@ -1415,6 +1541,9 @@ Word32 L_sub( Word32 L_var1, Word32 L_var2 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_sub++;
#endif
    BASOP_CHECK();

    return ( L_var_out );
@@ -1573,6 +1702,10 @@ Word32 DEPR_L_add_c( Word32 L_var1, Word32 L_var2, Flag *Carry )
#endif /* BASOP_NOGLOB */
    }

#ifdef WMOPS
    multiCounter[currCounter].L_add_c++;
#endif

    /* BASOP_CHECK(); Do not check for overflow here, function produces the carry bit instead */


@@ -1653,6 +1786,9 @@ Word32 DEPR_L_sub_c( Word32 L_var1, Word32 L_var2, Flag *Carry )
#else  /* BASOP_NOGLOB */
            L_var_out = DEPR_L_add_c( L_var1, -L_var2, Carry );
#endif /* BASOP_NOGLOB */
#ifdef WMOPS
            multiCounter[currCounter].L_add_c--;
#endif
        }
        else
        {
@@ -1713,6 +1849,10 @@ Word32 DEPR_L_sub_c( Word32 L_var1, Word32 L_var2, Flag *Carry )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_sub_c++;
#endif

    /* BASOP_CHECK(); Do not check for overflow here, function produces the carry bit instead */


@@ -1753,6 +1893,11 @@ Word32 L_negate( Word32 L_var1 )

    L_var_out = ( L_var1 == MIN_32 ) ? MAX_32 : -L_var1;


#ifdef WMOPS
    multiCounter[currCounter].L_negate++;
#endif

    BASOP_CHECK();

    return ( L_var_out );
@@ -1809,6 +1954,9 @@ Word16 mult_ro( Word16 var1, Word16 var2, Flag *Overflow )
    }
    var_out = saturate_o( L_product_arr, Overflow );

#ifdef WMOPS
    multiCounter[currCounter].mult_r++;
#endif

    return ( var_out );
}
@@ -1830,7 +1978,9 @@ Word16 mult_r( Word16 var1, Word16 var2 )
    }
    var_out = saturate( L_product_arr );


#ifdef WMOPS
    multiCounter[currCounter].mult_r++;
#endif
    return ( var_out );
}

@@ -1883,6 +2033,9 @@ Word32 L_shl_o( Word32 L_var1, Word16 var2, Flag *Overflow )
            var2 = -32;
        var2 = -var2;
        L_var_out = L_shr( L_var1, var2 );
#ifdef WMOPS
        multiCounter[currCounter].L_shr--;
#endif
    }
    else
    {
@@ -1916,6 +2069,10 @@ Word32 L_shl_o( Word32 L_var1, Word16 var2, Flag *Overflow )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_shl++;
#endif

    BASOP_CHECK();


@@ -1934,6 +2091,9 @@ Word32 L_shl( Word32 L_var1, Word16 var2 )
            var2 = -32;
        var2 = -var2;
        L_var_out = L_shr( L_var1, var2 );
#ifdef WMOPS
        multiCounter[currCounter].L_shr--;
#endif
    }
    else
    {
@@ -1959,6 +2119,9 @@ Word32 L_shl( Word32 L_var1, Word16 var2 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_shl++;
#endif
    BASOP_CHECK();


@@ -2010,6 +2173,9 @@ Word32 L_shr_o( Word32 L_var1, Word16 var2, Flag *Overflow )
            var2 = -32;
        var2 = -var2;
        L_var_out = L_shl_o( L_var1, var2, Overflow );
#ifdef WMOPS
        multiCounter[currCounter].L_shl--;
#endif
    }
    else
    {
@@ -2030,6 +2196,10 @@ Word32 L_shr_o( Word32 L_var1, Word16 var2, Flag *Overflow )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_shr++;
#endif

    BASOP_CHECK();


@@ -2047,6 +2217,9 @@ Word32 L_shr( Word32 L_var1, Word16 var2 )
            var2 = -32;
        var2 = -var2;
        L_var_out = L_shl( L_var1, var2 );
#ifdef WMOPS
        multiCounter[currCounter].L_shl--;
#endif
    }
    else
    {
@@ -2067,6 +2240,9 @@ Word32 L_shr( Word32 L_var1, Word16 var2 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_shr++;
#endif
    BASOP_CHECK();


@@ -2127,6 +2303,9 @@ Word16 shr_r( Word16 var1, Word16 var2 )
    {
        var_out = shr( var1, var2 );

#ifdef WMOPS
        multiCounter[currCounter].shr--;
#endif
        if ( var2 > 0 )
        {
            if ( ( var1 & ( (Word16) 1 << ( var2 - 1 ) ) ) != 0 )
@@ -2136,6 +2315,10 @@ Word16 shr_r( Word16 var1, Word16 var2 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].shr_r++;
#endif

    BASOP_CHECK();

    return ( var_out );
@@ -2189,6 +2372,13 @@ Word16 mac_ro( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow )
    L_var3 = L_add_o( L_var3, (Word32) 0x00008000L, Overflow );
    var_out = extract_h( L_var3 );

#ifdef WMOPS
    multiCounter[currCounter].L_mac--;
    multiCounter[currCounter].L_add--;
    multiCounter[currCounter].extract_h--;
    multiCounter[currCounter].mac_r++;
#endif

    BASOP_CHECK();


@@ -2204,6 +2394,13 @@ Word16 mac_r( Word32 L_var3, Word16 var1, Word16 var2 )
    L_var3 = L_add( L_var3, (Word32) 0x00008000L );
    var_out = extract_h( L_var3 );

#ifdef WMOPS
    multiCounter[currCounter].L_mac--;
    multiCounter[currCounter].L_add--;
    multiCounter[currCounter].extract_h--;
    multiCounter[currCounter].mac_r++;
#endif

    BASOP_CHECK();


@@ -2258,6 +2455,12 @@ Word16 msu_ro( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow )
    L_var3 = L_add_o( L_var3, (Word32) 0x00008000L, Overflow );
    var_out = extract_h( L_var3 );

#ifdef WMOPS
    multiCounter[currCounter].L_msu--;
    multiCounter[currCounter].L_add--;
    multiCounter[currCounter].extract_h--;
    multiCounter[currCounter].msu_r++;
#endif
    BASOP_CHECK();

    return ( var_out );
@@ -2272,6 +2475,12 @@ Word16 msu_r( Word32 L_var3, Word16 var1, Word16 var2 )
    L_var3 = L_add( L_var3, (Word32) 0x00008000L );
    var_out = extract_h( L_var3 );

#ifdef WMOPS
    multiCounter[currCounter].L_msu--;
    multiCounter[currCounter].L_add--;
    multiCounter[currCounter].extract_h--;
    multiCounter[currCounter].msu_r++;
#endif
    BASOP_CHECK();

    return ( var_out );
@@ -2312,6 +2521,10 @@ Word32 L_deposit_h( Word16 var1 )

    L_var_out = (Word32) var1 << 16;

#ifdef WMOPS
    multiCounter[currCounter].L_deposit_h++;
#endif

    BASOP_CHECK();


@@ -2353,6 +2566,10 @@ Word32 L_deposit_l( Word16 var1 )

    L_var_out = (Word32) var1;

#ifdef WMOPS
    multiCounter[currCounter].L_deposit_l++;
#endif

    BASOP_CHECK();


@@ -2413,6 +2630,9 @@ Word32 L_shr_r( Word32 L_var1, Word16 var2 )
    {
        L_var_out = L_shr( L_var1, var2 );

#ifdef WMOPS
        multiCounter[currCounter].L_shr--;
#endif
        if ( var2 > 0 )
        {
            if ( ( L_var1 & ( (Word32) 1 << ( var2 - 1 ) ) ) != 0 )
@@ -2422,6 +2642,10 @@ Word32 L_shr_r( Word32 L_var1, Word16 var2 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_shr_r++;
#endif

    BASOP_CHECK();


@@ -2477,6 +2701,10 @@ Word32 L_abs( Word32 L_var1 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].L_abs++;
#endif

    BASOP_CHECK();


@@ -2542,6 +2770,10 @@ Word32 DEPR_L_sat_co( Word32 L_var1, Flag Overflow, Flag Carry )
#endif /* ! BASOP_NOGLOB */
    }

#ifdef WMOPS
    multiCounter[currCounter].L_sat++;
#endif

    BASOP_CHECK();


@@ -2608,6 +2840,10 @@ Word16 norm_s( Word16 var1 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].norm_s++;
#endif

    BASOP_CHECK();


@@ -2685,6 +2921,11 @@ Word16 div_s( Word16 var1, Word16 var2 )
            L_num = L_deposit_l( var1 );
            L_denom = L_deposit_l( var2 );

#ifdef WMOPS
            multiCounter[currCounter].L_deposit_l--;
            multiCounter[currCounter].L_deposit_l--;
#endif

            for ( iteration = 0; iteration < 15; iteration++ )
            {
                var_out <<= 1;
@@ -2694,11 +2935,19 @@ Word16 div_s( Word16 var1, Word16 var2 )
                {
                    L_num = L_sub( L_num, L_denom );
                    var_out = add( var_out, 1 );
#ifdef WMOPS
                    multiCounter[currCounter].L_sub--;
                    multiCounter[currCounter].add--;
#endif
                }
            }
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].div_s++;
#endif

    BASOP_CHECK();


@@ -2765,6 +3014,10 @@ Word16 norm_l( Word32 L_var1 )
        }
    }

#ifdef WMOPS
    multiCounter[currCounter].norm_l++;
#endif

    BASOP_CHECK();


@@ -2827,6 +3080,13 @@ Word32 L_mls_o( Word32 Lv, Word16 v, Flag *Overflow )
    Temp = L_shr( Temp, (Word16) 15 );
    Temp = L_mac_o( Temp, v, extract_h( Lv ), Overflow );

#ifdef WMOPS
   multiCounter[currCounter].L_shr--;
   multiCounter[currCounter].L_mac--;
   multiCounter[currCounter].extract_h--;
   multiCounter[currCounter].L_mls++;
#endif

    BASOP_CHECK();

    return Temp;
@@ -2842,6 +3102,13 @@ Word32 L_mls( Word32 Lv, Word16 v )
    Temp = L_shr( Temp, (Word16) 15 );
    Temp = L_mac( Temp, v, extract_h( Lv ) );

#ifdef WMOPS
   multiCounter[currCounter].L_shr--;
   multiCounter[currCounter].L_mac--;
   multiCounter[currCounter].extract_h--;
   multiCounter[currCounter].L_mls++;
#endif

    BASOP_CHECK();

    return Temp;
@@ -2892,6 +3159,9 @@ Word16 div_l( Word32 L_num, Word16 den )
    Word32 L_den;
    Word16 iteration;

#ifdef WMOPS
    multiCounter[currCounter].div_l++;
#endif

    if ( den == (Word16) 0 )
    {
@@ -2906,6 +3176,9 @@ Word16 div_l( Word32 L_num, Word16 den )
    }

    L_den = L_deposit_h( den );
#ifdef WMOPS
    multiCounter[currCounter].L_deposit_h--;
#endif

    if ( L_num >= L_den )
    {
@@ -2918,14 +3191,25 @@ Word16 div_l( Word32 L_num, Word16 den )
    {
        L_num = L_shr( L_num, (Word16) 1 );
        L_den = L_shr( L_den, (Word16) 1 );
#ifdef WMOPS
        multiCounter[currCounter].L_shr -= 2;
#endif
        for ( iteration = (Word16) 0; iteration < (Word16) 15; iteration++ )
        {
            var_out = shl( var_out, (Word16) 1 );
            L_num = L_shl( L_num, (Word16) 1 );
#ifdef WMOPS
            multiCounter[currCounter].shl--;
            multiCounter[currCounter].L_shl--;
#endif
            if ( L_num >= L_den ) 
			{
                L_num = L_sub( L_num,L_den );
                var_out = add( var_out, (Word16)1 );
#ifdef WMOPS
            	multiCounter[currCounter].L_sub--;
            	multiCounter[currCounter].add--;
#endif
            }
        }

@@ -2977,6 +3261,9 @@ Word16 DEPR_i_mult( Word16 a, Word16 b )
    return a * b;
#else
    Word32 /*register*/ c = a * b;
#ifdef WMOPS
    multiCounter[currCounter].i_mult++;
#endif
   return saturate( c );
#endif
}
@@ -3022,7 +3309,9 @@ Word32 L_mult0( Word16 var1, Word16 var2 )

    L_var_out = (Word32) var1 * (Word32) var2;

    BASOP_CHECK();
#ifdef WMOPS
    multiCounter[currCounter].L_mult0++;
#endif


    return ( L_var_out );
@@ -3068,8 +3357,13 @@ Word32 L_mac0_o( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow )
    L_product = L_mult0( var1, var2 );
    L_var_out = L_add_o( L_var3, L_product, Overflow );

    BASOP_CHECK();
#ifdef WMOPS
    multiCounter[currCounter].L_mac0++;
    multiCounter[currCounter].L_mult0--;
    multiCounter[currCounter].L_add--;
#endif

	BASOP_CHECK();

    return ( L_var_out );
}
@@ -3083,6 +3377,12 @@ Word32 L_mac0( Word32 L_var3, Word16 var1, Word16 var2 )
    L_product = L_mult0( var1, var2 );
    L_var_out = L_add( L_var3, L_product );

#ifdef WMOPS
    multiCounter[currCounter].L_mac0++;
    multiCounter[currCounter].L_mult0--;
    multiCounter[currCounter].L_add--;
#endif

    BASOP_CHECK();


@@ -3129,8 +3429,13 @@ Word32 L_msu0_o( Word32 L_var3, Word16 var1, Word16 var2, Flag *Overflow )
    L_product = L_mult0( var1, var2 );
    L_var_out = L_sub_o( L_var3, L_product, Overflow );

    BASOP_CHECK();
#ifdef WMOPS
    multiCounter[currCounter].L_msu0++;
    multiCounter[currCounter].L_mult0--;
    multiCounter[currCounter].L_sub--;
#endif

	BASOP_CHECK();

    return ( L_var_out );
}
@@ -3144,6 +3449,12 @@ Word32 L_msu0( Word32 L_var3, Word16 var1, Word16 var2 )
    L_product = L_mult0( var1, var2 );
    L_var_out = L_sub( L_var3, L_product );

#ifdef WMOPS
    multiCounter[currCounter].L_msu0++;
    multiCounter[currCounter].L_mult0--;
    multiCounter[currCounter].L_sub--;
#endif

    BASOP_CHECK();


+0 −1
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@
#include "options.h"
#include "basop_proto_func.h"
#include "basop_util.h"
#include "wmc_auto.h"

#define WMC_TOOL_SKIP

+1 −1
Original line number Diff line number Diff line
@@ -44,8 +44,8 @@
#include "rom_com.h"
#include "basop_settings.h"
#include "basop_mpy.h"
#include "stl.h"
#include "cnst.h"
#include "wmc_auto.h"

#define WMC_TOOL_SKIP

+80 −1
Original line number Diff line number Diff line
@@ -145,6 +145,9 @@ Word16 lshl( Word16 var1, Word16 var2 )
    {
        var2 = -var2;
        var_out = lshr( var1, var2 );
#ifdef WMOPS
        multiCounter[currCounter].lshr--;
#endif 
    }
    else
    {
@@ -162,6 +165,10 @@ Word16 lshl( Word16 var1, Word16 var2 )
        }
    }

#ifdef WMOPS
   multiCounter[currCounter].lshl++;
#endif 

    BASOP_CHECK();


@@ -208,6 +215,9 @@ Word16 lshr( Word16 var1, Word16 var2 )
    {
        var2 = -var2;
        var_out = lshl( var1, var2 );
#ifdef WMOPS
      multiCounter[currCounter].lshl--;
#endif
    }
    else
    {
@@ -227,6 +237,10 @@ Word16 lshr( Word16 var1, Word16 var2 )
        }
    }

#ifdef WMOPS
   multiCounter[currCounter].lshr++;
#endif

    BASOP_CHECK();


@@ -274,6 +288,9 @@ Word32 L_lshl( Word32 L_var1, Word16 var2 )
    {
        var2 = -var2;
        L_var_out = L_lshr( L_var1, var2 );
#ifdef WMOPS
      multiCounter[currCounter].L_lshr--;
#endif
    }
    else
    {
@@ -291,8 +308,11 @@ Word32 L_lshl( Word32 L_var1, Word16 var2 )
        }
    }

    BASOP_CHECK();
#ifdef WMOPS
   multiCounter[currCounter].L_lshl++;
#endif

    BASOP_CHECK();

    return ( L_var_out );
}
@@ -338,6 +358,9 @@ Word32 L_lshr( Word32 L_var1, Word16 var2 )
    {
        var2 = -var2;
        L_var_out = L_lshl( L_var1, var2 );
#ifdef WMOPS
        multiCounter[currCounter].L_lshl--;
#endif
    }
    else
    {
@@ -357,6 +380,10 @@ Word32 L_lshr( Word32 L_var1, Word16 var2 )
        }
    }

   #ifdef WMOPS
   multiCounter[currCounter].L_lshr++;
   #endif 

    BASOP_CHECK();


@@ -400,13 +427,23 @@ Word16 shl_r( Word16 var1, Word16 var2 )
    if ( var2 >= 0 )
    {
        var_out = shl( var1, var2 );
#ifdef WMOPS
        multiCounter[currCounter].shl--;
#endif 
    }
    else
    {
        var2 = -var2;
        var_out = shr_r( var1, var2 );
#ifdef WMOPS
        multiCounter[currCounter].shr_r--;
#endif 

    }

#ifdef WMOPS
    multiCounter[currCounter].shl_r++;
#endif 

    return ( var_out );
}
@@ -448,13 +485,23 @@ Word32 L_shl_r( Word32 L_var1, Word16 var2 )
    if ( var2 >= 0 )
    {
        var_out = L_shl( L_var1, var2 );
#ifdef WMOPS
        multiCounter[currCounter].L_shl--;
#endif

    }
    else
    {
        var2 = -var2;
        var_out = L_shr_r( L_var1, var2 );
#ifdef WMOPS
        multiCounter[currCounter].L_shr_r--;
#endif 
    }

#ifdef WMOPS
   multiCounter[currCounter].L_shl_r++;
#endif

    return ( var_out );
}
@@ -497,6 +544,13 @@ Word16 rotr( Word16 var1, Word16 var2, Word16 *var3 )
    *var3 = s_and( var1, 0x1 );
    var_out = s_or( lshr( var1, 1 ), lshl( var2, 15 ) );

#ifdef WMOPS
    multiCounter[currCounter].s_and--;
    multiCounter[currCounter].lshl--;
    multiCounter[currCounter].lshr--;
    multiCounter[currCounter].s_or--;
    multiCounter[currCounter].rotr++;
#endif

    return ( var_out );
}
@@ -540,6 +594,13 @@ Word16 rotl( Word16 var1, Word16 var2, Word16 *var3 )

    var_out = s_or( lshl( var1, 1 ), s_and( var2, 0x1 ) );

#ifdef WMOPS
    multiCounter[currCounter].lshr--;
    multiCounter[currCounter].s_and--;
    multiCounter[currCounter].lshl--;
    multiCounter[currCounter].s_or--;
    multiCounter[currCounter].rotl++;
#endif

    return ( var_out );
}
@@ -583,6 +644,15 @@ Word32 L_rotr( Word32 L_var1, Word16 var2, Word16 *var3 )

    L_var_out = L_or( L_lshr( L_var1, 1 ), L_lshl( L_deposit_l( var2 ), 31 ) );

#ifdef WMOPS
    multiCounter[currCounter].extract_l--;
    multiCounter[currCounter].s_and--;
    multiCounter[currCounter].L_deposit_l--;
    multiCounter[currCounter].L_lshl--;
    multiCounter[currCounter].L_lshr--;
    multiCounter[currCounter].L_or--;
    multiCounter[currCounter].L_rotr++;
#endif

    return ( L_var_out );
}
@@ -626,6 +696,15 @@ Word32 L_rotl( Word32 L_var1, Word16 var2, Word16 *var3 )

    L_var_out = L_or( L_lshl( L_var1, 1 ), L_deposit_l( s_and( var2, 0x1 ) ) );

#ifdef WMOPS
    multiCounter[currCounter].L_lshr--;
    multiCounter[currCounter].extract_l--;
    multiCounter[currCounter].s_and--;
    multiCounter[currCounter].L_deposit_l--;
    multiCounter[currCounter].L_lshl--;
    multiCounter[currCounter].L_or--;
    multiCounter[currCounter].L_rotl++;
#endif 

    return ( L_var_out );
}
+30 −0
Original line number Diff line number Diff line
@@ -131,6 +131,9 @@ static __inline Word16 s_max( Word16 var1, Word16 var2 )
    else
        var_out = var2;

#ifdef WMOPS
   multiCounter[currCounter].s_max++;
#endif 

    return ( var_out );
}
@@ -173,6 +176,9 @@ static __inline Word16 s_min( Word16 var1, Word16 var2 )
    else
        var_out = var2;

#ifdef WMOPS
   multiCounter[currCounter].s_min++;
#endif 

    return ( var_out );
}
@@ -215,6 +221,9 @@ static __inline Word32 L_max( Word32 L_var1, Word32 L_var2 )
    else
        L_var_out = L_var2;

#ifdef WMOPS
   multiCounter[currCounter].L_max++;
#endif 

    return ( L_var_out );
}
@@ -257,6 +266,9 @@ static __inline Word32 L_min( Word32 L_var1, Word32 L_var2 )
    else
        L_var_out = L_var2;

#ifdef WMOPS
   multiCounter[currCounter].L_min++;
#endif 

    return ( L_var_out );
}
@@ -297,6 +309,9 @@ static __inline Word16 s_and( Word16 var1, Word16 var2 )

    var_out = var1 & var2;

#ifdef WMOPS
   multiCounter[currCounter].s_and++;
#endif 

    return ( var_out );
}
@@ -337,6 +352,9 @@ static __inline Word32 L_and( Word32 L_var1, Word32 L_var2 )

    L_var_out = L_var1 & L_var2;

#ifdef WMOPS
   multiCounter[currCounter].L_and++;
#endif 

    return ( L_var_out );
}
@@ -377,6 +395,9 @@ static __inline Word16 s_or( Word16 var1, Word16 var2 )

    var_out = var1 | var2;

#ifdef WMOPS
   multiCounter[currCounter].s_or++;
#endif 

    return ( var_out );
}
@@ -418,6 +439,9 @@ static __inline Word32 L_or( Word32 L_var1, Word32 L_var2 )

    L_var_out = L_var1 | L_var2;

#ifdef WMOPS
   multiCounter[currCounter].L_or++;
#endif 

    return ( L_var_out );
}
@@ -458,6 +482,9 @@ static __inline Word16 s_xor( Word16 var1, Word16 var2 )

    var_out = var1 ^ var2;

#ifdef WMOPS
   multiCounter[currCounter].s_xor++;
#endif 

    return ( var_out );
}
@@ -498,6 +525,9 @@ static __inline Word32 L_xor( Word32 L_var1, Word32 L_var2 )

    L_var_out = L_var1 ^ L_var2;

#ifdef WMOPS
   multiCounter[currCounter].L_xor++;
#endif 

    return ( L_var_out );
}
Loading