mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 03:59:43 +00: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 "timer.h"
|
||||||
#include "dict.h"
|
#include "dict.h"
|
||||||
|
|
||||||
|
#if ARCH_X86
|
||||||
|
# include "x86/emms.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef attribute_align_arg
|
#ifndef attribute_align_arg
|
||||||
#if ARCH_X86_32 && AV_GCC_VERSION_AT_LEAST(4,2)
|
#if ARCH_X86_32 && AV_GCC_VERSION_AT_LEAST(4,2)
|
||||||
# define attribute_align_arg __attribute__((force_align_arg_pointer))
|
# define attribute_align_arg __attribute__((force_align_arg_pointer))
|
||||||
@ -154,24 +158,4 @@
|
|||||||
# define ONLY_IF_THREADS_ENABLED(x) NULL
|
# define ONLY_IF_THREADS_ENABLED(x) NULL
|
||||||
#endif
|
#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 */
|
#endif /* AVUTIL_INTERNAL_H */
|
||||||
|
@ -19,6 +19,28 @@
|
|||||||
#ifndef AVUTIL_X86_EMMS_H
|
#ifndef AVUTIL_X86_EMMS_H
|
||||||
#define AVUTIL_X86_EMMS_H
|
#define AVUTIL_X86_EMMS_H
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "libavutil/attributes.h"
|
||||||
|
|
||||||
void avpriv_emms_yasm(void);
|
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 */
|
#endif /* AVUTIL_X86_EMMS_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user