mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
Merge commit '4db96649ca700db563d9da4ebe70bf9fc4c7a6ba'
* commit '4db96649ca700db563d9da4ebe70bf9fc4c7a6ba': avutil: Ensure that emms_c is always defined, even on non-x86 configure: Move MinGW CPPFLAGS setting to libc section, where it belongs avutil: Move emms code to x86-specific header Conflicts: configure libavutil/internal.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
61fbb4cd57
2
configure
vendored
2
configure
vendored
@ -3226,7 +3226,6 @@ case $target_os in
|
||||
objformat="win32"
|
||||
ranlib=:
|
||||
enable dos_paths
|
||||
add_cppflags -U__STRICT_ANSI__
|
||||
;;
|
||||
win32|win64)
|
||||
if enabled shared; then
|
||||
@ -3370,6 +3369,7 @@ elif check_header _mingw.h; then
|
||||
"defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) || \
|
||||
(__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
|
||||
die "ERROR: MinGW runtime version must be >= 3.15."
|
||||
add_cppflags -U__STRICT_ANSI__
|
||||
if check_cpp_condition _mingw.h "defined(__MINGW64_VERSION_MAJOR) && \
|
||||
__MINGW64_VERSION_MAJOR < 3"; then
|
||||
add_compat msvcrt/snprintf.o
|
||||
|
@ -40,6 +40,14 @@
|
||||
#include "cpu.h"
|
||||
#include "dict.h"
|
||||
|
||||
#if ARCH_X86
|
||||
# include "x86/emms.h"
|
||||
#endif
|
||||
|
||||
#ifndef emms_c
|
||||
# define emms_c()
|
||||
#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,25 +162,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)
|
||||
{
|
||||
if(av_get_cpu_flags() & AV_CPU_FLAG_MMX)
|
||||
__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
|
||||
# define emms_c emms_c
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
if(av_get_cpu_flags() & AV_CPU_FLAG_MMX)
|
||||
__asm__ volatile ("emms" ::: "memory");
|
||||
}
|
||||
#elif HAVE_MMX && HAVE_MM_EMPTY
|
||||
# include <mmintrin.h>
|
||||
# define emms_c _mm_empty
|
||||
#elif HAVE_MMX_EXTERNAL
|
||||
# define emms_c avpriv_emms_yasm
|
||||
#endif /* HAVE_MMX_INLINE */
|
||||
|
||||
#endif /* AVUTIL_X86_EMMS_H */
|
||||
|
Loading…
Reference in New Issue
Block a user