Loading lib_com/basop_util.c +18 −8 Original line number Diff line number Diff line Loading @@ -2079,26 +2079,29 @@ Word32 norm_llQ31( /* o : normalized result Q31 */ ) { #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW L_sum =w_norm_llQ31( (Word64)L_c<<32 | L_sum, exp); return L_sum; // Word16 exp2=*exp; // Word32 L_sumOld= L_sum; // Word32 L_cOld= L_c; // Word32 L_sum2 =w_norm_llQ31( ((Word64)L_c<<32) | (UWord32)L_sum, &exp2); L_sum =w_norm_llQ31( ((Word64)L_c<<32) | (UWord32)L_sum, exp); #else Word16 i; #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOWxxx Word64 W_tmp; #else Word32 L_tmp; #endif #ifdef BASOP_NOGLOB_DECLARE_LOCAL #if !defined( ISSUE_1836_replace_overflow_libcom ) && !defined( FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW ) #if !defined( ISSUE_1836_replace_overflow_libcom ) && !defined( FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOWxxx ) Flag Overflow = 0; #endif #ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW #ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOWxxx Flag Carry = 0; #endif #endif /* BASOP_NOGLOB */ /* Move MSBit of L_sum into L_c */ #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOWxxx 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 Loading @@ -2118,7 +2121,7 @@ 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 #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOWxxx L_sum = W_lshr( W_tmp, 1 ); /* L_sum with MSBit=0 */ L_sum = L_lshr( L_sum, i ); #else Loading @@ -2140,8 +2143,15 @@ Word32 norm_llQ31( /* o : normalized result Q31 */ } *exp = i; move16(); return L_sum; #if 0 char isnotok = *exp != exp2 || L_sum!=L_sum2; if (isnotok) fprintf(stderr, "%s: %s:%d: (0x%08x, 0x%08x) 0x%08x 0x%08x %d %d\n", isnotok?"ERROR ":"IS_OK ", __FILE__,__LINE__, L_cOld,L_sumOld, L_sum, L_sum2, *exp, exp2); #endif #endif return L_sum; } Loading Loading
lib_com/basop_util.c +18 −8 Original line number Diff line number Diff line Loading @@ -2079,26 +2079,29 @@ Word32 norm_llQ31( /* o : normalized result Q31 */ ) { #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW L_sum =w_norm_llQ31( (Word64)L_c<<32 | L_sum, exp); return L_sum; // Word16 exp2=*exp; // Word32 L_sumOld= L_sum; // Word32 L_cOld= L_c; // Word32 L_sum2 =w_norm_llQ31( ((Word64)L_c<<32) | (UWord32)L_sum, &exp2); L_sum =w_norm_llQ31( ((Word64)L_c<<32) | (UWord32)L_sum, exp); #else Word16 i; #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOWxxx Word64 W_tmp; #else Word32 L_tmp; #endif #ifdef BASOP_NOGLOB_DECLARE_LOCAL #if !defined( ISSUE_1836_replace_overflow_libcom ) && !defined( FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW ) #if !defined( ISSUE_1836_replace_overflow_libcom ) && !defined( FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOWxxx ) Flag Overflow = 0; #endif #ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW #ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOWxxx Flag Carry = 0; #endif #endif /* BASOP_NOGLOB */ /* Move MSBit of L_sum into L_c */ #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOWxxx 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 Loading @@ -2118,7 +2121,7 @@ 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 #ifdef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOWxxx L_sum = W_lshr( W_tmp, 1 ); /* L_sum with MSBit=0 */ L_sum = L_lshr( L_sum, i ); #else Loading @@ -2140,8 +2143,15 @@ Word32 norm_llQ31( /* o : normalized result Q31 */ } *exp = i; move16(); return L_sum; #if 0 char isnotok = *exp != exp2 || L_sum!=L_sum2; if (isnotok) fprintf(stderr, "%s: %s:%d: (0x%08x, 0x%08x) 0x%08x 0x%08x %d %d\n", isnotok?"ERROR ":"IS_OK ", __FILE__,__LINE__, L_cOld,L_sumOld, L_sum, L_sum2, *exp, exp2); #endif #endif return L_sum; } Loading