YourPaste - For your paste! Archive - Tools - Login

Posted by unknown on Fri 26 Feb 2010 19:32 157 views - Syntax: None - Expires: never - Report - IMG - Download -

commit 84af829e2c0bf3f24301ffa2207fd4bd036f4201
Author: David Conrad <lessen42@gmail.com>
Date:   Thu Jan 21 18:56:15 2010 -0500

    Remove unneeded hardcoded register constraints in inline asm, apparently added
    as workarounds to various versions of gcc 3.x failing to handle "r" and "g"
    correctly.

diff --git a/libavcodec/x86/cavsdsp_mmx.c b/libavcodec/x86/cavsdsp_mmx.c
index 4dadc86..e352644 100644
--- a/libavcodec/x86/cavsdsp_mmx.c
+++ b/libavcodec/x86/cavsdsp_mmx.c
@@ -279,8 +279,8 @@ static void cavs_idct8_add_mmx(uint8_t *dst, int16_t *block, int stride)
         VOP(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, OP, MUL2)\
         VOP(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP, MUL2)\
         \
-        : "+a"(src), "+c"(dst)\
-        : "S"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ADD), "m"(MUL1)\
+        : "+r"(src), "+r"(dst)\
+        : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ADD), "m"(MUL1)\
         : "memory"\
      );\
      if(h==16){\
@@ -294,8 +294,8 @@ static void cavs_idct8_add_mmx(uint8_t *dst, int16_t *block, int stride)
             VOP(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP, MUL2)\
             VOP(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP, MUL2)\
             \
-           : "+a"(src), "+c"(dst)\
-           : "S"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ADD),  "m"(MUL1)\
+           : "+r"(src), "+r"(dst)\
+           : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ADD),  "m"(MUL1)\
            : "memory"\
         );\
      }\
@@ -345,8 +345,8 @@ static void OPNAME ## cavs_qpel8_h_ ## MMX(uint8_t *dst, uint8_t *src, int dstSt
         "add %4, %1                 \n\t"\
         "decl %2                    \n\t"\
         " jnz 1b                    \n\t"\
-        : "+a"(src), "+c"(dst), "+m"(h)\
-        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_4)\
+        : "+r"(src), "+r"(dst), "+g"(h)\
+        : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_4)\
         : "memory"\
     );\
 }\
diff --git a/libavcodec/x86/dsputil_mmx.c b/libavcodec/x86/dsputil_mmx.c
index abfebfb..b7ac068 100644
--- a/libavcodec/x86/dsputil_mmx.c
+++ b/libavcodec/x86/dsputil_mmx.c
@@ -1102,8 +1102,8 @@ static void OPNAME ## mpeg4_qpel16_h_lowpass_mmx2(uint8_t *dst, uint8_t *src, in
         "add %4, %1                       \n\t"\
         "decl %2                          \n\t"\
         " jnz 1b                          \n\t"\
-        : "+a"(src), "+c"(dst), "+D"(h)\
-        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride), /*"m"(ff_pw_20), "m"(ff_pw_3),*/ "m"(temp), "m"(ROUNDER)\
+        : "+r"(src), "+r"(dst), "+g"(h)\
+        : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), /*"m"(ff_pw_20), "m"(ff_pw_3),*/ "m"(temp), "m"(ROUNDER)\
         : "memory"\
     );\
 }\
@@ -1213,8 +1213,8 @@ static void OPNAME ## mpeg4_qpel8_h_lowpass_mmx2(uint8_t *dst, uint8_t *src, int
         "add %4, %1                       \n\t"\
         "decl %2                          \n\t"\
         " jnz 1b                          \n\t"\
-        : "+a"(src), "+c"(dst), "+d"(h)\
-        : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), /*"m"(ff_pw_20), "m"(ff_pw_3),*/ "m"(ROUNDER)\
+        : "+r"(src), "+r"(dst), "+g"(h)\
+        : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), /*"m"(ff_pw_20), "m"(ff_pw_3),*/ "m"(ROUNDER)\
         : "memory"\
     );\
 }\
