Loading basic_op/basop32.h +5 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,11 @@ extern Flag Overflow, Overflow2; extern Flag Carry; #endif /* BASOP_NOGLOB */ /* Empty EVS specific definitions added to disable the macros in EVS without removing them*/ #define BASOP_SATURATE_WARNING_ON_EVS #define BASOP_SATURATE_WARNING_OFF_EVS #define BASOP_SATURATE_ERROR_ON_EVS #define BASOP_SATURATE_ERROR_OFF_EVS #ifndef BASOP_NOGLOB #define BASOP_SATURATE_WARNING_ON Loading lib_com/arith_coder.c +4 −4 Original line number Diff line number Diff line Loading @@ -27,9 +27,9 @@ Word32 expfp( /* o: Q31 */ xi = round_fx(L_tmp); xf = extract_l(L_tmp); BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; xf = negate(xf); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; /* Fractional part */ /* y = 65536 Loading Loading @@ -411,13 +411,13 @@ void tcx_arith_scale_envelope( tmp = getScaleFactor32(env, L_frame); *s_env_e = sub(add(15, iscale_e), tmp); move16(); BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; #ifdef BASOP_NOGLOB a = L_shl_o(1265000, sub(15, *s_env_e), &Overflow); #else /* BASOP_NOGLOB */ a = L_shl(1265000, sub(15, *s_env_e)); #endif BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; FOR (k = 0; k < L_frame; k++) { Loading lib_com/basop_util.c +20 −20 Original line number Diff line number Diff line Loading @@ -237,9 +237,9 @@ void BASOP_Util_Divide_MantExp (Word16 a_m, /*!< Mantissa of dividend m = shl(b_m, preShift); /* make b positive */ BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; if (m < 0) m = negate(m); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; /* get table index (upper 6 bits minus 16) */ /* index = (m >> 9) - 32; */ Loading Loading @@ -297,13 +297,13 @@ static Word16 Sqrt16_common(Word16 m, /* interpolate */ if (m != 0) { BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; #ifdef BASOP_NOGLOB m = mac_ro(SqrtTable[index], SqrtDiffTable[index], frac, &Overflow); #else m = mac_r(SqrtTable[index], SqrtDiffTable[index], frac); #endif BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; } /* handle odd exponents */ Loading Loading @@ -339,9 +339,9 @@ static Word32 Sqrt32_common(Word32 m, /* interpolate */ if (m != 0) { BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; m = L_mac(SqrtTable[index], SqrtDiffTable[index], frac); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; } /* handle odd exponents */ Loading Loading @@ -562,9 +562,9 @@ Word16 Inv16( /*!< output mantissa */ assert(mantissa != 0); /* absolute */ BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; m = abs_s(mantissa); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; /* normalize */ preShift = norm_s(m); Loading Loading @@ -623,10 +623,10 @@ void BASOP_Util_Sqrt_InvSqrt_MantExp (Word16 mantissa, /*!< mantissa */ frac = s_and(mantissa, 0x1FF); /* Q9 */ /* interpolate */ BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; m = mac_r(SqrtTable[index], SqrtDiffTable[index], frac); mi = msu_r(ISqrtTable[index], ISqrtDiffTable[index], frac); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; /* handle even/odd exponents */ e_odd = s_and(exponent, 1); Loading Loading @@ -941,10 +941,10 @@ Word16 BASOP_Util_Divide3216_Scale( /* o: result of division x/y, not normaliz } sign = s_xor(extract_h(x),y); /* just to exor the sign bits */ BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS x = L_abs(x); y = abs_s(y); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS sx = sub(norm_l(x),1); x = L_shl(x,sx); sy = norm_s(y); Loading Loading @@ -1216,10 +1216,10 @@ Word16 getCosWord16R2(Word16 theta) residual = fixp_sin_cos_residual_16(theta, 1, &sine, &cosine, 1); /* This negation prevents the subsequent addition from overflow */ /* The negation cannot overflow, sine is in range [0x0..0x7FFF] */ BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS sine = negate(sine); result = msu_r(L_mult(sine, residual), cosine, -32768); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS return result; Loading Loading @@ -1939,9 +1939,9 @@ Word16 BASOP_Util_Cmp_Mant32Exp /*!< o: flag: result of compari move16(); } BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS diff_m = L_sub(a_m,b_m); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS diff_e = sub(a_e,b_e); test(); Loading Loading @@ -2134,14 +2134,14 @@ Word16 BASOP_util_atan2( /* o: atan2(y,x) [-pi,pi] Q13 q = 32767/*1.0f Q15*/; /* y/x = neg/zero = -Inf */ sf = 0; BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS q = BASOP_Util_Divide3232_uu_1616_Scale(L_abs(y),L_abs(x), &sf); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS if(L_sign < 0) q = negate(q); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS sfo = add(sf,e); Loading lib_com/cldfb.c +6 −6 Original line number Diff line number Diff line Loading @@ -862,9 +862,9 @@ cldfbSynthesisFiltering( HANDLE_CLDFB_FILTER_BANK cldfbBank, acc = L_mac(acc, *pStatesI, *pFilterS++); acc = L_mac(acc, nBuffer[channels1-i], *pFilterM++); BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS timeOut[(offset1-i)*stride] = round_fx(L_shl(acc,outScale)); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS } FOR ( ; i<cldfbBank->no_channels; i++) Loading Loading @@ -893,9 +893,9 @@ cldfbSynthesisFiltering( HANDLE_CLDFB_FILTER_BANK cldfbBank, acc = L_mac(acc, nBuffer[channels1+m-i], *pFilterS++); pFilterM++; BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS timeOut[(offset2-i)*stride] = round_fx(L_shl(acc,outScale)); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS } FOR (i=0; i<cldfbBank->no_channels; i++) Loading Loading @@ -1379,12 +1379,12 @@ GetEnergyCldfb( Word32 *energyLookahead, /*!< o: Q(*sf_energyLookahead) | p s = sub(shl(sf_Values, 1), s); sm = sub(s_min(s, 44), 1); BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS /* nrg + 6.1e-5f => value 0x40000000, scale 44 */ *energyLookahead = L_add(L_shr(nrg, sub(s, sm)), L_shr(0x40000000, s_max(-31, s_min(31, sub(44, sm))))); move32(); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS *sf_energyLookahead = sm; move16(); Loading lib_com/codec_tcx_common.c +6 −6 Original line number Diff line number Diff line Loading @@ -36,10 +36,10 @@ Word16 tcxGetNoiseFillingTilt( Copy_Scale_sig( A, As, lpcorder+1, sub(norm_s(A[0]),2) ); tmp = get_gain(As+1, As, lpcorder); BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; *noiseTiltFactor = add(round_fx(L_shl(tmp, 15)), 3072/*0.09375f Q15*/); move16(); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; } Loading Loading @@ -134,14 +134,14 @@ void tcxFormantEnhancement( FOR (j = 1; j < n; j++) { fac = add(fac0, mult(d, extract_l(L_mult0(j, inv_int[n])))); BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; #ifdef BASOP_NOGLOB xn_buf[l+j] = s_min(xn_one, shl_o(mult(xn_buf[l+j], fac), fac_e, &Overflow)); #else xn_buf[l+j] = s_min(xn_one, shl(mult(xn_buf[l+j], fac), fac_e)); #endif move16(); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; } l = i; Loading Loading @@ -181,10 +181,10 @@ void tcxFormantEnhancement( FOR (j = 1; j < n; j++) { fac = add(fac0, mult(d, extract_l(L_mult0(j, inv_int[n])))); BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; xn_buf[l+j] = s_min(xn_one, shl(mult(xn_buf[l+j], fac), fac_e)); move16(); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; } xn_buf[i] = xn_one; Loading Loading
basic_op/basop32.h +5 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,11 @@ extern Flag Overflow, Overflow2; extern Flag Carry; #endif /* BASOP_NOGLOB */ /* Empty EVS specific definitions added to disable the macros in EVS without removing them*/ #define BASOP_SATURATE_WARNING_ON_EVS #define BASOP_SATURATE_WARNING_OFF_EVS #define BASOP_SATURATE_ERROR_ON_EVS #define BASOP_SATURATE_ERROR_OFF_EVS #ifndef BASOP_NOGLOB #define BASOP_SATURATE_WARNING_ON Loading
lib_com/arith_coder.c +4 −4 Original line number Diff line number Diff line Loading @@ -27,9 +27,9 @@ Word32 expfp( /* o: Q31 */ xi = round_fx(L_tmp); xf = extract_l(L_tmp); BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; xf = negate(xf); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; /* Fractional part */ /* y = 65536 Loading Loading @@ -411,13 +411,13 @@ void tcx_arith_scale_envelope( tmp = getScaleFactor32(env, L_frame); *s_env_e = sub(add(15, iscale_e), tmp); move16(); BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; #ifdef BASOP_NOGLOB a = L_shl_o(1265000, sub(15, *s_env_e), &Overflow); #else /* BASOP_NOGLOB */ a = L_shl(1265000, sub(15, *s_env_e)); #endif BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; FOR (k = 0; k < L_frame; k++) { Loading
lib_com/basop_util.c +20 −20 Original line number Diff line number Diff line Loading @@ -237,9 +237,9 @@ void BASOP_Util_Divide_MantExp (Word16 a_m, /*!< Mantissa of dividend m = shl(b_m, preShift); /* make b positive */ BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; if (m < 0) m = negate(m); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; /* get table index (upper 6 bits minus 16) */ /* index = (m >> 9) - 32; */ Loading Loading @@ -297,13 +297,13 @@ static Word16 Sqrt16_common(Word16 m, /* interpolate */ if (m != 0) { BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; #ifdef BASOP_NOGLOB m = mac_ro(SqrtTable[index], SqrtDiffTable[index], frac, &Overflow); #else m = mac_r(SqrtTable[index], SqrtDiffTable[index], frac); #endif BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; } /* handle odd exponents */ Loading Loading @@ -339,9 +339,9 @@ static Word32 Sqrt32_common(Word32 m, /* interpolate */ if (m != 0) { BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; m = L_mac(SqrtTable[index], SqrtDiffTable[index], frac); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; } /* handle odd exponents */ Loading Loading @@ -562,9 +562,9 @@ Word16 Inv16( /*!< output mantissa */ assert(mantissa != 0); /* absolute */ BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; m = abs_s(mantissa); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; /* normalize */ preShift = norm_s(m); Loading Loading @@ -623,10 +623,10 @@ void BASOP_Util_Sqrt_InvSqrt_MantExp (Word16 mantissa, /*!< mantissa */ frac = s_and(mantissa, 0x1FF); /* Q9 */ /* interpolate */ BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; m = mac_r(SqrtTable[index], SqrtDiffTable[index], frac); mi = msu_r(ISqrtTable[index], ISqrtDiffTable[index], frac); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; /* handle even/odd exponents */ e_odd = s_and(exponent, 1); Loading Loading @@ -941,10 +941,10 @@ Word16 BASOP_Util_Divide3216_Scale( /* o: result of division x/y, not normaliz } sign = s_xor(extract_h(x),y); /* just to exor the sign bits */ BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS x = L_abs(x); y = abs_s(y); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS sx = sub(norm_l(x),1); x = L_shl(x,sx); sy = norm_s(y); Loading Loading @@ -1216,10 +1216,10 @@ Word16 getCosWord16R2(Word16 theta) residual = fixp_sin_cos_residual_16(theta, 1, &sine, &cosine, 1); /* This negation prevents the subsequent addition from overflow */ /* The negation cannot overflow, sine is in range [0x0..0x7FFF] */ BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS sine = negate(sine); result = msu_r(L_mult(sine, residual), cosine, -32768); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS return result; Loading Loading @@ -1939,9 +1939,9 @@ Word16 BASOP_Util_Cmp_Mant32Exp /*!< o: flag: result of compari move16(); } BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS diff_m = L_sub(a_m,b_m); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS diff_e = sub(a_e,b_e); test(); Loading Loading @@ -2134,14 +2134,14 @@ Word16 BASOP_util_atan2( /* o: atan2(y,x) [-pi,pi] Q13 q = 32767/*1.0f Q15*/; /* y/x = neg/zero = -Inf */ sf = 0; BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS q = BASOP_Util_Divide3232_uu_1616_Scale(L_abs(y),L_abs(x), &sf); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS if(L_sign < 0) q = negate(q); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS sfo = add(sf,e); Loading
lib_com/cldfb.c +6 −6 Original line number Diff line number Diff line Loading @@ -862,9 +862,9 @@ cldfbSynthesisFiltering( HANDLE_CLDFB_FILTER_BANK cldfbBank, acc = L_mac(acc, *pStatesI, *pFilterS++); acc = L_mac(acc, nBuffer[channels1-i], *pFilterM++); BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS timeOut[(offset1-i)*stride] = round_fx(L_shl(acc,outScale)); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS } FOR ( ; i<cldfbBank->no_channels; i++) Loading Loading @@ -893,9 +893,9 @@ cldfbSynthesisFiltering( HANDLE_CLDFB_FILTER_BANK cldfbBank, acc = L_mac(acc, nBuffer[channels1+m-i], *pFilterS++); pFilterM++; BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS timeOut[(offset2-i)*stride] = round_fx(L_shl(acc,outScale)); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS } FOR (i=0; i<cldfbBank->no_channels; i++) Loading Loading @@ -1379,12 +1379,12 @@ GetEnergyCldfb( Word32 *energyLookahead, /*!< o: Q(*sf_energyLookahead) | p s = sub(shl(sf_Values, 1), s); sm = sub(s_min(s, 44), 1); BASOP_SATURATE_WARNING_OFF BASOP_SATURATE_WARNING_OFF_EVS /* nrg + 6.1e-5f => value 0x40000000, scale 44 */ *energyLookahead = L_add(L_shr(nrg, sub(s, sm)), L_shr(0x40000000, s_max(-31, s_min(31, sub(44, sm))))); move32(); BASOP_SATURATE_WARNING_ON BASOP_SATURATE_WARNING_ON_EVS *sf_energyLookahead = sm; move16(); Loading
lib_com/codec_tcx_common.c +6 −6 Original line number Diff line number Diff line Loading @@ -36,10 +36,10 @@ Word16 tcxGetNoiseFillingTilt( Copy_Scale_sig( A, As, lpcorder+1, sub(norm_s(A[0]),2) ); tmp = get_gain(As+1, As, lpcorder); BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; *noiseTiltFactor = add(round_fx(L_shl(tmp, 15)), 3072/*0.09375f Q15*/); move16(); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; } Loading Loading @@ -134,14 +134,14 @@ void tcxFormantEnhancement( FOR (j = 1; j < n; j++) { fac = add(fac0, mult(d, extract_l(L_mult0(j, inv_int[n])))); BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; #ifdef BASOP_NOGLOB xn_buf[l+j] = s_min(xn_one, shl_o(mult(xn_buf[l+j], fac), fac_e, &Overflow)); #else xn_buf[l+j] = s_min(xn_one, shl(mult(xn_buf[l+j], fac), fac_e)); #endif move16(); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; } l = i; Loading Loading @@ -181,10 +181,10 @@ void tcxFormantEnhancement( FOR (j = 1; j < n; j++) { fac = add(fac0, mult(d, extract_l(L_mult0(j, inv_int[n])))); BASOP_SATURATE_WARNING_OFF; BASOP_SATURATE_WARNING_OFF_EVS; xn_buf[l+j] = s_min(xn_one, shl(mult(xn_buf[l+j], fac), fac_e)); move16(); BASOP_SATURATE_WARNING_ON; BASOP_SATURATE_WARNING_ON_EVS; } xn_buf[i] = xn_one; Loading