[SCM] libav/experimental: 2 instructions less in h264_loop_filter_luma_mmx2()

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:52:55 UTC 2013


The following commit has been merged in the experimental branch:
commit 25225c37731bfb3129139eea7fa61cdb2b1e0321
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Fri Nov 3 12:07:53 2006 +0000

    2 instructions less in h264_loop_filter_luma_mmx2()
    
    Originally committed as revision 6882 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/i386/h264dsp_mmx.c b/libavcodec/i386/h264dsp_mmx.c
index c0da80a..185989f 100644
--- a/libavcodec/i386/h264dsp_mmx.c
+++ b/libavcodec/i386/h264dsp_mmx.c
@@ -399,10 +399,9 @@ static inline void h264_loop_filter_luma_mmx2(uint8_t *pix, int stride, int alph
         "pand     %%mm7,  %%mm6    \n\t" // mask & |p2-p0|<beta
         "pshufw  $80, %4, %%mm4    \n\t"
         "pand     %%mm7,  %%mm4    \n\t" // mask & tc0
-        "movq     %8,     %%mm7    \n\t"
-        "pand     %%mm6,  %%mm7    \n\t" // mask & |p2-p0|<beta & 1
+        "movq     %%mm4,  %%mm7    \n\t"
+        "psubb    %%mm6,  %%mm7    \n\t"
         "pand     %%mm4,  %%mm6    \n\t" // mask & |p2-p0|<beta & tc0
-        "paddb    %%mm4,  %%mm7    \n\t" // tc++
         H264_DEBLOCK_Q1(%%mm0, %%mm3, "(%1)", "(%1,%3)", %%mm6, %%mm4)
 
         /* filter q1 */
@@ -413,8 +412,7 @@ static inline void h264_loop_filter_luma_mmx2(uint8_t *pix, int stride, int alph
         "pand     %0,     %%mm6    \n\t"
         "pshufw  $80, %4, %%mm5    \n\t"
         "pand     %%mm6,  %%mm5    \n\t"
-        "pand     %8,     %%mm6    \n\t"
-        "paddb    %%mm6,  %%mm7    \n\t"
+        "psubb    %%mm6,  %%mm7    \n\t"
         "movq    (%2,%3), %%mm3    \n\t"
         H264_DEBLOCK_Q1(%%mm3, %%mm4, "(%2,%3,2)", "(%2,%3)", %%mm5, %%mm6)
 

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list