Commit 3d511700 authored by malenov's avatar malenov
Browse files

revert accidental deletion of #ifdef BASOP_NO_GLOB

parent d0cf67b7
Loading
Loading
Loading
Loading
Loading
+282 −1

File changed.

Preview size limit exceeded, changes collapsed.

+95 −15
Original line number Diff line number Diff line
@@ -86,11 +86,17 @@
 |   Constants and Globals                                                   |
 |___________________________________________________________________________|
*/
#ifndef BASOP_NOGLOB
extern Flag Overflow, Overflow2;
extern Flag Carry;

#else  /* BASOP_NOGLOB */
/* DISABLED TO AVOID GLOBAL VARIABLES */
/*
extern Flag BASOP_Overflow, BASOP_Overflow2;
extern Flag BASOP_Carry;
*/
#endif /* BASOP_NOGLOB */
#define BASOP_SATURATE_WARNING_ON_EVS
#define BASOP_SATURATE_WARNING_OFF_EVS
#define BASOP_SATURATE_ERROR_ON_EVS
@@ -108,17 +114,36 @@ extern Flag BASOP_Carry;

#define MAX_16 (Word16) 0x7fff
#define MIN_16 (Word16) 0x8000
#ifdef BASOP_NOGLOB
void set_overflow( Flag *overflow );
void unset_overflow( Flag *overflow );
void set_carry( Flag *carry );
void unset_carry( Flag *carry );
Flag get_carry( const Flag *carry );
#endif /* BASOP_NOGLOB */
/*___________________________________________________________________________
 |                                                                           |
 |   Prototypes for basic arithmetic operators                               |
 |___________________________________________________________________________|
*/

