[Ffmpeg-devel] build broken again...

François Revol revol
Sun May 8 15:13:09 CEST 2005


> I can't leave you for 2 weeks without having to fix your mess, grrr :
> ^)
> 
> /boot/home/devel/ffmpeg/cvs/ffmpeg/libavcodec/i386/dsputil_mmx.c:866: 
> fixed or forbidden register 3 (bx) was spilled for class 
> GENERAL_REGS.

Ok, this one fixes it, if I don't see any complains filed until 
tomorrow I'll commit it.

--- libavcodec/i386/dsputil_mmx.c       25 Apr 2005 01:01:41 -0000      
1.90
+++ libavcodec/i386/dsputil_mmx.c       8 May 2005 13:09:41 -0000
@@ -848,19 +848,20 @@
 {
     asm volatile(
         "movd    (%0),    %%mm0     \n\t"
-        "movd    (%0,%2), %%mm1     \n\t"
-        "movd    (%1),    %%mm2     \n\t"
-        "movd    (%1,%2), %%mm3     \n\t"
-        H264_DEBLOCK_THRESH(%4,%5)
-        "movd      %3,    %%mm6     \n\t"
+        "lea     (%0,%1), %0        \n\t"
+        "movd    (%0),    %%mm1     \n\t"
+        "movd    (%0,%1), %%mm2     \n\t"
+        "movd    (%0,%1,2),%%mm3    \n\t"
+        H264_DEBLOCK_THRESH(%3,%4)
+        "movd      %2,    %%mm6     \n\t"
         "pshufw $0x50, %%mm6, %%mm6 \n\t" // mm6 = tc[1], tc[1], 
tc[0], tc[0]
         "pand      %%mm7, %%mm6     \n\t"
-        H264_DEBLOCK_P0_Q0(%6)
+        H264_DEBLOCK_P0_Q0(%5)
         "packuswb  %%mm1, %%mm1     \n\t"
         "packuswb  %%mm2, %%mm2     \n\t"
-        "movd      %%mm1, (%0,%2)   \n\t"
-        "movd      %%mm2, (%1)      \n\t"
-        :: "r"(pix-2*stride), "r"(pix), "r"((long)stride),
+        "movd      %%mm1, (%0)      \n\t"
+        "movd      %%mm2, (%0,%1)   \n\t"
+        :: "r"(pix-2*stride), /*"r"(pix),*/ "r"((long)stride),
            "r"(tc0[1]<<16 | tc0[0]),
            "r"(alpha), "r"(beta), "m"(ff_pw_4)
     );

Btw, is it me or the intel dev manual is inconsistent page 3-21 ? 
(valid scale *factors* are listed as 1,2,3,4, while talking about 2,4 
and 8 bytes stuff...)
I guess they smoke too much.

Fran?ois.





More information about the ffmpeg-devel mailing list