Loading lib_com/basop32.c +328 −17 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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 ); } Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading @@ -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 ); } Loading Loading @@ -459,6 +475,9 @@ Word16 abs_s( Word16 var1 ) } } #ifdef WMOPS multiCounter[currCounter].abs_s++; #endif BASOP_CHECK(); Loading Loading @@ -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 { Loading @@ -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(); Loading @@ -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 { Loading @@ -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(); Loading Loading @@ -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 { Loading @@ -643,6 +689,10 @@ Word16 shr( Word16 var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].shr++; #endif BASOP_CHECK(); Loading Loading @@ -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 ); } Loading @@ -718,7 +771,9 @@ Word16 mult( Word16 var1, Word16 var2 ) var_out = saturate( L_product ); #ifdef WMOPS multiCounter[currCounter].mult++; #endif return ( var_out ); } Loading Loading @@ -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 ); Loading @@ -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 ); Loading Loading @@ -844,6 +907,10 @@ Word16 negate( Word16 var1 ) var_out = ( var1 == MIN_16 ) ? MAX_16 : -var1; #ifdef WMOPS multiCounter[currCounter].negate++; #endif BASOP_CHECK(); Loading Loading @@ -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(); Loading Loading @@ -924,6 +995,10 @@ Word16 extract_l( Word32 L_var1 ) var_out = (Word16) L_var1; #ifdef WMOPS multiCounter[currCounter].extract_l++; #endif BASOP_CHECK(); Loading Loading @@ -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 ); Loading @@ -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 ); Loading Loading @@ -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 ); } Loading @@ -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 ); Loading Loading @@ -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 ); } Loading @@ -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 ); Loading Loading @@ -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 */ Loading Loading @@ -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 ); } Loading Loading @@ -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(); Loading @@ -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 */ Loading Loading @@ -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 ); Loading @@ -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 ); Loading Loading @@ -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 */ Loading Loading @@ -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 { Loading Loading @@ -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 */ Loading Loading @@ -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 ); Loading Loading @@ -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 ); } Loading @@ -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 ); } Loading Loading @@ -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 { Loading Loading @@ -1916,6 +2069,10 @@ Word32 L_shl_o( Word32 L_var1, Word16 var2, Flag *Overflow ) } } #ifdef WMOPS multiCounter[currCounter].L_shl++; #endif BASOP_CHECK(); Loading @@ -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 { Loading @@ -1959,6 +2119,9 @@ Word32 L_shl( Word32 L_var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].L_shl++; #endif BASOP_CHECK(); Loading Loading @@ -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 { Loading @@ -2030,6 +2196,10 @@ Word32 L_shr_o( Word32 L_var1, Word16 var2, Flag *Overflow ) } } #ifdef WMOPS multiCounter[currCounter].L_shr++; #endif BASOP_CHECK(); Loading @@ -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 { Loading @@ -2067,6 +2240,9 @@ Word32 L_shr( Word32 L_var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].L_shr++; #endif BASOP_CHECK(); Loading Loading @@ -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 ) Loading @@ -2136,6 +2315,10 @@ Word16 shr_r( Word16 var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].shr_r++; #endif BASOP_CHECK(); return ( var_out ); Loading Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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 ); Loading @@ -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 ); Loading Loading @@ -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(); Loading Loading @@ -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(); Loading Loading @@ -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 ) Loading @@ -2422,6 +2642,10 @@ Word32 L_shr_r( Word32 L_var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].L_shr_r++; #endif BASOP_CHECK(); Loading Loading @@ -2477,6 +2701,10 @@ Word32 L_abs( Word32 L_var1 ) } } #ifdef WMOPS multiCounter[currCounter].L_abs++; #endif BASOP_CHECK(); Loading Loading @@ -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(); Loading Loading @@ -2608,6 +2840,10 @@ Word16 norm_s( Word16 var1 ) } } #ifdef WMOPS multiCounter[currCounter].norm_s++; #endif BASOP_CHECK(); Loading Loading @@ -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; Loading @@ -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(); Loading Loading @@ -2765,6 +3014,10 @@ Word16 norm_l( Word32 L_var1 ) } } #ifdef WMOPS multiCounter[currCounter].norm_l++; #endif BASOP_CHECK(); Loading Loading @@ -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; Loading @@ -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; Loading Loading @@ -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 ) { Loading @@ -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 ) { Loading @@ -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 } } Loading Loading @@ -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 } Loading Loading @@ -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 ); Loading Loading @@ -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 ); } Loading @@ -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(); Loading Loading @@ -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 ); } Loading @@ -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(); Loading lib_com/basop_lsf_tools.c +0 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ #include "options.h" #include "basop_proto_func.h" #include "basop_util.h" #include "wmc_auto.h" #define WMC_TOOL_SKIP Loading lib_com/basop_util.c +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading lib_com/enh1632.c +80 −1 Original line number Diff line number Diff line Loading @@ -145,6 +145,9 @@ Word16 lshl( Word16 var1, Word16 var2 ) { var2 = -var2; var_out = lshr( var1, var2 ); #ifdef WMOPS multiCounter[currCounter].lshr--; #endif } else { Loading @@ -162,6 +165,10 @@ Word16 lshl( Word16 var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].lshl++; #endif BASOP_CHECK(); Loading Loading @@ -208,6 +215,9 @@ Word16 lshr( Word16 var1, Word16 var2 ) { var2 = -var2; var_out = lshl( var1, var2 ); #ifdef WMOPS multiCounter[currCounter].lshl--; #endif } else { Loading @@ -227,6 +237,10 @@ Word16 lshr( Word16 var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].lshr++; #endif BASOP_CHECK(); Loading Loading @@ -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 { Loading @@ -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 ); } Loading Loading @@ -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 { Loading @@ -357,6 +380,10 @@ Word32 L_lshr( Word32 L_var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].L_lshr++; #endif BASOP_CHECK(); Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading lib_com/enh1632.h +30 −0 Original line number Diff line number Diff line Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 Loading
lib_com/basop32.c +328 −17 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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 ); } Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading @@ -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 ); } Loading Loading @@ -459,6 +475,9 @@ Word16 abs_s( Word16 var1 ) } } #ifdef WMOPS multiCounter[currCounter].abs_s++; #endif BASOP_CHECK(); Loading Loading @@ -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 { Loading @@ -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(); Loading @@ -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 { Loading @@ -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(); Loading Loading @@ -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 { Loading @@ -643,6 +689,10 @@ Word16 shr( Word16 var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].shr++; #endif BASOP_CHECK(); Loading Loading @@ -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 ); } Loading @@ -718,7 +771,9 @@ Word16 mult( Word16 var1, Word16 var2 ) var_out = saturate( L_product ); #ifdef WMOPS multiCounter[currCounter].mult++; #endif return ( var_out ); } Loading Loading @@ -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 ); Loading @@ -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 ); Loading Loading @@ -844,6 +907,10 @@ Word16 negate( Word16 var1 ) var_out = ( var1 == MIN_16 ) ? MAX_16 : -var1; #ifdef WMOPS multiCounter[currCounter].negate++; #endif BASOP_CHECK(); Loading Loading @@ -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(); Loading Loading @@ -924,6 +995,10 @@ Word16 extract_l( Word32 L_var1 ) var_out = (Word16) L_var1; #ifdef WMOPS multiCounter[currCounter].extract_l++; #endif BASOP_CHECK(); Loading Loading @@ -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 ); Loading @@ -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 ); Loading Loading @@ -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 ); } Loading @@ -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 ); Loading Loading @@ -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 ); } Loading @@ -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 ); Loading Loading @@ -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 */ Loading Loading @@ -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 ); } Loading Loading @@ -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(); Loading @@ -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 */ Loading Loading @@ -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 ); Loading @@ -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 ); Loading Loading @@ -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 */ Loading Loading @@ -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 { Loading Loading @@ -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 */ Loading Loading @@ -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 ); Loading Loading @@ -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 ); } Loading @@ -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 ); } Loading Loading @@ -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 { Loading Loading @@ -1916,6 +2069,10 @@ Word32 L_shl_o( Word32 L_var1, Word16 var2, Flag *Overflow ) } } #ifdef WMOPS multiCounter[currCounter].L_shl++; #endif BASOP_CHECK(); Loading @@ -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 { Loading @@ -1959,6 +2119,9 @@ Word32 L_shl( Word32 L_var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].L_shl++; #endif BASOP_CHECK(); Loading Loading @@ -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 { Loading @@ -2030,6 +2196,10 @@ Word32 L_shr_o( Word32 L_var1, Word16 var2, Flag *Overflow ) } } #ifdef WMOPS multiCounter[currCounter].L_shr++; #endif BASOP_CHECK(); Loading @@ -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 { Loading @@ -2067,6 +2240,9 @@ Word32 L_shr( Word32 L_var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].L_shr++; #endif BASOP_CHECK(); Loading Loading @@ -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 ) Loading @@ -2136,6 +2315,10 @@ Word16 shr_r( Word16 var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].shr_r++; #endif BASOP_CHECK(); return ( var_out ); Loading Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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 ); Loading @@ -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 ); Loading Loading @@ -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(); Loading Loading @@ -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(); Loading Loading @@ -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 ) Loading @@ -2422,6 +2642,10 @@ Word32 L_shr_r( Word32 L_var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].L_shr_r++; #endif BASOP_CHECK(); Loading Loading @@ -2477,6 +2701,10 @@ Word32 L_abs( Word32 L_var1 ) } } #ifdef WMOPS multiCounter[currCounter].L_abs++; #endif BASOP_CHECK(); Loading Loading @@ -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(); Loading Loading @@ -2608,6 +2840,10 @@ Word16 norm_s( Word16 var1 ) } } #ifdef WMOPS multiCounter[currCounter].norm_s++; #endif BASOP_CHECK(); Loading Loading @@ -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; Loading @@ -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(); Loading Loading @@ -2765,6 +3014,10 @@ Word16 norm_l( Word32 L_var1 ) } } #ifdef WMOPS multiCounter[currCounter].norm_l++; #endif BASOP_CHECK(); Loading Loading @@ -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; Loading @@ -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; Loading Loading @@ -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 ) { Loading @@ -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 ) { Loading @@ -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 } } Loading Loading @@ -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 } Loading Loading @@ -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 ); Loading Loading @@ -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 ); } Loading @@ -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(); Loading Loading @@ -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 ); } Loading @@ -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(); Loading
lib_com/basop_lsf_tools.c +0 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ #include "options.h" #include "basop_proto_func.h" #include "basop_util.h" #include "wmc_auto.h" #define WMC_TOOL_SKIP Loading
lib_com/basop_util.c +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
lib_com/enh1632.c +80 −1 Original line number Diff line number Diff line Loading @@ -145,6 +145,9 @@ Word16 lshl( Word16 var1, Word16 var2 ) { var2 = -var2; var_out = lshr( var1, var2 ); #ifdef WMOPS multiCounter[currCounter].lshr--; #endif } else { Loading @@ -162,6 +165,10 @@ Word16 lshl( Word16 var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].lshl++; #endif BASOP_CHECK(); Loading Loading @@ -208,6 +215,9 @@ Word16 lshr( Word16 var1, Word16 var2 ) { var2 = -var2; var_out = lshl( var1, var2 ); #ifdef WMOPS multiCounter[currCounter].lshl--; #endif } else { Loading @@ -227,6 +237,10 @@ Word16 lshr( Word16 var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].lshr++; #endif BASOP_CHECK(); Loading Loading @@ -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 { Loading @@ -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 ); } Loading Loading @@ -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 { Loading @@ -357,6 +380,10 @@ Word32 L_lshr( Word32 L_var1, Word16 var2 ) } } #ifdef WMOPS multiCounter[currCounter].L_lshr++; #endif BASOP_CHECK(); Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading
lib_com/enh1632.h +30 −0 Original line number Diff line number Diff line Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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 ); } Loading Loading @@ -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