[FFmpeg-devel] Hacks on FATE

David Conrad lessen42
Mon Jun 22 08:44:49 CEST 2009


On Jun 18, 2009, at 6:34 AM, M?ns Rullg?rd wrote:

> Michael Kostylev <michael.kostylev at gmail.com> writes:
>
>> fix building with i386-*-gcc-3.3 -fPIC
>>
>> --- ffmpeg.orig/libavcodec/x86/cavsdsp_mmx.c
>> +++ ffmpeg/libavcodec/x86/cavsdsp_mmx.c
>> @@ -280,7 +280,7 @@
>>         VOP(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP)\
>>         \
>>         : "+a"(src), "+c"(dst)\
>> -        : "S"((x86_reg)srcStride), "r"((x86_reg)dstStride),  
>> "m"(ADD), "m"(MUL1), "m"(MUL2)\
>> +        : "S"((x86_reg)srcStride), "rm"((x86_reg)dstStride),  
>> "m"(ADD), "m"(MUL1), "m"(MUL2)\
>>         : "memory"\
>>      );\
>>      if(h==16){\
>> @@ -295,7 +295,7 @@
>>             VOP(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
>>             \
>>            : "+a"(src), "+c"(dst)\
>> -           : "S"((x86_reg)srcStride), "r"((x86_reg)dstStride),  
>> "m"(ADD),  "m"(MUL1), "m"(MUL2)\
>> +           : "S"((x86_reg)srcStride), "rm"((x86_reg)dstStride),  
>> "m"(ADD),  "m"(MUL1), "m"(MUL2)\
>>            : "memory"\
>>         );\
>>      }\
>
> An 'm' constraint requires an lvalue operand (or ought to do (llvm
> does)), which a cast expression is not.

This happens to be the same exact same constraint that tripped up gcc  
on OS X as well; if you instead change "a","c", and "S" (or some  
subset) to "r", does it work? It shouldn't need an "m" constraint at  
all.



More information about the ffmpeg-devel mailing list