Commit 9748f925 authored by malenov's avatar malenov
Browse files

use dynamically allocated multiCounter wfrom WMC

parent 9935e7f3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -171,7 +171,7 @@ HISTORY:
#endif

#ifdef WMOPS
extern BASIC_OP multiCounter[MAXCOUNTERS];
extern BASIC_OP *multiCounter;
extern int currCounter;
#endif

+0 −10
Original line number Diff line number Diff line
@@ -11,20 +11,10 @@

#include "typedef.h"
#include "basop32.h"

#include "complex_basop.h"

#include "stl.h"


#ifdef WMOPS

extern BASIC_OP multiCounter[MAXCOUNTERS];

extern int currCounter;

#endif /* if WMOPS */


#ifdef COMPLEX_OPERATOR

+0 −3
Original line number Diff line number Diff line
@@ -42,9 +42,6 @@
 *
 *****************************************************************************/
#ifdef WMOPS
extern BASIC_OP multiCounter[MAXCOUNTERS];
extern int currCounter;

/* Technical note :
 * The following 3 variables are only used for correct complexity
 * evaluation of the following structure :
+2 −2
Original line number Diff line number Diff line
@@ -85,9 +85,9 @@ static int sum_stack[MAX_STACK];
/* Global counter variable for calculation of complexity weight */
/* Some enhancement written by Vail., GJR and M.Mul. during EVS time */

BASIC_OP multiCounter[MAXCOUNTERS];
//BASIC_OP multiCounter[MAXCOUNTERS];
BASIC_OP glob_multiCounter;
int currCounter = 0; /* Zero equals global counter */
//int currCounter = 0; /* Zero equals global counter */

