mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
avutil: Move emms code to x86-specific header
This commit is contained in:
parent
130cefc9dc
commit
ab441e20ff
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user