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

Carl Eugen Hoyos cehoyos at ag.or.at
Sat Feb 8 10:25:07 CET 2014


Matt Oliver <protogonoi <at> gmail.com> writes:

> Next round of patches

They do not apply, please rebase your local checkout.

> check_cc <<EOF && enable inline_asm_direct_symbol_refs
> void foo(void){ int test; __asm__ volatile("movl test2, %eax"); }
> #EOF

Isn't the following sufficient?
check_inline_asm inline_asm_direct_symbol_refs '"mov test, %eax\n"'

> diff --git a/libavcodec/x86/cabac.h b/libavcodec/x86/cabac.h
> index 31cb36a..f4b3a24 100644
> --- a/libavcodec/x86/cabac.h
> +++ b/libavcodec/x86/cabac.h
> @@ -33,6 +33,11 @@
>  #else
>  #       define BROKEN_COMPILER 0
>  #endif
> +#if   (defined(__INTEL_COMPILER) && defined(_MSC_VER))
> +#       define BROKEN_REGISTER_ALLOCATION 1
> +#else
> +#       define BROKEN_REGISTER_ALLOCATION 0
> +#endif

> diff --git a/libavcodec/x86/vp56_arith.h b/libavcodec/x86/vp56_arith.h
> index e71dbf8..ba01412 100644
> --- a/libavcodec/x86/vp56_arith.h
> +++ b/libavcodec/x86/vp56_arith.h
> @@ -24,7 +24,13 @@
>  #ifndef AVCODEC_X86_VP56_ARITH_H
>  #define AVCODEC_X86_VP56_ARITH_H
> 
> +#if   (defined(__INTEL_COMPILER) && defined(_MSC_VER) && ARCH_X86_64)
> +#       define BROKEN_REGISTER_ALLOCATION 1
> +#else
> +#       define BROKEN_REGISTER_ALLOCATION 0
> +#endif

Are they really different (ARCH_X86_64)?
If not, I think you should try to avoid the duplication.

Could you add the compilation error you see that makes 
patch 5 necessary?
(Sorry if you did already.)

Carl Eugen



More information about the ffmpeg-devel mailing list