Commit 99f0ed69 authored by JÜRGEN Gerstacker's avatar JÜRGEN Gerstacker
Browse files

issue _1965_ fix

parent 68b30036
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -2079,22 +2079,33 @@ Word32 norm_llQ31( /* o : normalized result Q31 */
)
{
    Word16 i;
#ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
    Word64 W_tmp;
#else
    Word32 L_tmp;
#endif
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
#ifndef ISSUE_1836_replace_overflow_libcom
#if !defined( ISSUE_1836_replace_overflow_libcom ) && !defined( FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW )
    Flag Overflow = 0;
#endif
#ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
    Flag Carry = 0;
#endif
#endif /* BASOP_NOGLOB */

    /* Move MSBit of L_sum into L_c */
    Carry = 0;
#ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
    W_tmp = W_add( L_sum, L_sum ); /* W_tmp = L_sum << 1         */
    L_c = L_add( L_add( L_c, L_c ), W_extract_h(W_tmp) );
#else
  #ifdef ISSUE_1836_replace_overflow_libcom
    Carry = 0;
    L_tmp = L_add_c( L_sum, L_sum, &Carry ); /* L_tmp = L_sum << 1         */
    L_c = L_add_c( L_c, L_c, &Carry );
  #else
    L_tmp = L_add_co( L_sum, L_sum, &Carry, &Overflow ); /* L_tmp = L_sum << 1         */
    L_c = L_add_co( L_c, L_c, &Carry, &Overflow );
  #endif
#endif
    L_add( 0, 0 );
    test();
@@ -2103,9 +2114,14 @@ Word32 norm_llQ31( /* o : normalized result Q31 */
        i = norm_l( L_c );
        L_c = L_shl( L_c, i );
        i = sub( 31, i );           /* positive exponent  */
#ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
        L_sum = W_lshr( W_tmp, 1 ); /* L_sum with MSBit=0 */
        L_sum = L_lshr( L_sum, i );
#else
        L_sum = L_lshr( L_tmp, 1 ); /* L_sum with MSBit=0 */
        L_sum = L_lshr( L_sum, i );
        L_sum = L_add( L_c, L_sum );
#endif
    }
    ELSE
    {