[FFmpeg-devel] FASTDIV macro

Måns Rullgård mans
Sun Nov 9 02:03:38 CET 2008

Siarhei Siamashka <siarhei.siamashka at gmail.com> writes:

> On Saturday 08 November 2008, M?ns Rullg?rd wrote:
>> libavutil/internal.h defines a macro, FASTDIV(), for fast 32/16-bit
>> division my means of multiplying by a table value.  If the
>> architecture is not ARM or x86, which have asm versions, this macro is
>> defined as a normal division if CONFIG_FASTDIV is not set.  The odd
>> thing is, nothing ever sets CONFIG_FASTDIV.  Something is clearly not
>> right here.
> A right thing here would be a patch with a description like
> "Enabling FASTDIV macro for architecture X improves performance of
> FFmpeg on this use case by Y percents..."
>> I see these alternatives to fix it:
> I think you first need to provide some kind of convincing proof that
> it is broken. This macro is definitely useful for ARM processors
> without instruction for hardware division. In other cases I suspect
> that something like what is done by FASTDIV macro could be somehow
> implemented in silicon itself (some cases of division could be
> performed faster than the others). Even a benchark of FASTDIV
> vs. native division for modern x86 cores would be interesting to
> see.

What are you talking about?  I am not suggesting to change anything
for ARM or x86.  I'm talking about what to do with the impossible to
enable C version using the table.

M?ns Rullg?rd
mans at mansr.com

More information about the ffmpeg-devel mailing list