From ef3a19d5950ebe8a07c4e31b65ecf95e03fd85f5 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 12 Jan 2012 16:35:49 +0100 Subject: [PATCH] Fix compilation with yasm-0.6.2 --- libavcodec/x86/imdct36_sse.asm | 4 ++++ libavcodec/x86/proresdsp.asm | 2 ++ libavcodec/x86/v210-init.c | 4 ++-- libavcodec/x86/v210.asm | 4 ++++ libswscale/x86/input.asm | 2 ++ libswscale/x86/output.asm | 4 ++++ libswscale/x86/swscale_mmx.c | 2 +- 7 files changed, 19 insertions(+), 3 deletions(-) diff --git a/libavcodec/x86/imdct36_sse.asm b/libavcodec/x86/imdct36_sse.asm index 2908459db7..ffca3530a4 100644 --- a/libavcodec/x86/imdct36_sse.asm +++ b/libavcodec/x86/imdct36_sse.asm @@ -371,8 +371,10 @@ DEFINE_IMDCT INIT_XMM ssse3 DEFINE_IMDCT +%ifdef HAVE_AVX INIT_XMM avx DEFINE_IMDCT +%endif INIT_XMM sse @@ -717,5 +719,7 @@ cglobal four_imdct36_float, 5,5,8, out, buf, in, win, tmp INIT_XMM sse DEFINE_FOUR_IMDCT +%ifdef HAVE_AVX INIT_XMM avx DEFINE_FOUR_IMDCT +%endif diff --git a/libavcodec/x86/proresdsp.asm b/libavcodec/x86/proresdsp.asm index d674308c05..f733bdf7cb 100644 --- a/libavcodec/x86/proresdsp.asm +++ b/libavcodec/x86/proresdsp.asm @@ -306,7 +306,9 @@ INIT_XMM idct_put_fn sse2, 16 INIT_XMM idct_put_fn sse4, 16 +%ifdef HAVE_AVX INIT_AVX idct_put_fn avx, 16 +%endif %endif diff --git a/libavcodec/x86/v210-init.c b/libavcodec/x86/v210-init.c index 4dd6d6de8a..425c6284c5 100644 --- a/libavcodec/x86/v210-init.c +++ b/libavcodec/x86/v210-init.c @@ -34,14 +34,14 @@ av_cold void v210_x86_init(V210DecContext *s) if (cpu_flags & AV_CPU_FLAG_SSSE3) s->unpack_frame = ff_v210_planar_unpack_aligned_ssse3; - if (cpu_flags & AV_CPU_FLAG_AVX) + if (HAVE_AVX && cpu_flags & AV_CPU_FLAG_AVX) s->unpack_frame = ff_v210_planar_unpack_aligned_avx; } else { if (cpu_flags & AV_CPU_FLAG_SSSE3) s->unpack_frame = ff_v210_planar_unpack_unaligned_ssse3; - if (cpu_flags & AV_CPU_FLAG_AVX) + if (HAVE_AVX && cpu_flags & AV_CPU_FLAG_AVX) s->unpack_frame = ff_v210_planar_unpack_unaligned_avx; } #endif diff --git a/libavcodec/x86/v210.asm b/libavcodec/x86/v210.asm index 344bed0beb..9ce17c2ed5 100644 --- a/libavcodec/x86/v210.asm +++ b/libavcodec/x86/v210.asm @@ -76,10 +76,14 @@ cglobal v210_planar_unpack_%1_%2, 5, 5 INIT_XMM v210_planar_unpack unaligned, ssse3 +%ifdef HAVE_AVX INIT_AVX v210_planar_unpack unaligned, avx +%endif INIT_XMM v210_planar_unpack aligned, ssse3 +%ifdef HAVE_AVX INIT_AVX v210_planar_unpack aligned, avx +%endif diff --git a/libswscale/x86/input.asm b/libswscale/x86/input.asm index 0e54522ca7..b1ee82cd0a 100644 --- a/libswscale/x86/input.asm +++ b/libswscale/x86/input.asm @@ -233,6 +233,7 @@ YUYV_TO_UV_FN 3, uyvy NVXX_TO_UV_FN 5, nv12 NVXX_TO_UV_FN 5, nv21 +%ifdef HAVE_AVX INIT_XMM avx ; in theory, we could write a yuy2-to-y using vpand (i.e. AVX), but ; that's not faster in practice @@ -240,3 +241,4 @@ YUYV_TO_UV_FN 3, yuyv YUYV_TO_UV_FN 3, uyvy, 1 NVXX_TO_UV_FN 5, nv12 NVXX_TO_UV_FN 5, nv21 +%endif diff --git a/libswscale/x86/output.asm b/libswscale/x86/output.asm index 0ec2038d1d..ff72677b9a 100644 --- a/libswscale/x86/output.asm +++ b/libswscale/x86/output.asm @@ -265,10 +265,12 @@ yuv2planeX_fn sse4, 9, 7, 5 yuv2planeX_fn sse4, 10, 7, 5 yuv2planeX_fn sse4, 16, 8, 5 +%ifdef HAVE_AVX INIT_AVX yuv2planeX_fn avx, 8, 10, 7 yuv2planeX_fn avx, 9, 7, 5 yuv2planeX_fn avx, 10, 7, 5 +%endif ; %1=outout-bpc, %2=alignment (u/a) %macro yuv2plane1_mainloop 2 @@ -402,8 +404,10 @@ yuv2plane1_fn 16, 6, 3 INIT_XMM sse4 yuv2plane1_fn 16, 5, 3 +%ifdef HAVE_AVX INIT_XMM avx yuv2plane1_fn 8, 5, 5 yuv2plane1_fn 9, 5, 3 yuv2plane1_fn 10, 5, 3 yuv2plane1_fn 16, 5, 3 +%endif diff --git a/libswscale/x86/swscale_mmx.c b/libswscale/x86/swscale_mmx.c index 66c4f69394..d0bb861618 100644 --- a/libswscale/x86/swscale_mmx.c +++ b/libswscale/x86/swscale_mmx.c @@ -465,7 +465,7 @@ switch(c->dstBpc){ \ c->yuv2plane1 = ff_yuv2plane1_16_sse4; } - if (cpu_flags & AV_CPU_FLAG_AVX) { + if (HAVE_AVX && cpu_flags & AV_CPU_FLAG_AVX) { ASSIGN_VSCALEX_FUNC(c->yuv2planeX, avx,); ASSIGN_VSCALE_FUNC(c->yuv2plane1, avx, avx, 1);