diff --git a/libavcodec/x86/dsputil_mmx_avg_template.c b/libavcodec/x86/dsputil_mmx_avg_template.c
index 8220867..09e8352 100644
--- a/libavcodec/x86/dsputil_mmx_avg_template.c
+++ b/libavcodec/x86/dsputil_mmx_avg_template.c
@@ -50,7 +50,7 @@ static void DEF(put_pixels8_x2)(uint8_t *block, const uint8_t *pixels, int line_
         "add %%"REG_a", %2              \n\t"
         "subl $4, %0                    \n\t"
         "jnz 1b                         \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r" ((x86_reg)line_size)
         :"%"REG_a, "memory");
 }
@@ -96,12 +96,8 @@ static void DEF(put_pixels4_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int
         "add    $16, %2                 \n\t"
         "subl   $4, %0                  \n\t"
         "jnz    1b                      \n\t"
-#if !HAVE_EBX_AVAILABLE //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used
-        :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#else
-        :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#endif
-        :"S"((x86_reg)src1Stride), "D"((x86_reg)dstStride)
+        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
+        :"r"((x86_reg)src1Stride), "r"((x86_reg)dstStride)
         :"memory");
 }
 
@@ -143,17 +139,9 @@ static void DEF(put_pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int
         "add    $32, %2                 \n\t"
         "subl   $4, %0                  \n\t"
         "jnz    1b                      \n\t"
-#if !HAVE_EBX_AVAILABLE //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used
-        :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#else
-        :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#endif
-        :"S"((x86_reg)src1Stride), "D"((x86_reg)dstStride)
+        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
+        :"r"((x86_reg)src1Stride), "r"((x86_reg)dstStride)
         :"memory");
-//the following should be used, though better not with gcc ...
-/*        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
-        :"r"(src1Stride), "r"(dstStride)
-        :"memory");*/
 }
 
 static void DEF(put_no_rnd_pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h)
@@ -213,17 +201,9 @@ static void DEF(put_no_rnd_pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src
         "add    $32, %2                 \n\t"
         "subl   $4, %0                  \n\t"
         "jnz    1b                      \n\t"
-#if !HAVE_EBX_AVAILABLE //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used
-        :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#else
-        :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#endif
-        :"S"((x86_reg)src1Stride), "D"((x86_reg)dstStride)
+        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
+        :"r"((x86_reg)src1Stride), "r"((x86_reg)dstStride)
         :"memory");
-//the following should be used, though better not with gcc ...
-/*        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
-        :"r"(src1Stride), "r"(dstStride)
-        :"memory");*/
 }
 
 static void DEF(avg_pixels4_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h)
@@ -268,12 +248,8 @@ static void DEF(avg_pixels4_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int
         "add    $16, %2                 \n\t"
         "subl   $4, %0                  \n\t"
         "jnz    1b                      \n\t"
-#if !HAVE_EBX_AVAILABLE //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used
-        :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#else
-        :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#endif
-        :"S"((x86_reg)src1Stride), "D"((x86_reg)dstStride)
+        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
+        :"r"((x86_reg)src1Stride), "r"((x86_reg)dstStride)
         :"memory");
 }
 
@@ -320,17 +296,9 @@ static void DEF(avg_pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int
         "add    $32, %2                 \n\t"
         "subl   $4, %0                  \n\t"
         "jnz    1b                      \n\t"
-#if !HAVE_EBX_AVAILABLE  //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used
-        :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#else
-        :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#endif
-        :"S"((x86_reg)src1Stride), "D"((x86_reg)dstStride)
+        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
+        :"r"((x86_reg)src1Stride), "r"((x86_reg)dstStride)
         :"memory");
-//the following should be used, though better not with gcc ...
-/*        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
-        :"r"(src1Stride), "r"(dstStride)
-        :"memory");*/
 }
 
 static void DEF(put_pixels16_x2)(uint8_t *block, const uint8_t *pixels, int line_size, int h)
@@ -368,7 +336,7 @@ static void DEF(put_pixels16_x2)(uint8_t *block, const uint8_t *pixels, int line
         "add %%"REG_a", %2              \n\t"
         "subl $4, %0                    \n\t"
         "jnz 1b                         \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r" ((x86_reg)line_size)
         :"%"REG_a, "memory");
 }
