Loading lib_com/basop_util.c +5 −23 Original line number Diff line number Diff line Loading @@ -405,7 +405,9 @@ static Word16 ISqrt16_common( Word16 m, /* handle even exponents */ if ( s_and( e, 1 ) == 0 ) { m = mult_r( m, 0x5a82 ); } return m; } Loading @@ -414,8 +416,7 @@ static Word16 ISqrt16_common( Word16 m, static Word32 ISqrt32_common( Word32 m, Word16 e ) { Word16 index; Word16 m16, frac; Word16 index, m16, frac; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif Loading @@ -431,7 +432,6 @@ static Word32 ISqrt32_common( Word32 m, /* index = (m16 >> 25) - 32; */ index = mac_r( -32768 - ( 32 << 16 ), m16, 1 << 6 ); /* get fractional part for interpolation (lower 9 bits) */ frac = s_and( m16, 0x1FF ); /* Q9 */ Loading @@ -440,8 +440,9 @@ static Word32 ISqrt32_common( Word32 m, /* handle even exponents */ if ( s_and( e, 1 ) == 0 ) { m = Mpy_32_16_1( m, 0x5a82 ); } return m; } Loading Loading @@ -1012,25 +1013,6 @@ Word32 div_w( Word32 L_num, Word32 L_den ) } } /* Replace BASOP_Util_Divide3232_Scale_cadence() with simplified function which calculates an approximation */ //#define func_BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT #ifdef func_BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT Word32 BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT( Word32 x, Word32 y, Word16 *s ) { Word16 exp = 0; Word32 tmp32 = ISqrt32( y, &exp ); tmp32 = Mpy_32_32( tmp32, tmp32 ); exp = imult1616( 2, exp ); if ( L_sub( x, 0x7FFFFFFF ) != 0 ) tmp32 = Mpy_32_32( tmp32, x ); *s = exp; return tmp32; } #endif /*BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT*/ Word32 BASOP_Util_Divide3232_Scale_cadence( Word32 x, Word32 y, Word16 *s ) { Word32 z; Loading Loading
lib_com/basop_util.c +5 −23 Original line number Diff line number Diff line Loading @@ -405,7 +405,9 @@ static Word16 ISqrt16_common( Word16 m, /* handle even exponents */ if ( s_and( e, 1 ) == 0 ) { m = mult_r( m, 0x5a82 ); } return m; } Loading @@ -414,8 +416,7 @@ static Word16 ISqrt16_common( Word16 m, static Word32 ISqrt32_common( Word32 m, Word16 e ) { Word16 index; Word16 m16, frac; Word16 index, m16, frac; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif Loading @@ -431,7 +432,6 @@ static Word32 ISqrt32_common( Word32 m, /* index = (m16 >> 25) - 32; */ index = mac_r( -32768 - ( 32 << 16 ), m16, 1 << 6 ); /* get fractional part for interpolation (lower 9 bits) */ frac = s_and( m16, 0x1FF ); /* Q9 */ Loading @@ -440,8 +440,9 @@ static Word32 ISqrt32_common( Word32 m, /* handle even exponents */ if ( s_and( e, 1 ) == 0 ) { m = Mpy_32_16_1( m, 0x5a82 ); } return m; } Loading Loading @@ -1012,25 +1013,6 @@ Word32 div_w( Word32 L_num, Word32 L_den ) } } /* Replace BASOP_Util_Divide3232_Scale_cadence() with simplified function which calculates an approximation */ //#define func_BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT #ifdef func_BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT Word32 BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT( Word32 x, Word32 y, Word16 *s ) { Word16 exp = 0; Word32 tmp32 = ISqrt32( y, &exp ); tmp32 = Mpy_32_32( tmp32, tmp32 ); exp = imult1616( 2, exp ); if ( L_sub( x, 0x7FFFFFFF ) != 0 ) tmp32 = Mpy_32_32( tmp32, x ); *s = exp; return tmp32; } #endif /*BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT*/ Word32 BASOP_Util_Divide3232_Scale_cadence( Word32 x, Word32 y, Word16 *s ) { Word32 z; Loading