[FFmpeg-devel] [PATCH]Never specify asm constraint twice in cavsdsp.c

Matt Oliver protogonoi at gmail.com
Sat May 3 09:43:24 CEST 2014


On 3 May 2014 16:35, Carl Eugen Hoyos <cehoyos at ag.or.at> wrote:

> Hi!
>
> Attached patch fixes gcc compilation with
> HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS
> disabled (needed for lto). This partly reverts 72c93aba, still compiles
> with !HAVE_6REGS.
>
> Please merge a similar patch for libmpcodecs/vf_fspp.c from MPlayer svn.
>
> Please comment, Carl Eugen
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
>
I assume the problem is with the function "OPNAME ## cavs_qpel8or16_v2_ ##
MMX" where ff_pw_5 is passed for both MUL1 and MUL2. If correct then for
cavdsp.c doesnt this only affect QPEL_CAVSV2 and not V1 or V3? As I cant
seem to see any other implementation of one of the QPEL_CAVSVX macros that
has the same input for MUL1 and MUL2 (or am I missing something?).
Building from that QPEL_CAVSV2 doesnt actually use MUL2. But as the macro
requires the additional parameter then currently it is just passing ff_pw_5
a second time so it has the correct number of parameters. As MUL2 is not
used then this line can just pass any other parameter that is neither
ff_pw_4 or ff_pw_5 which will avoid the named constraint being used twice.

For example just change the line from:
QPEL_CAVSVNUM(QPEL_CAVSV2,OP,ff_pw_4,ff_pw_5,ff_pw_5)         \
to:
QPEL_CAVSVNUM(QPEL_CAVSV2,OP,ff_pw_4,ff_pw_5,ff_pw_42)        \

This way MUL2 remains as a MANGLE which some other people seemed to suggest
is important for PIC.

As for libmpcodecs/vf_fspp.c that seems to have been an error on my side as
the parameters have been explicitly included twice (which I could have
sworn I fixed but must have been missed when I made the updated patch). I
can create the patch for that one. Michael I assume that should also be
posted to the mplayer mailing list?

Matt


More information about the ffmpeg-devel mailing list