@@ -408,17 +376,9 @@ static void DEF(put_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int
         "add    $32, %2                 \n\t"
         "subl   $2, %0                  \n\t"
         "jnz    1b                      \n\t"
-#if !HAVE_EBX_AVAILABLE  //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used
-        :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#else
-        :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#endif
-        :"S"((x86_reg)src1Stride), "D"((x86_reg)dstStride)
+        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
+        :"r"((x86_reg)src1Stride), "r"((x86_reg)dstStride)
         :"memory");
-//the following should be used, though better not with gcc ...
-/*        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
-        :"r"(src1Stride), "r"(dstStride)
-        :"memory");*/
 }
 
 static void DEF(avg_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h)
@@ -462,17 +422,9 @@ static void DEF(avg_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int
         "add    $32, %2                 \n\t"
         "subl   $2, %0                  \n\t"
         "jnz    1b                      \n\t"
-#if !HAVE_EBX_AVAILABLE  //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used
-        :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#else
-        :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#endif
-        :"S"((x86_reg)src1Stride), "D"((x86_reg)dstStride)
+        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
+        :"r"((x86_reg)src1Stride), "r"((x86_reg)dstStride)
         :"memory");
-//the following should be used, though better not with gcc ...
-/*        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
-        :"r"(src1Stride), "r"(dstStride)
-        :"memory");*/
 }
 
 static void DEF(put_no_rnd_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h)
@@ -535,17 +487,9 @@ static void DEF(put_no_rnd_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *sr
         "add    $32, %2                 \n\t"
         "subl   $2, %0                  \n\t"
         "jnz    1b                      \n\t"
-#if !HAVE_EBX_AVAILABLE //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used
-        :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#else
-        :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#endif
-        :"S"((x86_reg)src1Stride), "D"((x86_reg)dstStride)
+        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
+        :"r"((x86_reg)src1Stride), "r"((x86_reg)dstStride)
         :"memory");
-//the following should be used, though better not with gcc ...
-/*        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
-        :"r"(src1Stride), "r"(dstStride)
-        :"memory");*/
 }
 
 /* GL: this function does incorrect rounding if overflow */
@@ -581,7 +525,7 @@ static void DEF(put_no_rnd_pixels8_x2)(uint8_t *block, const uint8_t *pixels, in
         "add %%"REG_a", %2              \n\t"
         "subl $4, %0                    \n\t"
         "jnz 1b                         \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r" ((x86_reg)line_size)
         :"%"REG_a, "memory");
 }
@@ -611,7 +555,7 @@ static void DEF(put_pixels8_y2)(uint8_t *block, const uint8_t *pixels, int line_
         "add %%"REG_a", %2              \n\t"
         "subl $4, %0                    \n\t"
         "jnz 1b                         \n\t"
-        :"+g"(h), "+S"(pixels), "+D" (block)
+        :"+g"(h), "+r"(pixels), "+r" (block)
         :"r" ((x86_reg)line_size)
         :"%"REG_a, "memory");
 }
@@ -645,7 +589,7 @@ static void DEF(put_no_rnd_pixels8_y2)(uint8_t *block, const uint8_t *pixels, in
         "add %%"REG_a", %2              \n\t"
         "subl $4, %0                    \n\t"
         "jnz 1b                         \n\t"
-        :"+g"(h), "+S"(pixels), "+D" (block)
+        :"+g"(h), "+r"(pixels), "+r" (block)
         :"r" ((x86_reg)line_size)
         :"%"REG_a, "memory");
 }
@@ -673,7 +617,7 @@ static void DEF(avg_pixels8)(uint8_t *block, const uint8_t *pixels, int line_siz
         "add %%"REG_a", %2              \n\t"
         "subl $4, %0                    \n\t"
         "jnz 1b                         \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r" ((x86_reg)line_size)
         :"%"REG_a, "memory");
 }
@@ -705,7 +649,7 @@ static void DEF(avg_pixels8_x2)(uint8_t *block, const uint8_t *pixels, int line_
         "add %%"REG_a", %2              \n\t"
         "subl $4, %0                    \n\t"
         "jnz 1b                         \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r" ((x86_reg)line_size)
         :"%"REG_a, "memory");
 }
@@ -743,7 +687,7 @@ static void DEF(avg_pixels8_y2)(uint8_t *block, const uint8_t *pixels, int line_
         "add %%"REG_a", %2              \n\t"
         "subl $4, %0                    \n\t"
         "jnz 1b                         \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r" ((x86_reg)line_size)
         :"%"REG_a, "memory");
 }
