Commit 1169f0d0 authored by Diego Biurrun's avatar Diego Biurrun

x86: more specific checks for availability of required assembly capabilities

parent 8cb7ed55
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include "libavutil/x86/asm.h" #include "libavutil/x86/asm.h"
#include "libavcodec/dnxhdenc.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) 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 ...@@ -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) 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 (av_get_cpu_flags() & AV_CPU_FLAG_SSE2) {
if (ctx->cid_table->bit_depth == 8) if (ctx->cid_table->bit_depth == 8)
ctx->get_pixels_8x4_sym = get_pixels_8x4_sym_sse2; ctx->get_pixels_8x4_sym = get_pixels_8x4_sym_sse2;
} }
#endif /* HAVE_INLINE_ASM */ #endif /* HAVE_SSE2_INLINE */
} }
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include "libavutil/internal.h" #include "libavutil/internal.h"
#include "libavcodec/lpc.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, static void lpc_apply_welch_window_sse2(const int32_t *data, int len,
double *w_data) double *w_data)
...@@ -139,16 +139,16 @@ static void lpc_compute_autocorr_sse2(const double *data, int len, int lag, ...@@ -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) av_cold void ff_lpc_init_x86(LPCContext *c)
{ {
#if HAVE_SSE2_INLINE
int mm_flags = av_get_cpu_flags(); int mm_flags = av_get_cpu_flags();
#if HAVE_INLINE_ASM
if (mm_flags & (AV_CPU_FLAG_SSE2|AV_CPU_FLAG_SSE2SLOW)) { if (mm_flags & (AV_CPU_FLAG_SSE2|AV_CPU_FLAG_SSE2SLOW)) {
c->lpc_apply_welch_window = lpc_apply_welch_window_sse2; c->lpc_apply_welch_window = lpc_apply_welch_window_sse2;
c->lpc_compute_autocorr = lpc_compute_autocorr_sse2; c->lpc_compute_autocorr = lpc_compute_autocorr_sse2;
} }
#endif /* HAVE_INLINE_ASM */ #endif /* HAVE_SSE2_INLINE */
} }
...@@ -36,7 +36,7 @@ void ff_four_imdct36_float_avx(float *out, float *buf, float *in, float *win, ...@@ -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]; 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 MACS(rt, ra, rb) rt+=(ra)*(rb)
#define MLSS(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, ...@@ -180,7 +180,7 @@ static void apply_window_mp3(float *in, float *win, int *unused, float *out,
*out = sum; *out = sum;
} }
#endif /* HAVE_INLINE_ASM */ #endif /* HAVE_SSE2_INLINE */
#if HAVE_YASM #if HAVE_YASM
#define DECL_IMDCT_BLOCKS(CPU1, CPU2) \ #define DECL_IMDCT_BLOCKS(CPU1, CPU2) \
...@@ -240,11 +240,12 @@ void ff_mpadsp_init_mmx(MPADSPContext *s) ...@@ -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) { if (mm_flags & AV_CPU_FLAG_SSE2) {
s->apply_window_float = apply_window_mp3; s->apply_window_float = apply_window_mp3;
} }
#endif /* HAVE_INLINE_ASM */ #endif /* HAVE_SSE2_INLINE */
#if HAVE_YASM #if HAVE_YASM
if (mm_flags & AV_CPU_FLAG_AVX && HAVE_AVX) { if (mm_flags & AV_CPU_FLAG_AVX && HAVE_AVX) {
s->imdct36_blocks_float = imdct36_blocks_avx; s->imdct36_blocks_float = imdct36_blocks_avx;
......
...@@ -661,7 +661,7 @@ static int swScale(SwsContext *c, const uint8_t *src[], ...@@ -661,7 +661,7 @@ static int swScale(SwsContext *c, const uint8_t *src[],
if (isPlanar(dstFormat) && isALPHA(dstFormat) && !alpPixBuf) if (isPlanar(dstFormat) && isALPHA(dstFormat) && !alpPixBuf)
fillPlane(dst[3], dstStride[3], dstW, dstY - lastDstY, lastDstY, 255); 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) if (av_get_cpu_flags() & AV_CPU_FLAG_MMXEXT)
__asm__ volatile ("sfence" ::: "memory"); __asm__ volatile ("sfence" ::: "memory");
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment