[FFmpeg-devel] [gcc-trunk] swscale_template.c:1358:1: error: bp cannot be used in asm here
Ramiro Polla
ramiro.polla
Mon Sep 7 06:38:01 CEST 2009
On Mon, Sep 7, 2009 at 1:16 AM, Ramiro Polla<ramiro.polla at gmail.com> wrote:
> On Mon, Sep 7, 2009 at 12:28 AM, t66667 at gmail.com<t66667 at gmail.com> wrote:
>> In file included from libswscale/swscale.c:1407:0:
>> libswscale/swscale_template.c: In function 'yuv2packed2_MMX2':
>> libswscale/swscale_template.c:1358:1: error: bp cannot be used in asm here
>> make[1]: *** [libswscale/swscale.o] Error 1
>
> Hmm, this is a horrible bug report but luckily for you I have just
> stumbled upon the same thing.
>
> Reproducible with
> ./configure --disable-optimizations --enable-gpl && cd libswscale; make
> in x86_64
> It happens due to the block in lines 1228:1240 in swscale_template.c in r29652.
__asm__ volatile(
YSCALEYUV2RGB(%%REGBP, %5)
YSCALEYUV2RGB_YA(%%REGBP, %5, %6, %7)
"psraw $3, %%mm1 \n\t" /* abuf0[eax] -
abuf1[eax] >>7*/
"psraw $3, %%mm7 \n\t" /* abuf0[eax] -
abuf1[eax] >>7*/
"packuswb %%mm7, %%mm1 \n\t"
WRITEBGR32(%4, 8280(%5), %%REGBP, %%mm2, %%mm4, %%mm5, %%mm1,
%%mm0, %%mm7, %%mm3, %%mm6)
:: "c" (buf0), "d" (buf1), "S" (uvbuf0), "D" (uvbuf1), "r" (dest),
"a" (&c->redDither)
,"r" (abuf0), "r" (abuf1)
: "%"REG_BP
);
Shouldn't be using push/pop for REG_BP like all the other chunks do?
By the way why do we have REGBP and REG_BP defined to the same thing
in lavu/x86_cpu.h ?
More information about the ffmpeg-devel
mailing list