@@ -786,7 +730,7 @@ static void DEF(avg_pixels8_xy2)(uint8_t *block, const uint8_t *pixels, int line
         "add %%"REG_a", %2              \n\t"
         "subl $4, %0                    \n\t"
         "jnz 1b                         \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r" ((x86_reg)line_size)
         :"%"REG_a,  "memory");
 }
@@ -807,7 +751,7 @@ static void DEF(avg_pixels4)(uint8_t *block, const uint8_t *pixels, int line_siz
             "movd %%mm1, (%1, %2)           \n\t"
             "movd %%mm2, (%1, %2, 2)        \n\t"
             "movd %%mm3, (%1, %3)           \n\t"
-            ::"S"(pixels), "D"(block),
+            ::"r"(pixels), "r"(block),
              "r" ((x86_reg)line_size), "r"((x86_reg)3L*line_size)
             :"memory");
         block += 4*line_size;
diff --git a/libavcodec/x86/dsputil_mmx_rnd_template.c b/libavcodec/x86/dsputil_mmx_rnd_template.c
index 2fc1756..2ea8a3a 100644
--- a/libavcodec/x86/dsputil_mmx_rnd_template.c
+++ b/libavcodec/x86/dsputil_mmx_rnd_template.c
@@ -52,7 +52,7 @@ static void DEF(put, pixels8_x2)(uint8_t *block, const uint8_t *pixels, int line
         "add    %%"REG_a", %2           \n\t"
         "subl   $4, %0                  \n\t"
         "jnz    1b                      \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r"((x86_reg)line_size)
         :REG_a, "memory");
 }
@@ -98,12 +98,8 @@ static void av_unused DEF(put, pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t
         "add    %5, %3                  \n\t"
         "subl   $4, %0                  \n\t"
         "jnz    1b                      \n\t"
-#if !HAVE_EBX_AVAILABLE //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used
-        :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#else
-        :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#endif
-        :"S"((x86_reg)src1Stride), "D"((x86_reg)dstStride)
+        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
+        :"r"((x86_reg)src1Stride), "r"((x86_reg)dstStride)
         :"memory");
 }
 
@@ -148,7 +144,7 @@ static void DEF(put, pixels16_x2)(uint8_t *block, const uint8_t *pixels, int lin
         "add    %%"REG_a", %2           \n\t"
         "subl   $4, %0                  \n\t"
         "jnz    1b                      \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r"((x86_reg)line_size)
         :REG_a, "memory");
 }
@@ -193,12 +189,8 @@ static void av_unused DEF(put, pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t
         "add    $32, %2                 \n\t"
         "subl   $2, %0                  \n\t"
         "jnz    1b                      \n\t"
-#if !HAVE_EBX_AVAILABLE  //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used
-        :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#else
-        :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst)
-#endif
-        :"S"((x86_reg)src1Stride), "D"((x86_reg)dstStride)
+        :"+g"(h), "+r"(src1), "+r"(src2), "+r"(dst)
+        :"r"((x86_reg)src1Stride), "r"((x86_reg)dstStride)
         :"memory");
 }
 
@@ -226,7 +218,7 @@ static void DEF(put, pixels8_y2)(uint8_t *block, const uint8_t *pixels, int line
         "add    %%"REG_a", %2           \n\t"
         "subl   $4, %0                  \n\t"
         "jnz    1b                      \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r"((x86_reg)line_size)
         :REG_a, "memory");
 }
@@ -292,8 +284,8 @@ static void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixels, int lin
 
         "subl   $2, %0                  \n\t"
         "jnz    1b                      \n\t"
-        :"+g"(h), "+S"(pixels)
-        :"D"(block), "r"((x86_reg)line_size)
+        :"+g"(h), "+r"(pixels)
+        :"r"(block), "r"((x86_reg)line_size)
         :REG_a, "memory");
 }
 
@@ -488,7 +480,7 @@ static void DEF(avg, pixels8_y2)(uint8_t *block, const uint8_t *pixels, int line
 
         "subl   $4, %0                  \n\t"
         "jnz    1b                      \n\t"
-        :"+g"(h), "+S"(pixels), "+D"(block)
+        :"+g"(h), "+r"(pixels), "+r"(block)
         :"r"((x86_reg)line_size)
         :REG_a, "memory");
 }
