|
|
|
@@ -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 */ |