[FFmpeg-cvslog] x86: Split inline and external assembly #ifdefs

Diego Biurrun git at videolan.org
Fri Aug 31 13:39:12 CEST 2012


ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Tue Aug 28 14:53:33 2012 +0200| [17337f54c057accf12b0e87d12f576194ad085a8] | committer: Diego Biurrun

x86: Split inline and external assembly #ifdefs

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=17337f54c057accf12b0e87d12f576194ad085a8
---

 libavcodec/dct-test.c                   |    4 ++--
 libavcodec/imgconvert.c                 |    8 ++++----
 libavcodec/x86/ac3dsp.asm               |    8 ++++----
 libavcodec/x86/dct32.asm                |    2 +-
 libavcodec/x86/dsputil.asm              |    6 +++---
 libavcodec/x86/dsputil_mmx.c            |   21 +++++++++----------
 libavcodec/x86/dsputilenc_mmx.c         |    8 ++++----
 libavcodec/x86/fft.asm                  |    8 ++++----
 libavcodec/x86/h264_chromamc_10bit.asm  |    4 ++--
 libavcodec/x86/h264_idct_10bit.asm      |   16 +++++++--------
 libavcodec/x86/h264_intrapred_10bit.asm |   26 +++++++++++------------
 libavcodec/x86/h264_qpel.c              |    4 ++--
 libavcodec/x86/h264dsp_init.c           |   10 ++++-----
 libavcodec/x86/mpegvideoenc.c           |   30 +++++++++++----------------
 libavfilter/x86/gradfun.c               |   18 ++++++++--------
 libavfilter/x86/yadif.c                 |   14 ++++++-------
 libavresample/x86/audio_convert.asm     |   34 +++++++++++++++----------------
 libavresample/x86/audio_mix.asm         |   10 ++++-----
 libavutil/internal.h                    |    6 +++---
 libavutil/x86/float_dsp.asm             |    4 ++--
 libswscale/swscale.c                    |    2 +-
 libswscale/utils.c                      |   12 +++++------
 libswscale/x86/swscale.c                |    6 +++---
 libswscale/x86/yuv2rgb.c                |   10 ++++-----
 24 files changed, 130 insertions(+), 141 deletions(-)