@@ -563,8 +555,8 @@ static void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixels, int lin
 
         "subl   $2, %0                  \n\t"
         "jnz    1b                      \n\t"
-        :"+g"(h), "+S"(pixels)
-        :"D"(block), "r"((x86_reg)line_size)
+        :"+g"(h), "+r"(pixels)
+        :"r"(block), "r"((x86_reg)line_size)
         :REG_a, "memory");
 }
 
diff --git a/libavcodec/x86/h264dsp_mmx.c b/libavcodec/x86/h264dsp_mmx.c
index 30d5497..84af59e 100644
--- a/libavcodec/x86/h264dsp_mmx.c
+++ b/libavcodec/x86/h264dsp_mmx.c
@@ -998,8 +998,8 @@ static av_noinline void OPNAME ## h264_qpel4_h_lowpass_ ## MMX(uint8_t *dst, uin
         "add %4, %1                 \n\t"\
         "decl %2                    \n\t"\
         " jnz 1b                    \n\t"\
-        : "+a"(src), "+c"(dst), "+g"(h)\
-        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+        : "+r"(src), "+r"(dst), "+g"(h)\
+        : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
         : "memory"\
     );\
 }\
@@ -1041,8 +1041,8 @@ static av_noinline void OPNAME ## h264_qpel4_h_lowpass_l2_ ## MMX(uint8_t *dst,
         "add %4, %0                 \n\t"\
         "add %4, %1                 \n\t"\
         "add %3, %2                 \n\t"\
-        : "+a"(src), "+c"(dst), "+d"(src2)\
-        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride)\
+        : "+r"(src), "+r"(dst), "+r"(src2)\
+        : "r"((x86_reg)src2Stride), "r"((x86_reg)dstStride)\
         : "memory"\
     );\
     }while(--h);\
@@ -1071,8 +1071,8 @@ static av_noinline void OPNAME ## h264_qpel4_v_lowpass_ ## MMX(uint8_t *dst, uin
         QPEL_H264V(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP)\
         QPEL_H264V(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
          \
-        : "+a"(src), "+c"(dst)\
-        : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+        : "+r"(src), "+r"(dst)\
+        : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
         : "memory"\
     );\
 }\
@@ -1103,8 +1103,8 @@ static av_noinline void OPNAME ## h264_qpel4_hv_lowpass_ ## MMX(uint8_t *dst, in
             QPEL_H264HV(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, 2*8*3)\
             QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 3*8*3)\
              \
-            : "+a"(src)\
-            : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+            : "+r"(src)\
+            : "r"(tmp), "r"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
             : "memory"\
         );\
         tmp += 4;\
@@ -1132,8 +1132,8 @@ static av_noinline void OPNAME ## h264_qpel4_hv_lowpass_ ## MMX(uint8_t *dst, in
         "add %3, %1                 \n\t"\
         "decl %2                    \n\t"\
         " jnz 1b                    \n\t"\
-        : "+a"(tmp), "+c"(dst), "+g"(h)\
-        : "S"((x86_reg)dstStride)\
+        : "+r"(tmp), "+r"(dst), "+g"(h)\
+        : "r"((x86_reg)dstStride)\
         : "memory"\
     );\
 }\
@@ -1189,8 +1189,8 @@ static av_noinline void OPNAME ## h264_qpel8_h_lowpass_ ## MMX(uint8_t *dst, uin
         "add %4, %1                 \n\t"\
         "decl %2                    \n\t"\
         " jnz 1b                    \n\t"\
-        : "+a"(src), "+c"(dst), "+g"(h)\
-        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+        : "+r"(src), "+r"(dst), "+g"(h)\
+        : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
         : "memory"\
     );\
 }\
@@ -1250,8 +1250,8 @@ static av_noinline void OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(uint8_t *dst,
         "add %4, %0                 \n\t"\
         "add %4, %1                 \n\t"\
         "add %3, %2                 \n\t"\
-        : "+a"(src), "+c"(dst), "+d"(src2)\
-        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
+        : "+r"(src), "+r"(dst), "+r"(src2)\
+        : "r"((x86_reg)src2Stride), "r"((x86_reg)dstStride),\
           "m"(ff_pw_16)\
         : "memory"\
     );\
@@ -1289,8 +1289,8 @@ static av_noinline void OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(uint8_t *dst,
         QPEL_H264V(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, OP)\
         QPEL_H264V(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP)\
          \
-        : "+a"(src), "+c"(dst)\
-        : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+        : "+r"(src), "+r"(dst)\
+        : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
         : "memory"\
      );\
      if(h==16){\
@@ -1304,8 +1304,8 @@ static av_noinline void OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(uint8_t *dst,
             QPEL_H264V(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP)\
             QPEL_H264V(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
             \
-           : "+a"(src), "+c"(dst)\
-           : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+           : "+r"(src), "+r"(dst)\
+           : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
            : "memory"\
         );\
      }\
@@ -1342,8 +1342,8 @@ static av_always_inline void OPNAME ## h264_qpel8or16_hv1_lowpass_ ## MMX(int16_
             QPEL_H264HV(%%mm5, %%mm0, %%mm1, %%mm2, %%mm3, %%mm4, 5*48)\
             QPEL_H264HV(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, 6*48)\
             QPEL_H264HV(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, 7*48)\
-            : "+a"(src)\
-            : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+            : "+r"(src)\
+            : "r"(tmp), "r"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
             : "memory"\
         );\
         if(size==16){\
@@ -1356,8 +1356,8 @@ static av_always_inline void OPNAME ## h264_qpel8or16_hv1_lowpass_ ## MMX(int16_
                 QPEL_H264HV(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, 13*48)\
                 QPEL_H264HV(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, 14*48)\
                 QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
-                : "+a"(src)\
-                : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+                : "+r"(src)\
+                : "r"(tmp), "r"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
                 : "memory"\
             );\
         }\
@@ -1403,8 +1403,8 @@ static av_always_inline void OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(uint8_
         "add %3, %1                 \n\t"\
         "decl %2                    \n\t"\
         " jnz 1b                    \n\t"\
-        : "+a"(tmp), "+c"(dst), "+g"(h)\
-        : "S"((x86_reg)dstStride)\
+        : "+r"(tmp), "+r"(dst), "+g"(h)\
+        : "r"((x86_reg)dstStride)\
         : "memory"\
     );\
     tmp += 8 - size*24;\
@@ -1476,8 +1476,8 @@ static av_noinline void OPNAME ## pixels4_l2_shift5_ ## MMX(uint8_t *dst, int16_
         PAVGB"  (%0,%3), %%mm1          \n\t"\
         OP(%%mm0, (%2),    %%mm4, d)\
         OP(%%mm1, (%2,%4), %%mm5, d)\
-        :"+a"(src8), "+c"(src16), "+d"(dst)\
-        :"S"((x86_reg)src8Stride), "D"((x86_reg)dstStride)\
+        :"+r"(src8), "+r"(src16), "+r"(dst)\
+        :"r"((x86_reg)src8Stride), "r"((x86_reg)dstStride)\
         :"memory");\
 }\
 static av_noinline void OPNAME ## pixels8_l2_shift5_ ## MMX(uint8_t *dst, int16_t *src16, uint8_t *src8, int dstStride, int src8Stride, int h)\
@@ -1498,7 +1498,7 @@ static av_noinline void OPNAME ## pixels8_l2_shift5_ ## MMX(uint8_t *dst, int16_
         PAVGB"  (%0,%3), %%mm2          \n\t"\
         OP(%%mm0, (%2), %%mm5, q)\
         OP(%%mm2, (%2,%4), %%mm5, q)\
-        ::"a"(src8), "c"(src16), "d"(dst),\
+        ::"r"(src8), "r"(src16), "r"(dst),\
           "r"((x86_reg)src8Stride), "r"((x86_reg)dstStride)\
         :"memory");\
         src8 += 2L*src8Stride;\
@@ -1573,8 +1573,8 @@ static av_noinline void OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst,
         "add %4, %2                 \n\t"\
         "decl %3                    \n\t"\
         "jg 1b                      \n\t"\
