[FFmpeg-devel] [gcc-trunk] swscale_template.c:1358:1: error: bp cannot be used in asm here

Ramiro Polla ramiro.polla
Wed Oct 21 03:22:35 CEST 2009


On Mon, Sep 7, 2009 at 2:38 AM, Ramiro Polla <ramiro.polla at gmail.com> wrote:
> 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?

Or what about using another register as in attached patch?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bp_bx.diff
Type: text/x-diff
Size: 1325 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20091020/6e88a0e0/attachment.diff>



More information about the ffmpeg-devel mailing list