void setFrameRate( int samplingFreq, int frameLength )
{
+0 −255
Original line number Diff line number Diff line
@@ -198,261 +198,6 @@ void setFrameRate( int samplingFreq, int frameLength );
 */


/* Global counter variable for calculation of complexity weight */
typedef struct
{
    UWord32 add;   /* Complexity Weight of 1 */
    UWord32 sub;   /* Complexity Weight of 1 */
    UWord32 abs_s; /* Complexity Weight of 1 */
    UWord32 shl;   /* Complexity Weight of 1 */
    UWord32 shr;   /* Complexity Weight of 1 */

    UWord32 extract_h; /* Complexity Weight of 1 */
    UWord32 extract_l; /* Complexity Weight of 1 */
    UWord32 mult;      /* Complexity Weight of 1 */
    UWord32 L_mult;    /* Complexity Weight of 1 */
    UWord32 negate;    /* Complexity Weight of 1 */

    UWord32 round;   /* Complexity Weight of 1 */
    UWord32 L_mac;   /* Complexity Weight of 1 */
    UWord32 L_msu;   /* Complexity Weight of 1 */
    UWord32 L_macNs; /* Complexity Weight of 1 */
    UWord32 L_msuNs; /* Complexity Weight of 1 */

    UWord32 L_add;    /* Complexity Weight of 1 */
    UWord32 L_sub;    /* Complexity Weight of 1 */
    UWord32 L_add_c;  /* Complexity Weight of 2 */
    UWord32 L_sub_c;  /* Complexity Weight of 2 */
    UWord32 L_negate; /* Complexity Weight of 1 */

    UWord32 L_shl;  /* Complexity Weight of 1 */
    UWord32 L_shr;  /* Complexity Weight of 1 */
    UWord32 mult_r; /* Complexity Weight of 1 */
    UWord32 shr_r;  /* Complexity Weight of 3 */
    UWord32 mac_r;  /* Complexity Weight of 1 */

    UWord32 msu_r;       /* Complexity Weight of 1 */
    UWord32 L_deposit_h; /* Complexity Weight of 1 */
    UWord32 L_deposit_l; /* Complexity Weight of 1 */
    UWord32 L_shr_r;     /* Complexity Weight of 3 */
    UWord32 L_abs;       /* Complexity Weight of 1 */

    UWord32 L_sat;  /* Complexity Weight of 4 */
    UWord32 norm_s; /* Complexity Weight of 1 */
    UWord32 div_s;  /* Complexity Weight of 18 */
    UWord32 norm_l; /* Complexity Weight of 1 */
    UWord32 move16; /* Complexity Weight of 1 */

    UWord32 move32;  /* Complexity Weight of 2 */
    UWord32 Logic16; /* Complexity Weight of 1 */
    UWord32 Logic32; /* Complexity Weight of 2 */
    UWord32 Test;    /* Complexity Weight of 2 */
    UWord32 s_max;   /* Complexity Weight of 1 */

    UWord32 s_min;   /* Complexity Weight of 1 */
    UWord32 L_max;   /* Complexity Weight of 1 */
    UWord32 L_min;   /* Complexity Weight of 1 */
    UWord32 L40_max; /* Complexity Weight of 1 */
    UWord32 L40_min; /* Complexity Weight of 1 */

    UWord32 shl_r;     /* Complexity Weight of 2 */
    UWord32 L_shl_r;   /* Complexity Weight of 2 */
    UWord32 L40_shr_r; /* Complexity Weight of 2 */
    UWord32 L40_shl_r; /* Complexity Weight of 2 */
    UWord32 norm_L40;  /* Complexity Weight of 1 */

    UWord32 L40_shl;    /* Complexity Weight of 1 */
    UWord32 L40_shr;    /* Complexity Weight of 1 */
    UWord32 L40_negate; /* Complexity Weight of 1 */
    UWord32 L40_add;    /* Complexity Weight of 1 */
    UWord32 L40_sub;    /* Complexity Weight of 1 */

    UWord32 L40_abs;  /* Complexity Weight of 1 */
    UWord32 L40_mult; /* Complexity Weight of 1 */
    UWord32 L40_mac;  /* Complexity Weight of 1 */
    UWord32 mac_r40;  /* Complexity Weight of 2 */

    UWord32 L40_msu;      /* Complexity Weight of 1 */
    UWord32 msu_r40;      /* Complexity Weight of 2 */
    UWord32 Mpy_32_16_ss; /* Complexity Weight of 2 */
    UWord32 Mpy_32_32_ss; /* Complexity Weight of 2 */
    UWord32 L_mult0;      /* Complexity Weight of 1 */

    UWord32 L_mac0; /* Complexity Weight of 1 */
    UWord32 L_msu0; /* Complexity Weight of 1 */
    UWord32 lshl;   /* Complexity Weight of 1 */
    UWord32 lshr;   /* Complexity Weight of 1 */
    UWord32 L_lshl; /* Complexity Weight of 1 */

    UWord32 L_lshr;   /* Complexity Weight of 1 */
    UWord32 L40_lshl; /* Complexity Weight of 1 */
    UWord32 L40_lshr; /* Complexity Weight of 1 */
    UWord32 s_and;    /* Complexity Weight of 1 */
    UWord32 s_or;     /* Complexity Weight of 1 */

    UWord32 s_xor; /* Complexity Weight of 1 */
    UWord32 L_and; /* Complexity Weight of 1 */
    UWord32 L_or;  /* Complexity Weight of 1 */
    UWord32 L_xor; /* Complexity Weight of 1 */
    UWord32 rotl;  /* Complexity Weight of 3 */

    UWord32 rotr;          /* Complexity Weight of 3 */
    UWord32 L_rotl;        /* Complexity Weight of 3 */
    UWord32 L_rotr;        /* Complexity Weight of 3 */
    UWord32 L40_set;       /* Complexity Weight of 1 */
    UWord32 L40_deposit_h; /* Complexity Weight of 1 */

    UWord32 L40_deposit_l; /* Complexity Weight of 1 */
    UWord32 L40_deposit32; /* Complexity Weight of 1 */
    UWord32 Extract40_H;   /* Complexity Weight of 1 */
    UWord32 Extract40_L;   /* Complexity Weight of 1 */
    UWord32 L_Extract40;   /* Complexity Weight of 1 */

    UWord32 L40_round;    /* Complexity Weight of 1 */
    UWord32 L_saturate40; /* Complexity Weight of 1 */
    UWord32 round40;      /* Complexity Weight of 1 */
    UWord32 If;           /* Complexity Weight of 3 */
    UWord32 Goto;         /* Complexity Weight of 2 */

    UWord32 Break;    /* Complexity Weight of 2 */
    UWord32 Switch;   /* Complexity Weight of 6 */
    UWord32 For;      /* Complexity Weight of 3 */
    UWord32 While;    /* Complexity Weight of 3 */
    UWord32 Continue; /* Complexity Weight of 2 */

    UWord32 L_mls;  /* Complexity Weight of 1 */
    UWord32 div_l;  /* Complexity Weight of 32 */
    UWord32 i_mult; /* Complexity Weight of 1 */

/* New complex basic operators */
#ifdef COMPLEX_OPERATOR
    UWord32 CL_shr;            /* Complexity Weight of 1 */
    UWord32 CL_shl;            /* Complexity Weight of 1 */
    UWord32 CL_add;            /* Complexity Weight of 1 */
    UWord32 CL_sub;            /* Complexity Weight of 1 */
    UWord32 CL_scale;          /* Complexity Weight of 1 */
    UWord32 CL_dscale;         /* Complexity Weight of 1 */
    UWord32 CL_msu_j;          /* Complexity Weight of 1 */
    UWord32 CL_mac_j;          /* Complexity Weight of 1 */
    UWord32 CL_move;           /* Complexity Weight of 1 */
    UWord32 CL_Extract_real;   /* Complexity Weight of 1 */
    UWord32 CL_Extract_imag;   /* Complexity Weight of 1 */
    UWord32 CL_form;           /* Complexity Weight of 1 */
    UWord32 CL_multr_32x16;    /* Complexity Weight of 2 */
    UWord32 CL_negate;         /* Complexity Weight of 1 */
    UWord32 CL_conjugate;      /* Complexity Weight of 1 */
    UWord32 CL_mul_j;          /* Complexity Weight of 1 */
    UWord32 CL_swap_real_imag; /* Complexity Weight of 1 */
    UWord32 C_add;             /* Complexity Weight of 1 */
    UWord32 C_sub;             /* Complexity Weight of 1 */
    UWord32 C_mul_j;           /* Complexity Weight of 1 */
    UWord32 C_multr;           /* Complexity Weight of 2 */
    UWord32 C_form;            /* Complexity Weight of 1 */

    UWord32 C_scale;        /* Complexity Weight of 1 */
    UWord32 CL_round32_16;  /* Complexity Weight of 1 */
    UWord32 CL_scale_32;    /* Complexity Weight of 1 */
    UWord32 CL_dscale_32;   /* Complexity Weight of 1 */
    UWord32 CL_multr_32x32; /* Complexity Weight of 2 */
    UWord32 C_mac_r;        /* Complexity Weight of 2 */
    UWord32 C_msu_r;        /* Complexity Weight of 2 */
    UWord32 C_Extract_real; /* Complexity Weight of 1 */
    UWord32 C_Extract_imag; /* Complexity Weight of 1 */
    UWord32 C_negate;       /* Complexity Weight of 1 */
    UWord32 C_conjugate;    /* Complexity Weight of 1 */
    UWord32 C_shr;          /* Complexity Weight of 1 */
    UWord32 C_shl;          /* Complexity Weight of 1 */

#endif /* #ifdef COMPLEX_OPERATOR */

/* New 64 bit basops */
#ifdef ENH_64_BIT_OPERATOR
    UWord32 move64;        /* Complexity Weight of 1 */
    UWord32 W_add_nosat;   /* Complexity Weight of 1 */
    UWord32 W_sub_nosat;   /* Complexity Weight of 1 */
    UWord32 W_shl;         /* Complexity Weight of 1 */
    UWord32 W_shr;         /* Complexity Weight of 1 */
    UWord32 W_shl_nosat;   /* Complexity Weight of 1 */
    UWord32 W_shr_nosat;   /* Complexity Weight of 1 */
    UWord32 W_mac_32_16;   /* Complexity Weight of 1 */
    UWord32 W_msu_32_16;   /* Complexity Weight of 1 */
    UWord32 W_mult_32_16;  /* Complexity Weight of 1 */
    UWord32 W_mult0_16_16; /* Complexity Weight of 1 */
    UWord32 W_mac0_16_16;  /* Complexity Weight of 1 */
    UWord32 W_msu0_16_16;  /* Complexity Weight of 1 */
    UWord32 W_mult_16_16;  /* Complexity Weight of 1 */
    UWord32 W_mac_16_16;   /* Complexity Weight of 1 */
    UWord32 W_msu_16_16;   /* Complexity Weight of 1 */
    UWord32 W_shl_sat_l;   /* Complexity Weight of 1 */
    UWord32 W_sat_l;       /* Complexity Weight of 1 */
    UWord32 W_sat_m;       /* Complexity Weight of 1 */
    UWord32 W_deposit32_l; /* Complexity Weight of 1 */
    UWord32 W_deposit32_h; /* Complexity Weight of 1 */
    UWord32 W_extract_l;   /* Complexity Weight of 1 */
    UWord32 W_extract_h;   /* Complexity Weight of 1 */
    UWord32 W_round48_L;   /* Complexity Weight of 1 */
    UWord32 W_round32_s;   /* Complexity Weight of 1 */
    UWord32 W_norm;        /* Complexity Weight of 1 */

    UWord32 W_add;         /* Complexity Weight of 1 */
    UWord32 W_sub;         /* Complexity Weight of 1 */
    UWord32 W_neg;         /* Complexity Weight of 1 */
    UWord32 W_abs;         /* Complexity Weight of 1 */
    UWord32 W_mult_32_32;  /* Complexity Weight of 1 */
    UWord32 W_mult0_32_32; /* Complexity Weight of 1 */
    UWord32 W_lshl;        /* Complexity Weight of 1 */
    UWord32 W_lshr;        /* Complexity Weight of 1 */
    UWord32 W_round64_L;   /* Complexity Weight of 1 */

#endif /* #ifdef ENH_64_BIT_OPERATOR */

#ifdef ENH_32_BIT_OPERATOR
    UWord32 Mpy_32_16_1;  /* Complexity Weight of 1 */
    UWord32 Mpy_32_16_r;  /* Complexity Weight of 1 */
    UWord32 Mpy_32_32;    /* Complexity Weight of 1 */
    UWord32 Mpy_32_32_r;  /* Complexity Weight of 1 */
    UWord32 Madd_32_16;   /* Complexity Weight of 1 */
    UWord32 Madd_32_16_r; /* Complexity Weight of 1 */
    UWord32 Msub_32_16;   /* Complexity Weight of 1 */
    UWord32 Msub_32_16_r; /* Complexity Weight of 1 */
    UWord32 Madd_32_32;   /* Complexity Weight of 1 */
    UWord32 Madd_32_32_r; /* Complexity Weight of 1 */
    UWord32 Msub_32_32;   /* Complexity Weight of 1 */
    UWord32 Msub_32_32_r; /* Complexity Weight of 1 */
#endif                    /* #ifdef ENH_32_BIT_OPERATOR */

#ifdef ENH_U_32_BIT_OPERATOR
    UWord32 UL_addNs;      /* Complexity Weight of 1 */
    UWord32 UL_subNs;      /* Complexity Weight of 1 */
    UWord32 UL_Mpy_32_32;  /* Complexity Weight of 1 */
    UWord32 Mpy_32_32_uu;  /* Complexity Weight of 2 */
    UWord32 Mpy_32_16_uu;  /* Complexity Weight of 2 */
    UWord32 norm_ul_float; /* Complexity Weight of 1 */
    UWord32 UL_deposit_l;  /* Complexity Weight of 1 */
#endif                     /* #ifdef ENH_U_32_BIT_OPERATOR */

#ifdef CONTROL_CODE_OPS
    UWord32 LT_16; /* Complexity Weight of 1 */
    UWord32 GT_16; /* Complexity Weight of 1 */
    UWord32 LE_16; /* Complexity Weight of 1 */
    UWord32 GE_16; /* Complexity Weight of 1 */
    UWord32 EQ_16; /* Complexity Weight of 1 */
    UWord32 NE_16; /* Complexity Weight of 1 */
    UWord32 LT_32; /* Complexity Weight of 1 */
    UWord32 GT_32; /* Complexity Weight of 1 */
    UWord32 LE_32; /* Complexity Weight of 1 */
    UWord32 GE_32; /* Complexity Weight of 1 */
    UWord32 EQ_32; /* Complexity Weight of 1 */
    UWord32 NE_32; /* Complexity Weight of 1 */
    UWord32 LT_64; /* Complexity Weight of 1 */
    UWord32 GT_64; /* Complexity Weight of 1 */
    UWord32 LE_64; /* Complexity Weight of 1 */
    UWord32 GE_64; /* Complexity Weight of 1 */
    UWord32 EQ_64; /* Complexity Weight of 1 */
    UWord32 NE_64; /* Complexity Weight of 1 */

#endif /* #ifdef CONTROL_CODE_OPS */
} BASIC_OP;


Word32 TotalWeightedOperation( void );
Loading