FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
cpu.h File Reference
#include "config.h"
#include "libavutil/cpu.h"
#include "libavutil/cpu_internal.h"

Go to the source code of this file.

Macros

#define AV_CPU_FLAG_AMD3DNOW   AV_CPU_FLAG_3DNOW
 
#define AV_CPU_FLAG_AMD3DNOWEXT   AV_CPU_FLAG_3DNOWEXT
 
#define X86_AMD3DNOW(flags)   CPUEXT(flags, AMD3DNOW)
 
#define X86_AMD3DNOWEXT(flags)   CPUEXT(flags, AMD3DNOWEXT)
 
#define X86_MMX(flags)   CPUEXT(flags, MMX)
 
#define X86_MMXEXT(flags)   CPUEXT(flags, MMXEXT)
 
#define X86_SSE(flags)   CPUEXT(flags, SSE)
 
#define X86_SSE2(flags)   CPUEXT(flags, SSE2)
 
#define X86_SSE2_FAST(flags)   CPUEXT_FAST(flags, SSE2)
 
#define X86_SSE2_SLOW(flags)   CPUEXT_SLOW(flags, SSE2)
 
#define X86_SSE3(flags)   CPUEXT(flags, SSE3)
 
#define X86_SSE3_FAST(flags)   CPUEXT_FAST(flags, SSE3)
 
#define X86_SSE3_SLOW(flags)   CPUEXT_SLOW(flags, SSE3)
 
#define X86_SSSE3(flags)   CPUEXT(flags, SSSE3)
 
#define X86_SSE4(flags)   CPUEXT(flags, SSE4)
 
#define X86_SSE42(flags)   CPUEXT(flags, SSE42)
 
#define X86_AVX(flags)   CPUEXT(flags, AVX)
 
#define X86_AVX_FAST(flags)   CPUEXT_FAST(flags, AVX)
 
#define X86_AVX_SLOW(flags)   CPUEXT_SLOW(flags, AVX)
 
#define X86_XOP(flags)   CPUEXT(flags, XOP)
 
#define X86_FMA3(flags)   CPUEXT(flags, FMA3)
 
#define X86_FMA4(flags)   CPUEXT(flags, FMA4)
 
#define X86_AVX2(flags)   CPUEXT(flags, AVX2)
 
#define EXTERNAL_AMD3DNOW(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOW)
 
#define EXTERNAL_AMD3DNOWEXT(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOWEXT)
 
#define EXTERNAL_MMX(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, MMX)
 
#define EXTERNAL_MMXEXT(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, MMXEXT)
 
#define EXTERNAL_SSE(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSE)
 
#define EXTERNAL_SSE2(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSE2)
 
#define EXTERNAL_SSE2_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, SSE2)
 
#define EXTERNAL_SSE2_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, SSE2)
 
#define EXTERNAL_SSE3(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSE3)
 
#define EXTERNAL_SSE3_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, SSE3)
 
#define EXTERNAL_SSE3_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, SSE3)
 
#define EXTERNAL_SSSE3(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSSE3)
 
#define EXTERNAL_SSE4(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSE4)
 
#define EXTERNAL_SSE42(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSE42)
 
#define EXTERNAL_AVX(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, AVX)
 
#define EXTERNAL_AVX_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, AVX)
 
#define EXTERNAL_AVX_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, AVX)
 
#define EXTERNAL_XOP(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, XOP)
 
#define EXTERNAL_FMA3(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, FMA3)
 
#define EXTERNAL_FMA4(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, FMA4)
 
#define EXTERNAL_AVX2(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, AVX2)
 
#define INLINE_AMD3DNOW(flags)   CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOW)
 
#define INLINE_AMD3DNOWEXT(flags)   CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOWEXT)
 
#define INLINE_MMX(flags)   CPUEXT_SUFFIX(flags, _INLINE, MMX)
 
#define INLINE_MMXEXT(flags)   CPUEXT_SUFFIX(flags, _INLINE, MMXEXT)
 
#define INLINE_SSE(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSE)
 
#define INLINE_SSE2(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSE2)
 
#define INLINE_SSE2_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _INLINE, SSE2)
 
#define INLINE_SSE2_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _INLINE, SSE2)
 
#define INLINE_SSE3(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSE3)
 
#define INLINE_SSE3_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _INLINE, SSE3)
 
#define INLINE_SSE3_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _INLINE, SSE3)
 
#define INLINE_SSSE3(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSSE3)
 
