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

Go to the source code of this file.

Macros

#define CPUEXT(flags, suffix, cpuext)   (HAVE_ ## cpuext ## suffix && ((flags) & AV_CPU_FLAG_ ## cpuext))
 
#define AV_CPU_FLAG_AMD3DNOW   AV_CPU_FLAG_3DNOW
 
#define AV_CPU_FLAG_AMD3DNOWEXT   AV_CPU_FLAG_3DNOWEXT
 
#define EXTERNAL_AMD3DNOW(flags)   CPUEXT(flags, _EXTERNAL, AMD3DNOW)
 
#define EXTERNAL_AMD3DNOWEXT(flags)   CPUEXT(flags, _EXTERNAL, AMD3DNOWEXT)
 
#define EXTERNAL_MMX(flags)   CPUEXT(flags, _EXTERNAL, MMX)
 
#define EXTERNAL_MMXEXT(flags)   CPUEXT(flags, _EXTERNAL, MMXEXT)
 
#define EXTERNAL_SSE(flags)   CPUEXT(flags, _EXTERNAL, SSE)
 
#define EXTERNAL_SSE2(flags)   CPUEXT(flags, _EXTERNAL, SSE2)
 
#define EXTERNAL_SSE3(flags)   CPUEXT(flags, _EXTERNAL, SSE3)
 
#define EXTERNAL_SSSE3(flags)   CPUEXT(flags, _EXTERNAL, SSSE3)
 
#define EXTERNAL_SSE4(flags)   CPUEXT(flags, _EXTERNAL, SSE4)
 
#define EXTERNAL_SSE42(flags)   CPUEXT(flags, _EXTERNAL, SSE42)
 
#define EXTERNAL_AVX(flags)   CPUEXT(flags, _EXTERNAL, AVX)
 
#define EXTERNAL_FMA4(flags)   CPUEXT(flags, _EXTERNAL, FMA4)
 
#define INLINE_AMD3DNOW(flags)   CPUEXT(flags, _INLINE, AMD3DNOW)
 
#define INLINE_AMD3DNOWEXT(flags)   CPUEXT(flags, _INLINE, AMD3DNOWEXT)
 
#define INLINE_MMX(flags)   CPUEXT(flags, _INLINE, MMX)
 
#define INLINE_MMXEXT(flags)   CPUEXT(flags, _INLINE, MMXEXT)
 
#define INLINE_SSE(flags)   CPUEXT(flags, _INLINE, SSE)
 
#define INLINE_SSE2(flags)   CPUEXT(flags, _INLINE, SSE2)
 
#define INLINE_SSE3(flags)   CPUEXT(flags, _INLINE, SSE3)
 
#define INLINE_SSSE3(flags)   CPUEXT(flags, _INLINE, SSSE3)
 
#define INLINE_SSE4(flags)   CPUEXT(flags, _INLINE, SSE4)
 
#define INLINE_SSE42(flags)   CPUEXT(flags, _INLINE, SSE42)
 
#define INLINE_AVX(flags)   CPUEXT(flags, _INLINE, AVX)
 
#define INLINE_FMA4(flags)   CPUEXT(flags, _INLINE, FMA4)
 

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 CPUEXT (   flags,
  suffix,
  cpuext 
)    (HAVE_ ## cpuext ## suffix && ((flags) & AV_CPU_FLAG_ ## cpuext))

Definition at line 25 of file cpu.h.

#define AV_CPU_FLAG_AMD3DNOW   AV_CPU_FLAG_3DNOW

Definition at line 28 of file cpu.h.

#define AV_CPU_FLAG_AMD3DNOWEXT   AV_CPU_FLAG_3DNOWEXT

Definition at line 29 of file cpu.h.

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

Definition at line 32 of file cpu.h.

Referenced by ff_fft_init_x86(), and ff_fmt_convert_init_x86().

#define EXTERNAL_MMX (   flags)    CPUEXT(flags, _EXTERNAL, MMX)
#define EXTERNAL_MMXEXT (   flags)    CPUEXT(flags, _EXTERNAL, MMXEXT)
#define EXTERNAL_SSE (   flags)    CPUEXT(flags, _EXTERNAL, SSE)
#define EXTERNAL_SSE2 (   flags)    CPUEXT(flags, _EXTERNAL, SSE2)
#define EXTERNAL_SSE3 (   flags)    CPUEXT(flags, _EXTERNAL, SSE3)

Definition at line 37 of file cpu.h.

Referenced by ff_mpadsp_init_x86().

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

Definition at line 40 of file cpu.h.

#define EXTERNAL_AVX (   flags)    CPUEXT(flags, _EXTERNAL, AVX)
#define EXTERNAL_FMA4 (   flags)    CPUEXT(flags, _EXTERNAL, FMA4)

Definition at line 42 of file cpu.h.

#define INLINE_AMD3DNOW (   flags)    CPUEXT(flags, _INLINE, AMD3DNOW)

Definition at line 44 of file cpu.h.

Referenced by rgb2rgb_init_x86(), and sws_init_context().

#define INLINE_AMD3DNOWEXT (   flags)    CPUEXT(flags, _INLINE, AMD3DNOWEXT)

Definition at line 45 of file cpu.h.

Referenced by ff_float_dsp_init_x86().

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

Definition at line 48 of file cpu.h.

Referenced by ff_ac3dsp_init_x86(), and ff_float_dsp_init_x86().

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

Definition at line 49 of file cpu.h.

Referenced by ff_dct_encode_init_x86(), and rgb2rgb_init_x86().

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

Definition at line 50 of file cpu.h.

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

Definition at line 51 of file cpu.h.

Referenced by ff_dct_encode_init_x86().

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

Definition at line 52 of file cpu.h.

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

Definition at line 53 of file cpu.h.

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

Definition at line 54 of file cpu.h.

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

Definition at line 55 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  )