Commit 2f4a8308 authored by Manuel Jander's avatar Manuel Jander
Browse files

Fix another instrumentation of 64 bit multiplication in ivas_qmetadata_enc_fx.c.

parent b4ab8cbd
Loading
Loading
Loading
Loading
Loading
+18 −12
Original line number Diff line number Diff line
@@ -4588,6 +4588,18 @@ static ivas_error write_ec_direction_fx(
    return IVAS_ERR_OK;
}

#ifdef FIX_2564_INSTRUMENTATION
static Word64 W_mult0_64_16( Word64 L64_var1, Word16 L16_var2 )
{
    Word64 L64_result;

    L64_result = W_shl_nosat( W_mult0_32_32( W_extract_h( W_lshl( L64_var1, 1 ) ), L_deposit_l( L16_var2 ) ), 31 );
    L64_result = W_add_nosat( L64_result, W_mult0_32_32( L_and( W_extract_l( L64_var1 ), 0x7fffffff ), L_deposit_l( L16_var2 ) ) );

    return L64_result;
}
#endif

/*-----------------------------------------------------------------------*
 * Local functions (coherence Q and coding)
 *-----------------------------------------------------------------------*/
@@ -4608,7 +4620,13 @@ static UWord64 create_combined_index_fx(
    FOR( i = 0; i < len; i++ )
    {
        idx = W_add( idx, base * idx_dct[i] );
#ifdef FIX_2564_INSTRUMENTATION
        assert( base <= (UWord64) MIN_64 );
        base = (UWord64) W_mult0_64_16( (Word64) base, no_cb_vec[i] );
        assert( base <= (UWord64) MIN_64 );
#else
        base *= no_cb_vec[i];
#endif
    }

    return idx;
@@ -5748,18 +5766,6 @@ static Word16 ivas_qmetadata_quantize_coherence_hr_512_fx(
    return nbits;
}

#ifdef FIX_2564_INSTRUMENTATION
static Word64 W_mult0_64_16( Word64 L64_var1, Word16 L16_var2 )
{
    Word64 L64_result;

    L64_result = W_shl_nosat( W_mult0_32_32( W_extract_h( W_lshl( L64_var1, 1 ) ), L_deposit_l( L16_var2 ) ), 31 );
    L64_result = W_add_nosat( L64_result, W_mult0_32_32( L_and( W_extract_l( L64_var1 ), 0x7fffffff ), L_deposit_l( L16_var2 ) ) );

    return L64_result;
}
#endif

/*-------------------------------------------------------------------*
 * ivas_qmetadata_quantize_coherence()
 *