[FFmpeg-devel] Patch: Inline asm fixes for Intel compiler on Windows

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sat Dec 28 15:23:51 CET 2013


> -    __asm__ ("cltd                   \n\t"      \
> +    __asm__ ("cdq                    \n\t"      \

This one will break Solaris for example.

> -    "pand "MANGLE(mask0010)", %%mm0 \n" /* -- -- -- -- G1 B1 -- -- */\
> +    "pand "#_mask0010",       %%mm0 \n" /* -- -- -- -- G1 B1 -- -- */\

This one should have told you that ICC doesn't have a problem with the
symbols but that MANGLE isn't working right.

> libavutil/x86/asm.h:#    define LOCAL_MANGLE(a) #a "(%%rip)"
> libavutil/x86/asm.h:#    define LOCAL_MANGLE(a) #a
> libavutil/x86/asm.h:#define MANGLE(a) EXTERN_PREFIX LOCAL_MANGLE(a)

As long as EXTERN_PREFIX is "_" as it should be on Windows, these two
lines above should produce _exactly_ the same string.


More information about the ffmpeg-devel mailing list