[Ffmpeg-devel] building without optimizations, but with mmx enabled

Michael Niedermayer michaelni
Thu Aug 10 15:33:31 CEST 2006


On Thu, Aug 10, 2006 at 03:12:09PM +0200, Marco Manfredini wrote:
> I'm still embarrassed about my premature first post, but I hope you will not 
> ignore me for the rest of our life. Anyway, I'm trying to make -O0 builds to 
> understand the inner workings and stumbled on the "suffix or operands invalid 
> for `pshufw'" thing that has been discussed on February with no conclusion. 
> So:
> fdct_mmx.cx(415): pshufw_m2r(*(in + 4), mm5, 0x1B);
> gets expanded via: 
> #define         mmx_m2ri(op,mem,reg,imm) \
>         __asm__ __volatile__ (#op " %1, %0, %%" #reg \
>                               : /* nothing */ \
>                               : "X" (mem), "X" (imm))
> It looks like in my case the compiler puts *(in + 4) into ax on -O0 and passes 
> the register through the unconcerned "X" constraint, which is exactly what 
> "X" allows the compiler to do. My humble question now is, shouldn't this be 
> 	: "m" (mem), "i" (imm))
> instead? 

probably, but the whole mmx.h is broken and shouldnt be used anyway
if you want to fix it, grep for "X", they are all wrong at least


Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is

More information about the ffmpeg-devel mailing list