diff options
author | Diego Biurrun <diego@biurrun.de> | 2012-09-04 08:30:16 +0200 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2012-09-07 18:16:04 +0200 |
commit | 1169f0d0afc0454633cfcfad73643f0458521c67 (patch) | |
tree | c58d3888c6bbd2e4eb014ddfce38bf9044d2312b | |
parent | 8cb7ed5562c438388b1dd7dc7d10c26f54c740b5 (diff) | |
download | ffmpeg-1169f0d0afc0454633cfcfad73643f0458521c67.tar.gz |
x86: more specific checks for availability of required assembly capabilities
-rw-r--r-- | libavcodec/x86/dnxhdenc.c | 8 | ||||
-rw-r--r-- | libavcodec/x86/lpc.c | 8 | ||||
-rw-r--r-- | libavcodec/x86/mpegaudiodec.c | 9 | ||||
-rw-r--r-- | libswscale/swscale.c | 2 |
4 files changed, 14 insertions, 13 deletions
diff --git a/libavcodec/x86/dnxhdenc.c b/libavcodec/x86/dnxhdenc.c index c344afec55..43ee246221 100644 --- a/libavcodec/x86/dnxhdenc.c +++ b/libavcodec/x86/dnxhdenc.c @@ -24,7 +24,7 @@ #include "libavutil/x86/asm.h" #include "libavcodec/dnxhdenc.h" -#if HAVE_INLINE_ASM +#if HAVE_SSE2_INLINE static void get_pixels_8x4_sym_sse2(DCTELEM *block, const uint8_t *pixels, int line_size) { @@ -52,14 +52,14 @@ static void get_pixels_8x4_sym_sse2(DCTELEM *block, const uint8_t *pixels, int l ); } -#endif /* HAVE_INLINE_ASM */ +#endif /* HAVE_SSE2_INLINE */ void ff_dnxhdenc_init_x86(DNXHDEncContext *ctx) { -#if HAVE_INLINE_ASM +#if HAVE_SSE2_INLINE if (av_get_cpu_flags() & AV_CPU_FLAG_SSE2) { if (ctx->cid_table->bit_depth == 8) ctx->get_pixels_8x4_sym = get_pixels_8x4_sym_sse2; } -#endif /* HAVE_INLINE_ASM */ +#endif /* HAVE_SSE2_INLINE */ } diff --git a/libavcodec/x86/lpc.c b/libavcodec/x86/lpc.c index 82f77612f2..b8c77e28f4 100644 --- a/libavcodec/x86/lpc.c +++ b/libavcodec/x86/lpc.c @@ -24,7 +24,7 @@ #include "libavutil/internal.h" #include "libavcodec/lpc.h" -#if HAVE_INLINE_ASM +#if HAVE_SSE2_INLINE static void lpc_apply_welch_window_sse2(const int32_t *data, int len, double *w_data) @@ -139,16 +139,16 @@ static void lpc_compute_autocorr_sse2(const double *data, int len, int lag, } } -#endif /* HAVE_INLINE_ASM */ +#endif /* HAVE_SSE2_INLINE */ av_cold void ff_lpc_init_x86(LPCContext *c) { +#if HAVE_SSE2_INLINE int mm_flags = av_get_cpu_flags(); -#if HAVE_INLINE_ASM if (mm_flags & (AV_CPU_FLAG_SSE2|AV_CPU_FLAG_SSE2SLOW)) { c->lpc_apply_welch_window = lpc_apply_welch_window_sse2; c->lpc_compute_autocorr = lpc_compute_autocorr_sse2; } -#endif /* HAVE_INLINE_ASM */ +#endif /* HAVE_SSE2_INLINE */ } diff --git a/libavcodec/x86/mpegaudiodec.c b/libavcodec/x86/mpegaudiodec.c index d2573dd274..e7c7fbbf48 100644 --- a/libavcodec/x86/mpegaudiodec.c +++ b/libavcodec/x86/mpegaudiodec.c @@ -36,7 +36,7 @@ void ff_four_imdct36_float_avx(float *out, float *buf, float *in, float *win, DECLARE_ALIGNED(16, static float, mdct_win_sse)[2][4][4*40]; -#if HAVE_INLINE_ASM +#if HAVE_SSE2_INLINE #define MACS(rt, ra, rb) rt+=(ra)*(rb) #define MLSS(rt, ra, rb) rt-=(ra)*(rb) @@ -180,7 +180,7 @@ static void apply_window_mp3(float *in, float *win, int *unused, float *out, *out = sum; } -#endif /* HAVE_INLINE_ASM */ +#endif /* HAVE_SSE2_INLINE */ #if HAVE_YASM #define DECL_IMDCT_BLOCKS(CPU1, CPU2) \ @@ -240,11 +240,12 @@ void ff_mpadsp_init_mmx(MPADSPContext *s) } } -#if HAVE_INLINE_ASM +#if HAVE_SSE2_INLINE if (mm_flags & AV_CPU_FLAG_SSE2) { s->apply_window_float = apply_window_mp3; } -#endif /* HAVE_INLINE_ASM */ +#endif /* HAVE_SSE2_INLINE */ + #if HAVE_YASM if (mm_flags & AV_CPU_FLAG_AVX && HAVE_AVX) { s->imdct36_blocks_float = imdct36_blocks_avx; diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 94f51cf5cb..4f0a049b3d 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -661,7 +661,7 @@ static int swScale(SwsContext *c, const uint8_t *src[], if (isPlanar(dstFormat) && isALPHA(dstFormat) && !alpPixBuf) fillPlane(dst[3], dstStride[3], dstW, dstY - lastDstY, lastDstY, 255); -#if HAVE_MMXEXT && HAVE_INLINE_ASM +#if HAVE_MMXEXT_INLINE if (av_get_cpu_flags() & AV_CPU_FLAG_MMXEXT) __asm__ volatile ("sfence" ::: "memory"); #endif |