Commit ab441e20 authored by Diego Biurrun's avatar Diego Biurrun

avutil: Move emms code to x86-specific header

parent 130cefc9
......@@ -39,6 +39,10 @@
#include "timer.h"
#include "dict.h"
#if ARCH_X86
# include "x86/emms.h"
#endif
#ifndef attribute_align_arg
#if ARCH_X86_32 && AV_GCC_VERSION_AT_LEAST(4,2)
# define attribute_align_arg __attribute__((force_align_arg_pointer))
......@@ -154,24 +158,4 @@
# define ONLY_IF_THREADS_ENABLED(x) NULL
#endif
#if HAVE_MMX_INLINE
/**
* 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");
}
#elif HAVE_MMX && HAVE_MM_EMPTY
# include <mmintrin.h>
# define emms_c _mm_empty
#elif HAVE_MMX && HAVE_YASM
# include "libavutil/x86/emms.h"
# define emms_c avpriv_emms_yasm
#else
# define emms_c()
#endif /* HAVE_MMX_INLINE */
#endif /* AVUTIL_INTERNAL_H */
......@@ -19,6 +19,28 @@
#ifndef AVUTIL_X86_EMMS_H
#define AVUTIL_X86_EMMS_H
#include "config.h"
#include "libavutil/attributes.h"
void avpriv_emms_yasm(void);
#if HAVE_MMX_INLINE
/**
* 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");
}
#elif HAVE_MMX && HAVE_MM_EMPTY
# include <mmintrin.h>
# define emms_c _mm_empty
#elif HAVE_MMX && HAVE_YASM
# define emms_c avpriv_emms_yasm
#else
# define emms_c()
#endif /* HAVE_MMX_INLINE */
#endif /* AVUTIL_X86_EMMS_H */
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