From e9735572113ab903b92cc0a7931eb894e7177f6e Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Tue, 24 May 2011 13:04:38 -0400 Subject: [PATCH] Move emms_c() from libavcodec to libavutil. --- libavcodec/dsputil.h | 20 +------------------- libavutil/internal.h | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h index 78d21527a5..74230cadbb 100644 --- a/libavcodec/dsputil.h +++ b/libavcodec/dsputil.h @@ -630,13 +630,6 @@ static inline int get_penalty_factor(int lambda, int lambda2, int type){ } } -/** - * Empty mmx state. - * this must be called between any dsp function and float/double code. - * for example sin(); dsp->idct_put(); emms_c(); cos() - */ -#define emms_c() - void dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx); void dsputil_init_arm(DSPContext* c, AVCodecContext *avctx); void dsputil_init_bfin(DSPContext* c, AVCodecContext *avctx); @@ -654,18 +647,7 @@ void ff_intrax8dsp_init(DSPContext* c, AVCodecContext *avctx); void ff_mlp_init(DSPContext* c, AVCodecContext *avctx); void ff_mlp_init_x86(DSPContext* c, AVCodecContext *avctx); -#if HAVE_MMX - -#undef emms_c - -static inline void emms(void) -{ - __asm__ volatile ("emms;":::"memory"); -} - -#define emms_c() emms() - -#elif ARCH_ARM +#if ARCH_ARM #if HAVE_NEON # define STRIDE_ALIGN 16 diff --git a/libavutil/internal.h b/libavutil/internal.h index e890ae7083..51e449d3fe 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -223,4 +223,18 @@ # define ONLY_IF_THREADS_ENABLED(x) NULL #endif +#if HAVE_MMX +/** + * Empty mmx state. + * this must be called between any dsp function and float/double code. + * for example sin(); dsp->idct_put(); emms_c(); cos() + */ +static av_always_inline void emms_c(void) +{ + __asm__ volatile ("emms" ::: "memory"); +} +#else /* HAVE_MMX */ +#define emms_c() +#endif /* HAVE_MMX */ + #endif /* AVUTIL_INTERNAL_H */