-        : "+a"(src), "+c"(dst), "+d"(src2), "+g"(h)\
-        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
+        : "+r"(src), "+r"(dst), "+r"(src2), "+g"(h)\
+        : "r"((x86_reg)src2Stride), "r"((x86_reg)dstStride),\
           "m"(ff_pw_5), "m"(ff_pw_16)\
         : "memory"\
     );\
@@ -1631,8 +1631,8 @@ static av_noinline void OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(uint8_t *dst,
         "add %4, %0                 \n\t"\
         "add %4, %1                 \n\t"\
         "add %3, %2                 \n\t"\
-        : "+a"(src), "+c"(dst), "+d"(src2)\
-        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
+        : "+r"(src), "+r"(dst), "+r"(src2)\
+        : "r"((x86_reg)src2Stride), "r"((x86_reg)dstStride),\
           "m"(ff_pw_16)\
         : "memory"\
     );\
@@ -1674,8 +1674,8 @@ static av_noinline void OPNAME ## h264_qpel8_h_lowpass_ ## MMX(uint8_t *dst, uin
         "add %4, %1                 \n\t"\
         "decl %2                    \n\t"\
         " jnz 1b                    \n\t"\
-        : "+a"(src), "+c"(dst), "+g"(h)\
-        : "D"((x86_reg)srcStride), "S"((x86_reg)dstStride),\
+        : "+r"(src), "+r"(dst), "+g"(h)\
+        : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride),\
           "m"(ff_pw_5), "m"(ff_pw_16)\
         : "memory"\
     );\
@@ -1719,8 +1719,8 @@ static av_noinline void OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(uint8_t *dst,
         QPEL_H264V_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, OP)\
         QPEL_H264V_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, OP)\
          \
-        : "+a"(src), "+c"(dst)\
-        : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+        : "+r"(src), "+r"(dst)\
+        : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
         : "memory"\
     );\
     if(h==16){\
@@ -1734,8 +1734,8 @@ static av_noinline void OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(uint8_t *dst,
             QPEL_H264V_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, OP)\
             QPEL_H264V_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, OP)\
             \
-            : "+a"(src), "+c"(dst)\
-            : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+            : "+r"(src), "+r"(dst)\
+            : "r"((x86_reg)srcStride), "r"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
             : "memory"\
         );\
     }\
@@ -1777,8 +1777,8 @@ static av_always_inline void put_h264_qpel8or16_hv1_lowpass_sse2(int16_t *tmp, u
             QPEL_H264HV_XMM(%%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, 5*48)
             QPEL_H264HV_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, 6*48)
             QPEL_H264HV_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, 7*48)
-            : "+a"(src)
-            : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)
+            : "+r"(src)
+            : "r"(tmp), "r"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)
             : "memory"
         );
         if(size==16){
@@ -1791,8 +1791,8 @@ static av_always_inline void put_h264_qpel8or16_hv1_lowpass_sse2(int16_t *tmp, u
                 QPEL_H264HV_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, 13*48)
                 QPEL_H264HV_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, 14*48)
                 QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
-                : "+a"(src)
-                : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)
+                : "+r"(src)
+                : "r"(tmp), "r"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)
                 : "memory"
             );
         }
@@ -1855,8 +1855,8 @@ static av_always_inline void OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(uint8_
             "add %3, %1                 \n\t"\
             "decl %2                    \n\t"\
             " jnz 1b                    \n\t"\
-            : "+a"(tmp), "+c"(dst), "+g"(h)\
-            : "S"((x86_reg)dstStride)\
+            : "+r"(tmp), "+r"(dst), "+g"(h)\
+            : "r"((x86_reg)dstStride)\
             : "memory"\
         );\
     }else{\
@@ -1889,8 +1889,8 @@ static av_always_inline void OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(uint8_
             "add %3, %1                 \n\t"\
             "decl %2                    \n\t"\
             " jnz 1b                    \n\t"\
-            : "+a"(tmp), "+c"(dst), "+g"(h)\
-            : "S"((x86_reg)dstStride)\
+            : "+r"(tmp), "+r"(dst), "+g"(h)\
+            : "r"((x86_reg)dstStride)\
             : "memory"\
         );\
     }\
 

Comments


Name:
Comment:

© 2010 YourPaste.net - Disclaimer