diff --git a/libavcodec/dct-test.c b/libavcodec/dct-test.c
index 21a3397..72d2d80 100644
--- a/libavcodec/dct-test.c
+++ b/libavcodec/dct-test.c
@@ -85,7 +85,7 @@ static const struct algo fdct_tab[] = {
     { "IJG-AAN-INT",    ff_fdct_ifast,         SCALE_PERM },
     { "IJG-LLM-INT",    ff_jpeg_fdct_islow_8,  NO_PERM    },
 
-#if HAVE_MMX && HAVE_INLINE_ASM
+#if HAVE_MMX_INLINE
     { "MMX",            ff_fdct_mmx,           NO_PERM,   AV_CPU_FLAG_MMX     },
     { "MMXEXT",         ff_fdct_mmx2,          NO_PERM,   AV_CPU_FLAG_MMXEXT  },
     { "SSE2",           ff_fdct_sse2,          NO_PERM,   AV_CPU_FLAG_SSE2    },
@@ -108,7 +108,7 @@ static const struct algo idct_tab[] = {
     { "INT",            ff_j_rev_dct,          MMX_PERM },
     { "SIMPLE-C",       ff_simple_idct_8,      NO_PERM  },
 
-#if HAVE_MMX && HAVE_INLINE_ASM
+#if HAVE_MMX_INLINE
     { "SIMPLE-MMX",     ff_simple_idct_mmx,  MMX_SIMPLE_PERM, AV_CPU_FLAG_MMX },
     { "XVID-MMX",       ff_idct_xvid_mmx,      NO_PERM,   AV_CPU_FLAG_MMX,  1 },
     { "XVID-MMXEXT",    ff_idct_xvid_mmx2,     NO_PERM,   AV_CPU_FLAG_MMXEXT, 1 },
diff --git a/libavcodec/imgconvert.c b/libavcodec/imgconvert.c
index 62ec35a..f6c5e3c 100644
--- a/libavcodec/imgconvert.c
+++ b/libavcodec/imgconvert.c
@@ -39,7 +39,7 @@
 #include "libavutil/pixdesc.h"
 #include "libavutil/imgutils.h"
 
-#if HAVE_MMX && HAVE_YASM
+#if HAVE_MMX_EXTERNAL
 #include "x86/dsputil_mmx.h"
 #endif
 
@@ -52,7 +52,7 @@
 #define FF_PIXEL_PACKED   1 /**< only one components containing all the channels */
 #define FF_PIXEL_PALETTE  2  /**< one components containing indexes for a palette */
 
-#if HAVE_MMX && HAVE_YASM
+#if HAVE_MMX_EXTERNAL
 #define deinterlace_line_inplace ff_deinterlace_line_inplace_mmx
 #define deinterlace_line         ff_deinterlace_line_mmx
 #else
@@ -877,7 +877,7 @@ int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width,
     return 0;
 }
 
-#if !(HAVE_MMX && HAVE_YASM)
+#if !HAVE_MMX_EXTERNAL
 /* filter parameters: [-1 4 2 4 -1] // 8 */
 static void deinterlace_line_c(uint8_t *dst,
                              const uint8_t *lum_m4, const uint8_t *lum_m3,
@@ -926,7 +926,7 @@ static void deinterlace_line_inplace_c(uint8_t *lum_m4, uint8_t *lum_m3,
         lum++;
     }
 }
-#endif
+#endif /* !HAVE_MMX_EXTERNAL */
 
 /* deinterlacing : 2 temporal taps, 3 spatial taps linear filter. The
    top field is copied as is, but the bottom field is deinterlaced
diff --git a/libavcodec/x86/ac3dsp.asm b/libavcodec/x86/ac3dsp.asm
index ef828bb..176fd3d 100644
--- a/libavcodec/x86/ac3dsp.asm
+++ b/libavcodec/x86/ac3dsp.asm
@@ -73,7 +73,7 @@ AC3_EXPONENT_MIN mmx
 %define LOOP_ALIGN ALIGN 16
 AC3_EXPONENT_MIN mmxext
 %endif
-%if HAVE_SSE
+%if HAVE_SSE2_EXTERNAL
 INIT_XMM
 AC3_EXPONENT_MIN sse2
 %endif
@@ -385,7 +385,7 @@ cglobal ac3_compute_mantissa_size_sse2, 1,2,4, mant_cnt, sum
     pabsd    %1, %1
 %endmacro
 
-%if HAVE_AMD3DNOW
+%if HAVE_AMD3DNOW_EXTERNAL
 INIT_MMX
 cglobal ac3_extract_exponents_3dnow, 3,3,0, exp, coef, len
     add      expq, lenq
@@ -453,11 +453,11 @@ cglobal ac3_extract_exponents_%1, 3,3,4, exp, coef, len
     REP_RET
 %endmacro
 
-%if HAVE_SSE
+%if HAVE_SSE2_EXTERNAL
 INIT_XMM
 %define PABSD PABSD_MMX
 AC3_EXTRACT_EXPONENTS sse2
-%if HAVE_SSSE3
+%if HAVE_SSSE3_EXTERNAL
 %define PABSD PABSD_SSSE3
 AC3_EXTRACT_EXPONENTS ssse3
 %endif
diff --git a/libavcodec/x86/dct32.asm b/libavcodec/x86/dct32.asm
index 9d6169c..58ee8d3 100644
--- a/libavcodec/x86/dct32.asm
+++ b/libavcodec/x86/dct32.asm
@@ -193,7 +193,7 @@ ps_p1p1m1m1: dd 0, 0, 0x80000000, 0x80000000, 0, 0, 0x80000000, 0x80000000
 
 INIT_YMM avx
 SECTION_TEXT
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 ; void ff_dct32_float_avx(FFTSample *out, const FFTSample *in)
 cglobal dct32_float, 2,3,8, out, in, tmp
     ; pass 1
diff --git a/libavcodec/x86/dsputil.asm b/libavcodec/x86/dsputil.asm
index d6cf824..fcb1b6d 100644
--- a/libavcodec/x86/dsputil.asm
+++ b/libavcodec/x86/dsputil.asm
@@ -1169,7 +1169,7 @@ ALIGN 16
 
 INIT_XMM sse
 VECTOR_FMUL_REVERSE
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 VECTOR_FMUL_REVERSE
 %endif
@@ -1199,7 +1199,7 @@ ALIGN 16
 
 INIT_XMM sse
 VECTOR_FMUL_ADD
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 VECTOR_FMUL_ADD
 %endif
@@ -1245,7 +1245,7 @@ cglobal butterflies_float_interleave, 4,4,3, dst, src0, src1, len
 
 INIT_XMM sse
 BUTTERFLIES_FLOAT_INTERLEAVE
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 BUTTERFLIES_FLOAT_INTERLEAVE
 %endif
diff --git a/libavcodec/x86/dsputil_mmx.c b/libavcodec/x86/dsputil_mmx.c
index 4fbb146..d950506 100644
--- a/libavcodec/x86/dsputil_mmx.c
+++ b/libavcodec/x86/dsputil_mmx.c
@@ -2812,7 +2812,7 @@ static void dsputil_init_3dnow(DSPContext *c, AVCodecContext *avctx,
 static void dsputil_init_3dnowext(DSPContext *c, AVCodecContext *avctx,
                                   int mm_flags)
 {
-#if HAVE_6REGS && HAVE_INLINE_ASM
+#if HAVE_AMD3DNOWEXT_INLINE && HAVE_6REGS
     c->vector_fmul_window  = vector_fmul_window_3dnowext;
 #endif
 }
@@ -2926,11 +2926,10 @@ static void dsputil_init_sse2(DSPContext *c, AVCodecContext *avctx,
 static void dsputil_init_ssse3(DSPContext *c, AVCodecContext *avctx,
                                int mm_flags)
 {
-#if HAVE_SSSE3
     const int high_bit_depth = avctx->bits_per_raw_sample > 8;
     const int bit_depth      = avctx->bits_per_raw_sample;
 
-#if HAVE_INLINE_ASM
+#if HAVE_SSSE3_INLINE
     if (!high_bit_depth && CONFIG_H264QPEL) {
         H264_QPEL_FUNCS(1, 0, ssse3);
         H264_QPEL_FUNCS(1, 1, ssse3);
@@ -2945,8 +2944,9 @@ static void dsputil_init_ssse3(DSPContext *c, AVCodecContext *avctx,
         H264_QPEL_FUNCS(3, 2, ssse3);
         H264_QPEL_FUNCS(3, 3, ssse3);
     }
-#endif /* HAVE_INLINE_ASM */
-#if HAVE_YASM
+#endif /* HAVE_SSSE3_INLINE */
+
+#if HAVE_SSSE3_EXTERNAL
     if (bit_depth == 10 && CONFIG_H264QPEL) {
         H264_QPEL_FUNCS_10(1, 0, ssse3_cache64);
         H264_QPEL_FUNCS_10(2, 0, ssse3_cache64);
@@ -2969,21 +2969,20 @@ static void dsputil_init_ssse3(DSPContext *c, AVCodecContext *avctx,
     if (!(mm_flags & (AV_CPU_FLAG_SSE42|AV_CPU_FLAG_3DNOW))) // cachesplit
         c->scalarproduct_and_madd_int16 = ff_scalarproduct_and_madd_int16_ssse3;
     c->bswap_buf = ff_bswap32_buf_ssse3;
-#endif
-#endif
+#endif /* HAVE_SSSE3_EXTERNAL */
 }
 
 static void dsputil_init_sse4(DSPContext *c, AVCodecContext *avctx,
                               int mm_flags)
 {
-#if HAVE_YASM
+#if HAVE_SSE4_EXTERNAL
     c->vector_clip_int32 = ff_vector_clip_int32_sse4;
-#endif
+#endif /* HAVE_SSE4_EXTERNAL */
 }
 
 static void dsputil_init_avx(DSPContext *c, AVCodecContext *avctx, int mm_flags)
 {
-#if HAVE_AVX && HAVE_YASM
+#if HAVE_AVX_EXTERNAL
     const int bit_depth = avctx->bits_per_raw_sample;
 
     if (bit_depth == 10) {
@@ -3003,7 +3002,7 @@ static void dsputil_init_avx(DSPContext *c, AVCodecContext *avctx, int mm_flags)
     c->butterflies_float_interleave = ff_butterflies_float_interleave_avx;
     c->vector_fmul_reverse = ff_vector_fmul_reverse_avx;
     c->vector_fmul_add = ff_vector_fmul_add_avx;
-#endif
+#endif /* HAVE_AVX_EXTERNAL */
 }
 
 void ff_dsputil_init_mmx(DSPContext *c, AVCodecContext *avctx)
diff --git a/libavcodec/x86/dsputilenc_mmx.c b/libavcodec/x86/dsputilenc_mmx.c
index c0ef0ba..1033132 100644
--- a/libavcodec/x86/dsputilenc_mmx.c
+++ b/libavcodec/x86/dsputilenc_mmx.c
@@ -982,7 +982,7 @@ DCT_SAD_FUNC(mmx2)
 DCT_SAD_FUNC(sse2)
 #undef MMABS
 
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
 #define MMABS(a,z)    MMABS_SSSE3(a,z)
 DCT_SAD_FUNC(ssse3)
 #undef MMABS
@@ -1062,7 +1062,7 @@ static int ssd_int8_vs_int16_mmx(const int8_t *pix1, const int16_t *pix2, int si
 #undef SCALE_OFFSET
 #undef PMULHRW
 
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
 #undef PHADDD
 #define DEF(x) x ## _ssse3
 #define SET_RND(x)
@@ -1081,7 +1081,7 @@ static int ssd_int8_vs_int16_mmx(const int8_t *pix1, const int16_t *pix2, int si
 #undef SCALE_OFFSET
 #undef PMULHRW
 #undef PHADDD
-#endif //HAVE_SSSE3
+#endif /* HAVE_SSSE3_INLINE */
 
 #endif /* HAVE_INLINE_ASM */
 
@@ -1161,7 +1161,7 @@ void ff_dsputilenc_init_mmx(DSPContext* c, AVCodecContext *avctx)
             c->sum_abs_dctelem= sum_abs_dctelem_sse2;
         }
 
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
         if(mm_flags & AV_CPU_FLAG_SSSE3){
             if(!(avctx->flags & CODEC_FLAG_BITEXACT)){
                 c->try_8x8basis= try_8x8basis_ssse3;
diff --git a/libavcodec/x86/fft.asm b/libavcodec/x86/fft.asm
index 645253c..f054298 100644
--- a/libavcodec/x86/fft.asm
+++ b/libavcodec/x86/fft.asm
@@ -305,7 +305,7 @@ IF%1 mova  Z(1), m5
 
 INIT_YMM avx
 
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 align 16
 fft8_avx:
     mova      m0, Z(0)
@@ -552,7 +552,7 @@ DEFINE_ARGS zc, w, n, o1, o3
 
 INIT_YMM avx
 
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 %macro INTERL_AVX 5
     vunpckhps      %3, %2, %1
     vunpcklps      %2, %2, %1
@@ -793,7 +793,7 @@ align 8
 dispatch_tab %+ fullsuffix: pointer list_of_fft
 %endmacro ; DECL_FFT
 
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 DECL_FFT 6
 DECL_FFT 6, _interleave
@@ -1100,6 +1100,6 @@ DECL_IMDCT POSROTATESHUF_3DNOW
 
 INIT_YMM avx
 
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 DECL_IMDCT POSROTATESHUF_AVX
 %endif
diff --git a/libavcodec/x86/h264_chromamc_10bit.asm b/libavcodec/x86/h264_chromamc_10bit.asm
index f8a2cff..bcdb27c 100644
--- a/libavcodec/x86/h264_chromamc_10bit.asm
+++ b/libavcodec/x86/h264_chromamc_10bit.asm
@@ -252,7 +252,7 @@ cglobal %1_h264_chroma_mc2_10, 6,7
 %define CHROMAMC_AVG  NOTHING
 INIT_XMM sse2
 CHROMA_MC8 put
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CHROMA_MC8 put
 %endif
@@ -264,7 +264,7 @@ CHROMA_MC2 put
 %define PAVG          pavgw
 INIT_XMM sse2
 CHROMA_MC8 avg
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CHROMA_MC8 avg
 %endif
diff --git a/libavcodec/x86/h264_idct_10bit.asm b/libavcodec/x86/h264_idct_10bit.asm
index 4b80669..6afcee2 100644
--- a/libavcodec/x86/h264_idct_10bit.asm
+++ b/libavcodec/x86/h264_idct_10bit.asm
@@ -80,7 +80,7 @@ cglobal h264_idct_add_10, 3,3
 
 INIT_XMM sse2
 IDCT_ADD_10
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 IDCT_ADD_10
 %endif
@@ -110,7 +110,7 @@ add4x4_idct %+ SUFFIX:
 INIT_XMM sse2
 ALIGN 16
 ADD4x4IDCT
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 ALIGN 16
 ADD4x4IDCT
@@ -150,7 +150,7 @@ cglobal h264_idct_add16_10, 5,6
 
 INIT_XMM sse2
 IDCT_ADD16_10
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 IDCT_ADD16_10
 %endif
@@ -216,7 +216,7 @@ cglobal h264_idct8_dc_add_10,3,3,7
 
 INIT_XMM sse2
 IDCT8_DC_ADD
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 IDCT8_DC_ADD
 %endif
@@ -287,7 +287,7 @@ cglobal h264_idct_add16intra_10,5,7,8
 
 INIT_XMM sse2
 IDCT_ADD16INTRA_10
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 IDCT_ADD16INTRA_10
 %endif
@@ -324,7 +324,7 @@ cglobal h264_idct_add8_10,5,8,7
 
 INIT_XMM sse2
 IDCT_ADD8
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 IDCT_ADD8
 %endif
@@ -501,7 +501,7 @@ h264_idct8_add1_10 %+ SUFFIX:
 
 INIT_XMM sse2
 IDCT8_ADD
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 IDCT8_ADD
 %endif
@@ -541,7 +541,7 @@ cglobal h264_idct8_add4_10, 0,7,16
 
 INIT_XMM sse2
 IDCT8_ADD4
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 IDCT8_ADD4
 %endif
diff --git a/libavcodec/x86/h264_intrapred_10bit.asm b/libavcodec/x86/h264_intrapred_10bit.asm
index 1423b56..529134e 100644
--- a/libavcodec/x86/h264_intrapred_10bit.asm
+++ b/libavcodec/x86/h264_intrapred_10bit.asm
@@ -84,7 +84,7 @@ INIT_XMM
 PRED4x4_DR sse2
 %define PALIGNR PALIGNR_SSSE3
 PRED4x4_DR ssse3
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED4x4_DR avx
 %endif
@@ -124,7 +124,7 @@ INIT_XMM
 PRED4x4_VR sse2
 %define PALIGNR PALIGNR_SSSE3
 PRED4x4_VR ssse3
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED4x4_VR avx
 %endif
@@ -167,7 +167,7 @@ INIT_XMM
 PRED4x4_HD sse2
 %define PALIGNR PALIGNR_SSSE3
 PRED4x4_HD ssse3
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED4x4_HD avx
 %endif
@@ -238,7 +238,7 @@ cglobal pred4x4_down_left_10_%1, 3,3
 
 INIT_XMM
 PRED4x4_DL sse2
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED4x4_DL avx
 %endif
@@ -267,7 +267,7 @@ cglobal pred4x4_vertical_left_10_%1, 3,3
 
 INIT_XMM
 PRED4x4_VL sse2
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED4x4_VL avx
 %endif
@@ -577,7 +577,7 @@ cglobal pred8x8l_top_dc_10_%1, 4,4,6
 
 INIT_XMM
 PRED8x8L_TOP_DC sse2
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED8x8L_TOP_DC avx
 %endif
@@ -636,7 +636,7 @@ cglobal pred8x8l_dc_10_%1, 4,6,6
 
 INIT_XMM
 PRED8x8L_DC sse2
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED8x8L_DC avx
 %endif
@@ -671,7 +671,7 @@ cglobal pred8x8l_vertical_10_%1, 4,4,6
 
 INIT_XMM
 PRED8x8L_VERTICAL sse2
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED8x8L_VERTICAL avx
 %endif
@@ -728,7 +728,7 @@ INIT_XMM
 PRED8x8L_HORIZONTAL sse2
 %define PALIGNR PALIGNR_SSSE3
 PRED8x8L_HORIZONTAL ssse3
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED8x8L_HORIZONTAL avx
 %endif
@@ -797,7 +797,7 @@ INIT_XMM
 PRED8x8L_DOWN_LEFT sse2
 %define PALIGNR PALIGNR_SSSE3
 PRED8x8L_DOWN_LEFT ssse3
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED8x8L_DOWN_LEFT avx
 %endif
@@ -872,7 +872,7 @@ INIT_XMM
 PRED8x8L_DOWN_RIGHT sse2
 %define PALIGNR PALIGNR_SSSE3
 PRED8x8L_DOWN_RIGHT ssse3
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED8x8L_DOWN_RIGHT avx
 %endif
@@ -943,7 +943,7 @@ INIT_XMM
 PRED8x8L_VERTICAL_RIGHT sse2
 %define PALIGNR PALIGNR_SSSE3
 PRED8x8L_VERTICAL_RIGHT ssse3
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED8x8L_VERTICAL_RIGHT avx
 %endif
@@ -1005,7 +1005,7 @@ INIT_XMM
 PRED8x8L_HORIZONTAL_UP sse2
 %define PALIGNR PALIGNR_SSSE3
 PRED8x8L_HORIZONTAL_UP ssse3
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_AVX
 PRED8x8L_HORIZONTAL_UP avx
 %endif
diff --git a/libavcodec/x86/h264_qpel.c b/libavcodec/x86/h264_qpel.c
index fc1635d..284c85a 100644
--- a/libavcodec/x86/h264_qpel.c
+++ b/libavcodec/x86/h264_qpel.c
@@ -1174,7 +1174,7 @@ QPEL_H264_V_XMM(put_,       PUT_OP, sse2)
 QPEL_H264_V_XMM(avg_,  AVG_MMX2_OP, sse2)
 QPEL_H264_HV_XMM(put_,       PUT_OP, sse2)
 QPEL_H264_HV_XMM(avg_,  AVG_MMX2_OP, sse2)
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
 QPEL_H264_H_XMM(put_,       PUT_OP, ssse3)
 QPEL_H264_H_XMM(avg_,  AVG_MMX2_OP, ssse3)
 QPEL_H264_HV2_XMM(put_,       PUT_OP, ssse3)
@@ -1188,7 +1188,7 @@ H264_MC_4816(3dnow)
 H264_MC_4816(mmx2)
 H264_MC_816(H264_MC_V, sse2)
 H264_MC_816(H264_MC_HV, sse2)
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
 H264_MC_816(H264_MC_H, ssse3)
 H264_MC_816(H264_MC_HV, ssse3)
 #endif
diff --git a/libavcodec/x86/h264dsp_init.c b/libavcodec/x86/h264dsp_init.c
index f24f751..7be78a8 100644
--- a/libavcodec/x86/h264dsp_init.c
+++ b/libavcodec/x86/h264dsp_init.c
@@ -39,7 +39,7 @@ IDCT_ADD_FUNC(8_dc, 10, sse2)
 IDCT_ADD_FUNC(8, 8, mmx)
 IDCT_ADD_FUNC(8, 8, sse2)
 IDCT_ADD_FUNC(8, 10, sse2)
-#if HAVE_AVX
+#if HAVE_AVX_EXTERNAL
 IDCT_ADD_FUNC(, 10, avx)
 IDCT_ADD_FUNC(8_dc, 10, avx)
 IDCT_ADD_FUNC(8, 10, avx)
@@ -64,7 +64,7 @@ IDCT_ADD_REP_FUNC(, 16intra, 8, mmx)
 IDCT_ADD_REP_FUNC(, 16intra, 8, mmx2)
 IDCT_ADD_REP_FUNC(, 16intra, 8, sse2)
 IDCT_ADD_REP_FUNC(, 16intra, 10, sse2)
-#if HAVE_AVX
+#if HAVE_AVX_EXTERNAL
 IDCT_ADD_REP_FUNC(, 16, 10, avx)
 IDCT_ADD_REP_FUNC(, 16intra, 10, avx)
 #endif
@@ -79,7 +79,7 @@ IDCT_ADD_REP_FUNC2(, 8, 8, mmx)
 IDCT_ADD_REP_FUNC2(, 8, 8, mmx2)
 IDCT_ADD_REP_FUNC2(, 8, 8, sse2)
 IDCT_ADD_REP_FUNC2(, 8, 10, sse2)
-#if HAVE_AVX
+#if HAVE_AVX_EXTERNAL
 IDCT_ADD_REP_FUNC2(, 8, 10, avx)
 #endif
 
@@ -353,7 +353,7 @@ void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
                     c->biweight_h264_pixels_tab[1] = ff_h264_biweight_8_10_sse4;
                     c->biweight_h264_pixels_tab[2] = ff_h264_biweight_4_10_sse4;
                 }
-#if HAVE_AVX
+#if HAVE_AVX_EXTERNAL
                 if (mm_flags & AV_CPU_FLAG_AVX) {
                     c->h264_idct_dc_add  =
                     c->h264_idct_add     = ff_h264_idct_add_10_avx;
@@ -377,7 +377,7 @@ void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
                     c->h264_h_loop_filter_luma_intra   = ff_deblock_h_luma_intra_10_avx;
 #endif /* HAVE_ALIGNED_STACK */
                 }
-#endif /* HAVE_AVX */
+#endif /* HAVE_AVX_EXTERNAL */
             }
         }
     }
diff --git a/libavcodec/x86/mpegvideoenc.c b/libavcodec/x86/mpegvideoenc.c
index c3d8b83..31a6790 100644
--- a/libavcodec/x86/mpegvideoenc.c
+++ b/libavcodec/x86/mpegvideoenc.c
@@ -26,20 +26,18 @@
 #include "libavcodec/mpegvideo.h"
 #include "dsputil_mmx.h"
 
-#if HAVE_INLINE_ASM
-
 extern uint16_t ff_inv_zigzag_direct16[64];
 
-#if HAVE_MMX
+#if HAVE_MMX_INLINE
 #define COMPILE_TEMPLATE_MMXEXT 0
 #define COMPILE_TEMPLATE_SSE2   0
 #define COMPILE_TEMPLATE_SSSE3  0
 #define RENAME(a) a ## _MMX
 #define RENAMEl(a) a ## _mmx
 #include "mpegvideoenc_template.c"
-#endif /* HAVE_MMX */
+#endif /* HAVE_MMX_INLINE */
 
-#if HAVE_MMXEXT
+#if HAVE_MMXEXT_INLINE
 #undef COMPILE_TEMPLATE_SSSE3
 #undef COMPILE_TEMPLATE_SSE2
 #undef COMPILE_TEMPLATE_MMXEXT
@@ -51,9 +49,9 @@ extern uint16_t ff_inv_zigzag_direct16[64];
 #define RENAME(a) a ## _MMX2
 #define RENAMEl(a) a ## _mmx2
 #include "mpegvideoenc_template.c"
-#endif /* HAVE_MMXEXT */
+#endif /* HAVE_MMXEXT_INLINE */
 
-#if HAVE_SSE2
+#if HAVE_SSE2_INLINE
 #undef COMPILE_TEMPLATE_MMXEXT
 #undef COMPILE_TEMPLATE_SSE2
 #undef COMPILE_TEMPLATE_SSSE3
@@ -65,9 +63,9 @@ extern uint16_t ff_inv_zigzag_direct16[64];
 #define RENAME(a) a ## _SSE2
 #define RENAMEl(a) a ## _sse2
 #include "mpegvideoenc_template.c"
-#endif /* HAVE_SSE2 */
+#endif /* HAVE_SSE2_INLINE */
 
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
 #undef COMPILE_TEMPLATE_MMXEXT
 #undef COMPILE_TEMPLATE_SSE2
 #undef COMPILE_TEMPLATE_SSSE3
@@ -79,33 +77,29 @@ extern uint16_t ff_inv_zigzag_direct16[64];
 #define RENAME(a) a ## _SSSE3
 #define RENAMEl(a) a ## _sse2
 #include "mpegvideoenc_template.c"
-#endif /* HAVE_SSSE3 */
-
-#endif /* HAVE_INLINE_ASM */
+#endif /* HAVE_SSSE3_INLINE */
 
 void ff_MPV_encode_init_x86(MpegEncContext *s)
 {
-#if HAVE_INLINE_ASM
     int mm_flags = av_get_cpu_flags();
     const int dct_algo = s->avctx->dct_algo;
 
     if (dct_algo == FF_DCT_AUTO || dct_algo == FF_DCT_MMX) {
-#if HAVE_MMX
+#if HAVE_MMX_INLINE
         if (mm_flags & AV_CPU_FLAG_MMX && HAVE_MMX)
             s->dct_quantize = dct_quantize_MMX;
 #endif
-#if HAVE_MMXEXT
+#if HAVE_MMXEXT_INLINE
         if (mm_flags & AV_CPU_FLAG_MMXEXT && HAVE_MMXEXT)
             s->dct_quantize = dct_quantize_MMX2;
 #endif
-#if HAVE_SSE2
+#if HAVE_SSE2_INLINE
         if (mm_flags & AV_CPU_FLAG_SSE2 && HAVE_SSE2)
             s->dct_quantize = dct_quantize_SSE2;
 #endif
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
         if (mm_flags & AV_CPU_FLAG_SSSE3)
             s->dct_quantize = dct_quantize_SSSE3;
 #endif
     }
-#endif /* HAVE_INLINE_ASM */
 }
diff --git a/libavfilter/x86/gradfun.c b/libavfilter/x86/gradfun.c
index 140f5e8..424a031 100644
--- a/libavfilter/x86/gradfun.c
+++ b/libavfilter/x86/gradfun.c
@@ -29,7 +29,7 @@
 DECLARE_ALIGNED(16, static const uint16_t, pw_7f)[8] = {0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F};
 DECLARE_ALIGNED(16, static const uint16_t, pw_ff)[8] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
 
-#if HAVE_MMXEXT
+#if HAVE_MMXEXT_INLINE
 static void gradfun_filter_line_mmx2(uint8_t *dst, uint8_t *src, uint16_t *dc, int width, int thresh, const uint16_t *dithers)
 {
     intptr_t x;
@@ -77,7 +77,7 @@ static void gradfun_filter_line_mmx2(uint8_t *dst, uint8_t *src, uint16_t *dc, i
 }
 #endif
 
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
 static void gradfun_filter_line_ssse3(uint8_t *dst, uint8_t *src, uint16_t *dc, int width, int thresh, const uint16_t *dithers)
 {
     intptr_t x;
@@ -122,9 +122,9 @@ static void gradfun_filter_line_ssse3(uint8_t *dst, uint8_t *src, uint16_t *dc,
         :"memory"
     );
 }
-#endif // HAVE_SSSE3
+#endif /* HAVE_SSSE3_INLINE */
 
-#if HAVE_SSE
+#if HAVE_SSE2_INLINE
 static void gradfun_blur_line_sse2(uint16_t *dc, uint16_t *buf, uint16_t *buf1, uint8_t *src, int src_linesize, int width)
 {
 #define BLURV(load)\
@@ -165,7 +165,7 @@ static void gradfun_blur_line_sse2(uint16_t *dc, uint16_t *buf, uint16_t *buf1,
         BLURV("movdqa");
     }
 }
-#endif // HAVE_SSE
+#endif /* HAVE_SSE2_INLINE */
 
 #endif /* HAVE_INLINE_ASM */
 
@@ -173,18 +173,16 @@ av_cold void ff_gradfun_init_x86(GradFunContext *gf)
 {
     int cpu_flags = av_get_cpu_flags();
 
-#if HAVE_INLINE_ASM
-#if HAVE_MMXEXT
+#if HAVE_MMXEXT_INLINE
     if (cpu_flags & AV_CPU_FLAG_MMXEXT)
         gf->filter_line = gradfun_filter_line_mmx2;
 #endif
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
     if (cpu_flags & AV_CPU_FLAG_SSSE3)
         gf->filter_line = gradfun_filter_line_ssse3;
 #endif
-#if HAVE_SSE
+#if HAVE_SSE2_INLINE
     if (cpu_flags & AV_CPU_FLAG_SSE2)
         gf->blur_line = gradfun_blur_line_sse2;
 #endif
-#endif /* HAVE_INLINE_ASM */
 }
diff --git a/libavfilter/x86/yadif.c b/libavfilter/x86/yadif.c
index cdf13d3..f178b32 100644
--- a/libavfilter/x86/yadif.c
+++ b/libavfilter/x86/yadif.c
@@ -31,7 +31,7 @@
 DECLARE_ASM_CONST(16, const xmm_reg, pb_1) = {0x0101010101010101ULL, 0x0101010101010101ULL};
 DECLARE_ASM_CONST(16, const xmm_reg, pw_1) = {0x0001000100010001ULL, 0x0001000100010001ULL};
 
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
 #define COMPILE_TEMPLATE_SSE2 1
 #define COMPILE_TEMPLATE_SSSE3 1
 #undef RENAME
@@ -40,14 +40,14 @@ DECLARE_ASM_CONST(16, const xmm_reg, pw_1) = {0x0001000100010001ULL, 0x000100010
 #undef COMPILE_TEMPLATE_SSSE3
 #endif
 
-#if HAVE_SSE
+#if HAVE_SSE2_INLINE
 #undef RENAME
 #define RENAME(a) a ## _sse2
 #include "yadif_template.c"
 #undef COMPILE_TEMPLATE_SSE2
 #endif
 
-#if HAVE_MMXEXT
+#if HAVE_MMXEXT_INLINE
 #undef RENAME
 #define RENAME(a) a ## _mmx2
 #include "yadif_template.c"
@@ -59,18 +59,16 @@ av_cold void ff_yadif_init_x86(YADIFContext *yadif)
 {
     int cpu_flags = av_get_cpu_flags();
 
-#if HAVE_INLINE_ASM
-#if HAVE_MMXEXT
+#if HAVE_MMXEXT_INLINE
     if (cpu_flags & AV_CPU_FLAG_MMXEXT)
         yadif->filter_line = yadif_filter_line_mmx2;
 #endif
-#if HAVE_SSE
+#if HAVE_SSE2_INLINE
     if (cpu_flags & AV_CPU_FLAG_SSE2)
         yadif->filter_line = yadif_filter_line_sse2;
 #endif
-#if HAVE_SSSE3
+#if HAVE_SSSE3_INLINE
     if (cpu_flags & AV_CPU_FLAG_SSSE3)
         yadif->filter_line = yadif_filter_line_ssse3;
 #endif
-#endif /* HAVE_INLINE_ASM */
 }
diff --git a/libavresample/x86/audio_convert.asm b/libavresample/x86/audio_convert.asm
index 3db64d2..2ebdbc1 100644
--- a/libavresample/x86/audio_convert.asm
+++ b/libavresample/x86/audio_convert.asm
@@ -155,7 +155,7 @@ cglobal conv_s32_to_flt, 3,3,3, dst, src, len
 
 INIT_XMM sse2
 CONV_S32_TO_FLT
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 CONV_S32_TO_FLT
 %endif
@@ -223,7 +223,7 @@ cglobal conv_flt_to_s32, 3,3,5, dst, src, len
 
 INIT_XMM sse2
 CONV_FLT_TO_S32
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 CONV_FLT_TO_S32
 %endif
@@ -260,7 +260,7 @@ cglobal conv_s16p_to_s16_2ch, 3,4,5, dst, src0, len, src1
 
 INIT_XMM sse2
 CONV_S16P_TO_S16_2CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_S16P_TO_S16_2CH
 %endif
@@ -383,7 +383,7 @@ INIT_XMM sse2
 CONV_S16P_TO_S16_6CH
 INIT_XMM sse2slow
 CONV_S16P_TO_S16_6CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_S16P_TO_S16_6CH
 %endif
@@ -432,7 +432,7 @@ cglobal conv_s16p_to_flt_2ch, 3,4,6, dst, src0, len, src1
 
 INIT_XMM sse2
 CONV_S16P_TO_FLT_2CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_S16P_TO_FLT_2CH
 %endif
@@ -536,7 +536,7 @@ INIT_XMM sse2
 CONV_S16P_TO_FLT_6CH
 INIT_XMM ssse3
 CONV_S16P_TO_FLT_6CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_S16P_TO_FLT_6CH
 %endif
@@ -692,7 +692,7 @@ INIT_MMX sse
 CONV_FLTP_TO_S16_6CH
 INIT_XMM sse2
 CONV_FLTP_TO_S16_6CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_FLTP_TO_S16_6CH
 %endif
@@ -729,7 +729,7 @@ cglobal conv_fltp_to_flt_2ch, 3,4,5, dst, src0, len, src1
 
 INIT_XMM sse
 CONV_FLTP_TO_FLT_2CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_FLTP_TO_FLT_2CH
 %endif
@@ -810,7 +810,7 @@ INIT_MMX mmx
 CONV_FLTP_TO_FLT_6CH
 INIT_XMM sse4
 CONV_FLTP_TO_FLT_6CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_FLTP_TO_FLT_6CH
 %endif
@@ -859,7 +859,7 @@ INIT_XMM sse2
 CONV_S16_TO_S16P_2CH
 INIT_XMM ssse3
 CONV_S16_TO_S16P_2CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_S16_TO_S16P_2CH
 %endif
@@ -920,7 +920,7 @@ CONV_S16_TO_S16P_6CH
 %define PALIGNR PALIGNR_SSSE3
 INIT_XMM ssse3
 CONV_S16_TO_S16P_6CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_S16_TO_S16P_6CH
 %endif
@@ -958,7 +958,7 @@ cglobal conv_s16_to_fltp_2ch, 3,4,5, dst0, src, len, dst1
 
 INIT_XMM sse2
 CONV_S16_TO_FLTP_2CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_S16_TO_FLTP_2CH
 %endif
@@ -1041,7 +1041,7 @@ INIT_XMM ssse3
 CONV_S16_TO_FLTP_6CH
 INIT_XMM sse4
 CONV_S16_TO_FLTP_6CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_S16_TO_FLTP_6CH
 %endif
@@ -1087,7 +1087,7 @@ cglobal conv_flt_to_s16p_2ch, 3,4,6, dst0, src, len, dst1
 
 INIT_XMM sse2
 CONV_FLT_TO_S16P_2CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_FLT_TO_S16P_2CH
 %endif
@@ -1161,7 +1161,7 @@ CONV_FLT_TO_S16P_6CH
 %define PALIGNR PALIGNR_SSSE3
 INIT_XMM ssse3
 CONV_FLT_TO_S16P_6CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_FLT_TO_S16P_6CH
 %endif
@@ -1193,7 +1193,7 @@ cglobal conv_flt_to_fltp_2ch, 3,4,3, dst0, src, len, dst1
 
 INIT_XMM sse
 CONV_FLT_TO_FLTP_2CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_FLT_TO_FLTP_2CH
 %endif
@@ -1256,7 +1256,7 @@ cglobal conv_flt_to_fltp_6ch, 2,7,7, dst, src, dst1, dst2, dst3, dst4, dst5
 
 INIT_XMM sse2
 CONV_FLT_TO_FLTP_6CH
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 CONV_FLT_TO_FLTP_6CH
 %endif
diff --git a/libavresample/x86/audio_mix.asm b/libavresample/x86/audio_mix.asm
index bab4292..0c4a9bd 100644
--- a/libavresample/x86/audio_mix.asm
+++ b/libavresample/x86/audio_mix.asm
@@ -56,7 +56,7 @@ cglobal mix_2_to_1_fltp_flt, 3,4,6, src, matrix, len, src1
 
 INIT_XMM sse
 MIX_2_TO_1_FLTP_FLT
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 MIX_2_TO_1_FLTP_FLT
 %endif
@@ -175,7 +175,7 @@ cglobal mix_1_to_2_fltp_flt, 3,5,4, src0, matrix0, len, src1, matrix1
 
 INIT_XMM sse
 MIX_1_TO_2_FLTP_FLT
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 MIX_1_TO_2_FLTP_FLT
 %endif
@@ -222,7 +222,7 @@ INIT_XMM sse2
 MIX_1_TO_2_S16P_FLT
 INIT_XMM sse4
 MIX_1_TO_2_S16P_FLT
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_XMM avx
 MIX_1_TO_2_S16P_FLT
 %endif
@@ -490,7 +490,7 @@ cglobal mix_%1_to_%2_%3_flt, 3,in_channels+2,needed_mmregs+matrix_elements_mm, s
     MIX_3_8_TO_1_2_FLT %%i, 1, s16p
     MIX_3_8_TO_1_2_FLT %%i, 2, s16p
     ; do not use ymm AVX or FMA4 in x86-32 for 6 or more channels due to stack alignment issues
-    %if HAVE_AVX
+    %if HAVE_AVX_EXTERNAL
     %if ARCH_X86_64 || %%i < 6
     INIT_YMM avx
     %else
@@ -502,7 +502,7 @@ cglobal mix_%1_to_%2_%3_flt, 3,in_channels+2,needed_mmregs+matrix_elements_mm, s
     MIX_3_8_TO_1_2_FLT %%i, 1, s16p
     MIX_3_8_TO_1_2_FLT %%i, 2, s16p
     %endif
-    %if HAVE_FMA4
+    %if HAVE_FMA4_EXTERNAL
     %if ARCH_X86_64 || %%i < 6
     INIT_YMM fma4
     %else
diff --git a/libavutil/internal.h b/libavutil/internal.h
index 12b7108..6862000 100644
--- a/libavutil/internal.h
+++ b/libavutil/internal.h
@@ -158,7 +158,7 @@
 #   define ONLY_IF_THREADS_ENABLED(x) NULL
 #endif
 
-#if HAVE_MMX && HAVE_INLINE_ASM
+#if HAVE_MMX_INLINE
 /**
  * Empty mmx state.
  * this must be called between any dsp function and float/double code.
@@ -171,8 +171,8 @@ static av_always_inline void emms_c(void)
 #elif HAVE_MMX && HAVE_MM_EMPTY
 #   include <mmintrin.h>
 #   define emms_c _mm_empty
-#else /* HAVE_MMX */
+#else
 #   define emms_c()
-#endif /* HAVE_MMX */
+#endif /* HAVE_MMX_INLINE */
 
 #endif /* AVUTIL_INTERNAL_H */
diff --git a/libavutil/x86/float_dsp.asm b/libavutil/x86/float_dsp.asm
index 8c0ebc1..934dac0 100644
--- a/libavutil/x86/float_dsp.asm
+++ b/libavutil/x86/float_dsp.asm
@@ -45,7 +45,7 @@ ALIGN 16
 
 INIT_XMM sse
 VECTOR_FMUL
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 VECTOR_FMUL
 %endif
@@ -86,7 +86,7 @@ cglobal vector_fmac_scalar, 4,4,3, dst, src, mul, len
 
 INIT_XMM sse
 VECTOR_FMAC_SCALAR
-%if HAVE_AVX
+%if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 VECTOR_FMAC_SCALAR
 %endif
diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 9da250e..94f51cf 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -518,7 +518,7 @@ static int swScale(SwsContext *c, const uint8_t *src[],
         if (!enough_lines)
             break;  // we can't output a dstY line so let's try with the next slice
 
-#if HAVE_MMX && HAVE_INLINE_ASM
+#if HAVE_MMX_INLINE
         updateMMXDitherTables(c, dstY, lumBufIndex, chrBufIndex,
                               lastInLumBuf, lastInChrBuf);
 #endif
diff --git a/libswscale/utils.c b/libswscale/utils.c
index f890b5c..200346c 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -577,7 +577,7 @@ fail:
     return ret;
 }
 
-#if HAVE_MMXEXT && HAVE_INLINE_ASM
+#if HAVE_MMXEXT_INLINE
 static int initMMX2HScaler(int dstW, int xInc, uint8_t *filterCode,
                            int16_t *filter, int32_t *filterPos, int numSplits)
 {
@@ -740,7 +740,7 @@ static int initMMX2HScaler(int dstW, int xInc, uint8_t *filterCode,
 
     return fragmentPos + 1;
 }
-#endif /* HAVE_MMXEXT && HAVE_INLINE_ASM */
+#endif /* HAVE_MMXEXT_INLINE */
 
 static void getSubSampleFactors(int *h, int *v, enum PixelFormat format)
 {
@@ -1012,7 +1012,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
 
     /* precalculate horizontal scaler filter coefficients */
     {
-#if HAVE_MMXEXT && HAVE_INLINE_ASM
+#if HAVE_MMXEXT_INLINE
 // can't downscale !!!
         if (c->canMMX2BeUsed && (flags & SWS_FAST_BILINEAR)) {
             c->lumMmx2FilterCodeSize = initMMX2HScaler(dstW, c->lumXInc, NULL,
@@ -1048,7 +1048,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
             mprotect(c->chrMmx2FilterCode, c->chrMmx2FilterCodeSize, PROT_EXEC | PROT_READ);
 #endif
         } else
-#endif /* HAVE_MMXEXT && HAVE_INLINE_ASM */
+#endif /* HAVE_MMXEXT_INLINE */
         {
             const int filterAlign =
                 (HAVE_MMX && cpu_flags & AV_CPU_FLAG_MMX) ? 4 :
@@ -1621,7 +1621,7 @@ void sws_freeContext(SwsContext *c)
     av_freep(&c->hLumFilterPos);
     av_freep(&c->hChrFilterPos);
 
-#if HAVE_MMX
+#if HAVE_MMX_INLINE
 #ifdef MAP_ANONYMOUS
     if (c->lumMmx2FilterCode)
         munmap(c->lumMmx2FilterCode, c->lumMmx2FilterCodeSize);
@@ -1638,7 +1638,7 @@ void sws_freeContext(SwsContext *c)
 #endif
     c->lumMmx2FilterCode = NULL;
     c->chrMmx2FilterCode = NULL;
-#endif /* HAVE_MMX */
+#endif /* HAVE_MMX_INLINE */
 
     av_freep(&c->yuvTable);
     av_free(c->formatConvBuffer);
diff --git a/libswscale/x86/swscale.c b/libswscale/x86/swscale.c
index db9fb73..581d6f7 100644
--- a/libswscale/x86/swscale.c
+++ b/libswscale/x86/swscale.c
@@ -70,7 +70,7 @@ DECLARE_ALIGNED(8, const uint64_t, ff_bgr2UVOffset) = 0x8080808080808080ULL;
 DECLARE_ALIGNED(8, const uint64_t, ff_w1111)        = 0x0001000100010001ULL;
 
 //MMX versions
-#if HAVE_MMX
+#if HAVE_MMX_INLINE
 #undef RENAME
 #define COMPILE_TEMPLATE_MMXEXT 0
 #define RENAME(a) a ## _MMX
@@ -78,7 +78,7 @@ DECLARE_ALIGNED(8, const uint64_t, ff_w1111)        = 0x0001000100010001ULL;
 #endif
 
 //MMX2 versions
-#if HAVE_MMXEXT
+#if HAVE_MMXEXT_INLINE
 #undef RENAME
 #undef COMPILE_TEMPLATE_MMXEXT
 #define COMPILE_TEMPLATE_MMXEXT 1
@@ -308,7 +308,7 @@ av_cold void ff_sws_init_swScale_mmx(SwsContext *c)
 #if HAVE_INLINE_ASM
     if (cpu_flags & AV_CPU_FLAG_MMX)
         sws_init_swScale_MMX(c);
-#if HAVE_MMXEXT
+#if HAVE_MMXEXT_INLINE
     if (cpu_flags & AV_CPU_FLAG_MMXEXT)
         sws_init_swScale_MMX2(c);
 #endif
diff --git a/libswscale/x86/yuv2rgb.c b/libswscale/x86/yuv2rgb.c
index 9375549..af30ca9 100644
--- a/libswscale/x86/yuv2rgb.c
+++ b/libswscale/x86/yuv2rgb.c
@@ -50,22 +50,22 @@ DECLARE_ASM_CONST(8, uint64_t, pb_03) = 0x0303030303030303ULL;
 DECLARE_ASM_CONST(8, uint64_t, pb_07) = 0x0707070707070707ULL;
 
 //MMX versions
-#if HAVE_MMX
+#if HAVE_MMX_INLINE
 #undef RENAME
 #undef COMPILE_TEMPLATE_MMXEXT
 #define COMPILE_TEMPLATE_MMXEXT 0
 #define RENAME(a) a ## _MMX
 #include "yuv2rgb_template.c"
-#endif /* HAVE_MMX */
+#endif /* HAVE_MMX_INLINE */
 
 //MMX2 versions
-#if HAVE_MMXEXT
+#if HAVE_MMXEXT_INLINE
 #undef RENAME
 #undef COMPILE_TEMPLATE_MMXEXT
 #define COMPILE_TEMPLATE_MMXEXT 1
 #define RENAME(a) a ## _MMX2
 #include "yuv2rgb_template.c"
-#endif /* HAVE_MMXEXT */
+#endif /* HAVE_MMXEXT_INLINE */
 
 #endif /* HAVE_INLINE_ASM */
 
@@ -78,7 +78,7 @@ av_cold SwsFunc ff_yuv2rgb_init_mmx(SwsContext *c)
         c->srcFormat != PIX_FMT_YUVA420P)
         return NULL;
 
-#if HAVE_MMXEXT
+#if HAVE_MMXEXT_INLINE
     if (cpu_flags & AV_CPU_FLAG_MMXEXT) {
         switch (c->dstFormat) {
         case PIX_FMT_RGB24:  return yuv420_rgb24_MMX2;



More information about the ffmpeg-cvslog mailing list