#define INLINE_SSE4(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSE4)
 
#define INLINE_SSE42(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSE42)
 
#define INLINE_AVX(flags)   CPUEXT_SUFFIX(flags, _INLINE, AVX)
 
#define INLINE_AVX_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _INLINE, AVX)
 
#define INLINE_AVX_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _INLINE, AVX)
 
#define INLINE_XOP(flags)   CPUEXT_SUFFIX(flags, _INLINE, XOP)
 
#define INLINE_FMA3(flags)   CPUEXT_SUFFIX(flags, _INLINE, FMA3)
 
#define INLINE_FMA4(flags)   CPUEXT_SUFFIX(flags, _INLINE, FMA4)
 
#define INLINE_AVX2(flags)   CPUEXT_SUFFIX(flags, _INLINE, AVX2)
 

Functions

void ff_cpu_cpuid (int index, int *eax, int *ebx, int *ecx, int *edx)
 
void ff_cpu_xgetbv (int op, int *eax, int *edx)
 
int ff_cpu_cpuid_test (void)
 

Macro Definition Documentation

#define AV_CPU_FLAG_AMD3DNOW   AV_CPU_FLAG_3DNOW

Definition at line 26 of file cpu.h.

#define AV_CPU_FLAG_AMD3DNOWEXT   AV_CPU_FLAG_3DNOWEXT

Definition at line 27 of file cpu.h.

#define X86_AMD3DNOW (   flags)    CPUEXT(flags, AMD3DNOW)

Definition at line 29 of file cpu.h.

#define X86_AMD3DNOWEXT (   flags)    CPUEXT(flags, AMD3DNOWEXT)

Definition at line 30 of file cpu.h.

#define X86_MMX (   flags)    CPUEXT(flags, MMX)

Definition at line 31 of file cpu.h.

Referenced by sws_init_context().

#define X86_MMXEXT (   flags)    CPUEXT(flags, MMXEXT)

Definition at line 32 of file cpu.h.

Referenced by ff_qpeldsp_init_x86().

#define X86_SSE (   flags)    CPUEXT(flags, SSE)

Definition at line 33 of file cpu.h.

#define X86_SSE2 (   flags)    CPUEXT(flags, SSE2)

Definition at line 34 of file cpu.h.

#define X86_SSE2_FAST (   flags)    CPUEXT_FAST(flags, SSE2)

Definition at line 35 of file cpu.h.

#define X86_SSE2_SLOW (   flags)    CPUEXT_SLOW(flags, SSE2)

Definition at line 36 of file cpu.h.

#define X86_SSE3 (   flags)    CPUEXT(flags, SSE3)

Definition at line 37 of file cpu.h.

#define X86_SSE3_FAST (   flags)    CPUEXT_FAST(flags, SSE3)

Definition at line 38 of file cpu.h.

#define X86_SSE3_SLOW (   flags)    CPUEXT_SLOW(flags, SSE3)

Definition at line 39 of file cpu.h.

#define X86_SSSE3 (   flags)    CPUEXT(flags, SSSE3)

Definition at line 40 of file cpu.h.

#define X86_SSE4 (   flags)    CPUEXT(flags, SSE4)

Definition at line 41 of file cpu.h.

#define X86_SSE42 (   flags)    CPUEXT(flags, SSE42)

Definition at line 42 of file cpu.h.

#define X86_AVX (   flags)    CPUEXT(flags, AVX)

Definition at line 43 of file cpu.h.

#define X86_AVX_FAST (   flags)    CPUEXT_FAST(flags, AVX)

Definition at line 44 of file cpu.h.

#define X86_AVX_SLOW (   flags)    CPUEXT_SLOW(flags, AVX)

Definition at line 45 of file cpu.h.

#define X86_XOP (   flags)    CPUEXT(flags, XOP)

Definition at line 46 of file cpu.h.

#define X86_FMA3 (   flags)    CPUEXT(flags, FMA3)

Definition at line 47 of file cpu.h.

#define X86_FMA4 (   flags)    CPUEXT(flags, FMA4)

Definition at line 48 of file cpu.h.

#define X86_AVX2 (   flags)    CPUEXT(flags, AVX2)

Definition at line 49 of file cpu.h.

#define EXTERNAL_AMD3DNOW (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOW)
#define EXTERNAL_AMD3DNOWEXT (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOWEXT)

Definition at line 52 of file cpu.h.

Referenced by ff_fft_init_x86(), and ff_float_dsp_init_x86().