#ifndef BASOP_NOGLOB
Word16 add( Word16 var1, Word16 var2 );                    /* Short add,           1   */
Word16 sub( Word16 var1, Word16 var2 );                    /* Short sub,           1   */
Word16 abs_s( Word16 var1 );                               /* Short abs,           1   */
Word16 shl( Word16 var1, Word16 var2 );                    /* Short shift left,    1   */
Word16 shr( Word16 var1, Word16 var2 );                    /* Short shift right,   1   */
Word16 mult( Word16 var1, Word16 var2 );                   /* Short mult,          1   */
Word32 L_mult( Word16 var1, Word16 var2 );                 /* Long mult,           1   */
Word16 negate( Word16 var1 );                              /* Short negate,        1   */
Word16 extract_h( Word32 L_var1 );                         /* Extract high,        1   */
Word16 extract_l( Word32 L_var1 );                         /* Extract low,         1   */
Word16 round_fx( Word32 L_var1 );                          /* Round,               1   */
Word32 L_mac( Word32 L_var3, Word16 var1, Word16 var2 );   /* Mac,  1  */
Word32 L_msu( Word32 L_var3, Word16 var1, Word16 var2 );   /* Msu,  1  */
Word32 L_macNs( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac without
                                                             sat, 1   */
#else                                                      /* BASOP_NOGLOB */
Word16 add( Word16 var1, Word16 var2 );                                      /* Short add,           1   */
Word16 sub( Word16 var1, Word16 var2 );                                      /* Short sub,           1   */
Word16 abs_s( Word16 var1 );                                                 /* Short abs,           1   */
@@ -141,9 +166,27 @@ Word32 L_sub_co( Word32 L_var1, Word32 L_var2, Flag *Carry, Flag *Overflow );
Word32 L_add_c( Word32 L_var1, Word32 L_var2 );                              /* Long add with c, 2 */
Word32 L_sub_c( Word32 L_var1, Word32 L_var2 );                              /* Long sub with c, 2 */

#endif /* BASOP_NOGLOB */

#ifndef BASOP_NOGLOB
Word32 L_msuNs( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu without
                                                              sat, 1   */
#else                                                      /* BASOP_NOGLOB */
Word32 DEPR_L_msuNs( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry ); /* Msu without
                                                              sat, 1   */
#endif                                                     /* BASOP_NOGLOB */
#ifndef BASOP_NOGLOB
Word32 L_add( Word32 L_var1, Word32 L_var2 );   /* Long add,        1 */
Word32 L_sub( Word32 L_var1, Word32 L_var2 );   /* Long sub,        1 */
Word32 L_add_c( Word32 L_var1, Word32 L_var2 ); /* Long add with c, 2 */
Word32 L_sub_c( Word32 L_var1, Word32 L_var2 ); /* Long sub with c, 2 */
Word32 L_negate( Word32 L_var1 );               /* Long negate,     1 */
Word16 mult_r( Word16 var1, Word16 var2 );      /* Mult with round, 1 */
Word32 L_shl( Word32 L_var1, Word16 var2 );     /* Long shift left, 1 */
Word32 L_shr( Word32 L_var1, Word16 var2 );     /* Long shift right, 1 */
Word16 shr_r( Word16 var1, Word16 var2 );       /* Shift right with
                                                   round, 2           */
#else                                           /* BASOP_NOGLOB */
Word32 L_add( Word32 L_var1, Word32 L_var2 );                                /* Long add,        1 */
Word32 L_sub( Word32 L_var1, Word32 L_var2 );                                /* Long sub,        1 */
Word32 DEPR_L_add_c( Word32 L_var1, Word32 L_var2, Flag *Carry );            /* Long add with c, 2 */
@@ -154,16 +197,44 @@ Word32 L_shl( Word32 L_var1, Word16 var2 ); /*
Word32 L_shr( Word32 L_var1, Word16 var2 );                                  /* Long shift right, 1 */
Word16 shr_r( Word16 var1, Word16 var2 );                                    /* Shift right with
                                                   round, 2           */
#endif                                          /* BASOP_NOGLOB */

#ifndef BASOP_NOGLOB
Word16 mac_r( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac with
                                                           rounding, 1 */
#else                                                    /* BASOP_NOGLOB */
Word16 mac_r( Word32 L_var3, Word16 var1, Word16 var2 );                     /* Mac with
                                                                             rounding, 1 */
#endif                                                   /* BASOP_NOGLOB */
#ifndef BASOP_NOGLOB
Word16 msu_r( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu with
                                                           rounding, 1 */
#else                                                    /* BASOP_NOGLOB */
Word16 msu_r( Word32 L_var3, Word16 var1, Word16 var2 );                     /* Msu with
                                                           rounding, 1 */
#endif                                                   /* BASOP_NOGLOB */
#ifndef BASOP_NOGLOB
Word32 L_deposit_h( Word16 var1 ); /* 16 bit var1 -> MSB,     1 */
Word32 L_deposit_l( Word16 var1 ); /* 16 bit var1 -> LSB,     1 */
#else                              /* BASOP_NOGLOB */
Word32 L_deposit_h( Word16 var1 );                                           /* 16 bit var1 -> MSB,     1 */
Word32 L_deposit_l( Word16 var1 );                                           /* 16 bit var1 -> LSB,     1 */
#endif                             /* BASOP_NOGLOB */

#ifndef BASOP_NOGLOB
Word32 L_shr_r( Word32 L_var1, Word16 var2 ); /* Long shift right with
                                                round,             3  */
#else                                         /* BASOP_NOGLOB */
Word32 L_shr_r( Word32 L_var1, Word16 var2 );                                /* Long shift right with
                                                round,             3  */
#endif                                        /* BASOP_NOGLOB */
#ifndef BASOP_NOGLOB
Word32 L_abs( Word32 L_var1 );            /* Long abs,              1  */
Word32 L_sat( Word32 L_var1 );            /* Long saturation,       4  */
Word16 norm_s( Word16 var1 );             /* Short norm,            1  */
Word16 div_s( Word16 var1, Word16 var2 ); /* Short division,       18  */
Word16 norm_l( Word32 L_var1 );           /* Long norm,             1  */
#else                                     /* BASOP_NOGLOB */
Word32 L_abs( Word32 L_var1 );                                               /* Long abs,              1  */
Word32 DEPR_L_sat_co( Word32 L_var1, Flag Overflow, Flag Carry );            /* Long saturation,       4  */
Word16 norm_s( Word16 var1 );                                                /* Short norm,            1  */
@@ -171,15 +242,22 @@ Word16 div_s( Word16 var1, Word16 var2 ); /* Short divis
Word32 div_w( Word32 L_num, Word32 L_den );
Word16 norm_l( Word32 L_var1 );           /* Long norm,             1  */
Word32 L_sat( Word32 L_var1 );            /* Long saturation,       4  */
#endif                                    /* BASOP_NOGLOB */


/*
 * Additional G.723.1 operators
 */
#ifndef BASOP_NOGLOB
Word32 L_mls( Word32, Word16 );      /* Weight FFS; currently assigned 5 */
Word16 div_l( Word32, Word16 );      /* Weight FFS; currently assigned 32 */
Word16 i_mult( Word16 a, Word16 b ); /* Weight FFS; currently assigned 3 */
#else                                /* BASOP_NOGLOB */
Word32 L_mls( Word32, Word16 );           /* Weight FFS; currently assigned 5 */
Word16 div_l( Word32, Word16 );           /* Weight FFS; currently assigned 32 */
Word16 i_mult( Word16 a, Word16 b );      /* Weight FFS; currently assigned 3 */
Word16 DEPR_i_mult( Word16 a, Word16 b ); /* Weight FFS; currently assigned 3 */
#endif                               /* BASOP_NOGLOB */

/*
 *  New shiftless operators, not used in G.729/G.723.1
@@ -187,6 +265,7 @@ Word16 DEPR_i_mult( Word16 a, Word16 b ); /* Weight FFS; currently assigned 3 */
Word32 L_mult0( Word16 v1, Word16 v2 );             /* 32-bit Multiply w/o shift         1 */
Word32 L_mac0( Word32 L_v3, Word16 v1, Word16 v2 ); /* 32-bit Mac w/o shift  1 */
Word32 L_msu0( Word32 L_v3, Word16 v1, Word16 v2 ); /* 32-bit Msu w/o shift  1 */
#ifdef BASOP_NOGLOB

/*
 * Overflowing operators
@@ -217,6 +296,7 @@ Word32 L_shr_ro( Word32 L_var1, Word16 var2, Flag *Overflow );
Word32 L_macNs_co( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry, Flag *Overflow );
Word32 L_msuNs_co( Word32 L_var3, Word16 var1, Word16 var2, Flag *Carry, Flag *Overflow );

#endif /* BASOP_NOGLOB */

/*
 * Saturating operators
+6 −2
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@

#include <stdint.h>
#include "options.h"
#include "stl.h"

/* clang-format off */
#ifdef IVAS_FLOAT_FIXED
@@ -257,6 +258,8 @@ enum{
#define SBA_AGC_FORCE_DISABLE           0
#define SBA_AGC_DEFAULT                 -1

extern const Word16 Idx2Freq_Tbl[];

/*----------------------------------------------------------------------------------*
 * Layers
 *----------------------------------------------------------------------------------*/
@@ -695,6 +698,7 @@ enum
#define AUTO_REGRESSIVE                     2

#define INT_FS_12k8                         12800                                                                                                            /* internal sampling frequency                */
#define ONE_BY_INT_FS_12k8_Q42                        343597384                                                                                                            /* internal sampling frequency                */
#define M                                   16                                                                                                               /* order of the LP filter @ 12.8kHz           */
#define L_FRAME                             256                                                                                                              /* frame size at 12.8kHz                      */
#define NB_SUBFR                            4                                                                                                                /* number of subframes per frame              */
@@ -727,9 +731,7 @@ enum
#define L_SUBFR16k                          ( L_FRAME16k / NB_SUBFR )                       /* subframe size at 16kHz   */
#define L_HALFR16k                          ( 2 * L_SUBFR16k )                              /* half-frame size at 16kHz */

#ifdef NONE_BE_FIX_816_LFE_PLC_FLOAT
#define MAX_LP_FILTER_ORDER                 20                                              /* Max order of an LP filter */
#endif
#define L_INTERPOL2                         16                                              /* Length of filter for interpolation         */
#define L_INTERPOL                          ( L_INTERPOL2 + 1 )                             /* Length of filter for interpolation   */
#define TILT_FAC                            0.68f                                           /* tilt factor (denominator)                  */
@@ -747,6 +749,7 @@ enum
#define E_MIN_Q11_FX                            7                      /* minimum allowable energy in Q11*/
#define E_MIN                               0.0035f                /* minimum allowable energy */
#define E_MIN_Q11_FX                            7                      /* minimum allowable energy in Q11*/
#define E_MIN_Q16_FX                         229                      /* minimum allowable energy in Q16*/
#define STEP_DELTA                          0.0625f                /* quantization step for tilt compensation of gaussian cb. excitation */
#define GAMMA_EV                            0.92f                  /* weighting factor for core synthesis error weighting */
#define FORMANT_SHARPENING_NOISE_THRESHOLD  21.0f                  /* lp_noise level above which formant sharpening is deactivated */
@@ -3062,6 +3065,7 @@ enum
#define G192_BIN1                             (UWord16) 0x0081         /* binary "1" according to ITU-T G.192 */
#define DEGREE_180                            (Word32)(180.0 *ONE_IN_Q23)
#define DEGREE_360                            (Word32)(360.0 *ONE_IN_Q23)
extern const Word16 Idx2Freq_Tbl[];

#define chk_fs(fs)
/* 'x' is converted to Q6, 'Freq_Tbl'/1000 in Q9 */
+14 −5
Original line number Diff line number Diff line
@@ -376,13 +376,21 @@ Word32 L_lshr( Word32 L_var1, Word16 var2 )
 *                the range : 0xffff 8000 <= var_out <= 0x0000 7fff.
 *
 *****************************************************************************/
#ifdef BASOP_NOGLOB
Word16 shl_ro( Word16 var1, Word16 var2, Flag *Overflow )
#else
Word16 shl_r( Word16 var1, Word16 var2 )
#endif
{
    Word16 var_out;

    if ( var2 >= 0 )
    {
#ifdef BASOP_NOGLOB
        var_out = shl_o( var1, var2, Overflow );
#else
        var_out = shl( var1, var2 );
#endif
#ifdef WMOPS
        multiCounter[currCounter].shl--;
#endif /* ifdef WMOPS */
@@ -390,26 +398,28 @@ Word16 shl_ro( Word16 var1, Word16 var2, Flag *Overflow )
    else
    {
        var2 = -var2;
#ifdef BASOP_NOGLOB
        var_out = shr_ro( var1, var2, Overflow );
#else
        var_out = shr_r( var1, var2 );
#endif
#ifdef WMOPS
#ifndef FIX_1049_SHR_RO_COMPLEXITY
        multiCounter[currCounter].shr_r--;
#endif
#endif /* ifdef WMOPS */
    }

#ifdef WMOPS
#ifndef FIX_1049_SHR_RO_COMPLEXITY
    multiCounter[currCounter].shl_r++;
#endif
#endif /* ifdef WMOPS */

    return ( var_out );
}
#ifdef BASOP_NOGLOB
Word16 shl_r( Word16 var1, Word16 var2 )
{
    return shl_ro( var1, var2, NULL );
}
#endif
/*****************************************************************************
 *
 *  Function Name : L_shl_r
@@ -674,4 +684,3 @@ Word32 L_rotl( Word32 L_var1, Word16 var2, Word16 *var3 )
#undef WMC_TOOL_SKIP

/* end of file */
/*AddedByWMC_Tool*/ int PROM_Size_Func( enh1632 ) { return 39; }
+2 −1
Original line number Diff line number Diff line
@@ -35,13 +35,14 @@

#include "stl.h"


/*****************************************************************************
 *
 *  Prototypes for enhanced 16/32 bit arithmetic operators
 *
 *****************************************************************************/
#ifdef BASOP_NOGLOB
Word16 shl_ro( Word16 var1, Word16 var2, Flag *Overflow );
#endif
Word16 shl_r( Word16 var1, Word16 var2 );
Word32 L_shl_r( Word32 L_var1, Word16 var2 );

Loading