libav-0.7.4: fix build with gcc-4.7

A cmp instruction with two constants is invalid, therefore 'g'
constraint is not correct but must be "rm" instead.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Martin Jansa
2012-04-30 16:20:13 +02:00
parent 8457644a41
commit dff45fb21c
2 changed files with 61 additions and 2 deletions
@@ -0,0 +1,57 @@
Backport http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=5f654897e325349dacf2546674e0510bb72ecb50;hp=250cebeb3b348c3da71f9972eb500d6005dc01f1
Fixes these errors on x86
libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-status: Backport
Index: b/libavcodec/x86/h264_qpel_mmx.c
===================================================================
--- a/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:39:41.324522051 -0700
+++ b/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:54:08.152564075 -0700
@@ -398,7 +398,7 @@
"2: \n\t"\
\
: "+a"(src), "+c"(dst)\
- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
: "memory"\
);\
src += 4-(h+5)*srcStride;\
@@ -446,7 +446,7 @@
QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
"2: \n\t"\
: "+a"(src)\
- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)\
+ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)\
: "memory"\
);\
tmp += 4;\
@@ -823,7 +823,7 @@
"2: \n\t"\
\
: "+a"(src), "+c"(dst)\
- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
: XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3", \
"%xmm4", "%xmm5", "%xmm6", "%xmm7",)\
"memory"\
@@ -878,7 +878,7 @@
QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
"2: \n\t"
: "+a"(src)
- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)
+ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)
: XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3",
"%xmm4", "%xmm5", "%xmm6", "%xmm7",)
"memory"
@@ -10,9 +10,11 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
SRCREV = "d4653e882fee5a2876c3878bc23d26799e3380ad"
PV = "0.7.4"
PR = "${INC_PR}.0"
PR = "${INC_PR}.1"
SRC_URI = "git://git.libav.org/libav.git;protocol=git;branch=release/0.7"
SRC_URI = "git://git.libav.org/libav.git;protocol=git;branch=release/0.7 \
file://h264_qpel_mmx.patch \
"
S = "${WORKDIR}/git"