          "sub $2, %0                     \n\t"
          " jg 1b                         \n\t"
          : "+r" (h), "+r" (blk1), "+r" (blk2)
--        : "r" ((long)stride)
-+        : "r" ((long)stride), "m" (bone)
+-        : "r" ((x86_reg)stride)
++        : "r" ((x86_reg)stride), "m" (bone)
      );
  }
  

     );
     if(len&1)
@@ -84,9 +83,11 @@
         long i = -len*sizeof(double);
         if(j == lag-2) {
             asm volatile(
-                "movsd     %6,     %%xmm0 \n\t"

 }
Index: libavcodec/i386/cavsdsp_mmx.c
===================================================================
--- libavcodec/i386/cavsdsp_mmx.c	(revision 13752)
+++ libavcodec/i386/cavsdsp_mmx.c	(working copy)
@@ -25,8 +25,30 @@
 #include "libavutil/common.h"
 #include "libavutil/x86_cpu.h"
 #include "libavcodec/dsputil.h"
-#include "dsputil_mmx.h"
 
+#define SUMSUB_BA( a, b ) \
+"paddw "#b", "#a" \n\t"\
