From 61240ae5569c9f53a87c2fed9b0985959455f13c Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Fri, 23 Feb 2007 14:29:13 +0000
Subject: [PATCH] fix chroma mc2 bug, this is based on a patch by (Oleg
 Metelitsa oleg hitron co kr) and does slow the mc2 chroma put down, avg
 interrestingly seems unaffected speedwise on duron this of course should be
 rather done in a way which doesnt slow it down but its better a few % slower
 but correct then incorrect

Originally committed as revision 8093 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/i386/dsputil_h264_template_mmx.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/libavcodec/i386/dsputil_h264_template_mmx.c b/libavcodec/i386/dsputil_h264_template_mmx.c
index 8fa9eac09e2..48cb4802288 100644
--- a/libavcodec/i386/dsputil_h264_template_mmx.c
+++ b/libavcodec/i386/dsputil_h264_template_mmx.c
@@ -293,11 +293,14 @@ static void H264_CHROMA_MC2_TMPL(uint8_t *dst/*align 2*/, uint8_t *src/*align 1*
         /* writes garbage to the right of dst.
             * ok because partitions are processed from left to right. */
         H264_CHROMA_OP4((%0), %%mm1, %%mm3)
-        "movd %%mm1, (%0)\n\t"
+        "movd %%mm1, %%esi\n\t"
+        "movw %%si, (%0)\n\t"
         "add %4, %0\n\t"
         "sub $1, %2\n\t"
         "jnz 1b\n\t"
-        : "+r" (dst), "+r"(src), "+r"(h) : "m" (ff_pw_32), "r"(stride));
+        : "+r" (dst), "+r"(src), "+r"(h)
+        : "m" (ff_pw_32), "r"(stride)
+        : "%esi");
 
 }
 #endif
-- 
GitLab