#define EXTERNAL_MMX (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, MMX)
#define EXTERNAL_MMXEXT (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, MMXEXT)
#define EXTERNAL_SSE (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSE)
#define EXTERNAL_SSE2 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSE2)
#define EXTERNAL_SSE2_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, SSE2)

Definition at line 57 of file cpu.h.

#define EXTERNAL_SSE2_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, SSE2)

Definition at line 58 of file cpu.h.

#define EXTERNAL_SSE3 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSE3)

Definition at line 59 of file cpu.h.

Referenced by ff_mpadsp_init_x86(), ff_psdsp_init_x86(), and ff_sbrdsp_init_x86().

#define EXTERNAL_SSE3_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, SSE3)

Definition at line 60 of file cpu.h.

#define EXTERNAL_SSE3_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, SSE3)

Definition at line 61 of file cpu.h.

#define EXTERNAL_SSSE3 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSSE3)
#define EXTERNAL_SSE4 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSE4)
#define EXTERNAL_SSE42 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSE42)

Definition at line 64 of file cpu.h.

#define EXTERNAL_AVX (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, AVX)
#define EXTERNAL_AVX_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, AVX)
#define EXTERNAL_AVX_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, AVX)

Definition at line 67 of file cpu.h.

#define EXTERNAL_XOP (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, XOP)
#define EXTERNAL_FMA3 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, FMA3)
#define EXTERNAL_FMA4 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, FMA4)

Definition at line 70 of file cpu.h.

Referenced by swri_resample_dsp_x86_init().

#define EXTERNAL_AVX2 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, AVX2)
#define INLINE_AMD3DNOW (   flags)    CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOW)
#define INLINE_AMD3DNOWEXT (   flags)    CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOWEXT)

Definition at line 74 of file cpu.h.

#define INLINE_MMX (   flags)    CPUEXT_SUFFIX(flags, _INLINE, MMX)
#define INLINE_MMXEXT (   flags)    CPUEXT_SUFFIX(flags, _INLINE, MMXEXT)
#define INLINE_SSE (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSE)

Definition at line 77 of file cpu.h.

Referenced by ff_ac3dsp_init_x86(), and ff_mpadsp_init_x86().

#define INLINE_SSE2 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSE2)

Definition at line 78 of file cpu.h.

Referenced by ff_dct_encode_init_x86(), ff_fdctdsp_init_x86(), and rgb2rgb_init_x86().

#define INLINE_SSE2_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _INLINE, SSE2)

Definition at line 79 of file cpu.h.

#define INLINE_SSE2_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _INLINE, SSE2)

Definition at line 80 of file cpu.h.

#define INLINE_SSE3 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSE3)

Definition at line 81 of file cpu.h.

#define INLINE_SSE3_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _INLINE, SSE3)

Definition at line 82 of file cpu.h.

#define INLINE_SSE3_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _INLINE, SSE3)

Definition at line 83 of file cpu.h.

#define INLINE_SSSE3 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSSE3)

Definition at line 84 of file cpu.h.

Referenced by ff_dct_encode_init_x86(), and ff_mpegvideoencdsp_init_x86().

#define INLINE_SSE4 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSE4)

Definition at line 85 of file cpu.h.

#define INLINE_SSE42 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSE42)

Definition at line 86 of file cpu.h.

#define INLINE_AVX (   flags)    CPUEXT_SUFFIX(flags, _INLINE, AVX)

Definition at line 87 of file cpu.h.

Referenced by rgb2rgb_init_x86().

#define INLINE_AVX_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _INLINE, AVX)

Definition at line 88 of file cpu.h.

#define INLINE_AVX_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _INLINE, AVX)

Definition at line 89 of file cpu.h.

#define INLINE_XOP (   flags)    CPUEXT_SUFFIX(flags, _INLINE, XOP)

Definition at line 90 of file cpu.h.

#define INLINE_FMA3 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, FMA3)

Definition at line 91 of file cpu.h.

#define INLINE_FMA4 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, FMA4)

Definition at line 92 of file cpu.h.

#define INLINE_AVX2 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, AVX2)

Definition at line 93 of file cpu.h.

Function Documentation

void ff_cpu_cpuid ( int  index,
int *  eax,
int *  ebx,
int *  ecx,
int *  edx 
)
void ff_cpu_xgetbv ( int  op,
int *  eax,
int *  edx 
)
int ff_cpu_cpuid_test ( void  )