FFmpeg
Loading...
Searching...
No Matches
cpu.h File Reference

Go to the source code of this file.

Macros

#define X86_MMX(flags)
 
#define X86_MMXEXT(flags)
 
#define X86_SSE(flags)
 
#define X86_SSE2(flags)
 
#define X86_SSE2_FAST(flags)
 
#define X86_SSE2_SLOW(flags)
 
#define X86_SSE3(flags)
 
#define X86_SSE3_FAST(flags)
 
#define X86_SSE3_SLOW(flags)
 
#define X86_SSSE3(flags)
 
#define X86_SSSE3_FAST(flags)
 
#define X86_SSSE3_SLOW(flags)
 
#define X86_SSE4(flags)
 
#define X86_SSE42(flags)
 
#define X86_AVX(flags)
 
#define X86_AVX_FAST(flags)
 
#define X86_AVX_SLOW(flags)
 
#define X86_XOP(flags)
 
#define X86_FMA3(flags)
 
#define X86_FMA4(flags)
 
#define X86_AVX2(flags)
 
#define X86_AESNI(flags)
 
#define X86_CLMUL(flags)
 
#define X86_AVX512(flags)
 
#define EXTERNAL_MMX(flags)
 
#define EXTERNAL_MMXEXT(flags)
 
#define EXTERNAL_SSE(flags)
 
#define EXTERNAL_SSE2(flags)
 
#define EXTERNAL_SSE2_FAST(flags)
 
#define EXTERNAL_SSE2_SLOW(flags)
 
#define EXTERNAL_SSE3(flags)
 
#define EXTERNAL_SSE3_FAST(flags)
 
#define EXTERNAL_SSE3_SLOW(flags)
 
#define EXTERNAL_SSSE3(flags)
 
#define EXTERNAL_SSSE3_FAST(flags)
 
#define EXTERNAL_SSSE3_SLOW(flags)
 
#define EXTERNAL_SSE4(flags)
 
#define EXTERNAL_SSE42(flags)
 
#define EXTERNAL_AVX(flags)
 
#define EXTERNAL_AVX_FAST(flags)
 
#define EXTERNAL_AVX_SLOW(flags)
 
#define EXTERNAL_XOP(flags)
 
#define EXTERNAL_FMA3(flags)
 
#define EXTERNAL_FMA3_FAST(flags)
 
#define EXTERNAL_FMA3_SLOW(flags)
 
#define EXTERNAL_FMA4(flags)
 
#define EXTERNAL_AVX2(flags)
 
#define EXTERNAL_AVX2_FAST(flags)
 
#define EXTERNAL_AVX2_SLOW(flags)
 
#define EXTERNAL_AESNI(flags)
 
#define EXTERNAL_CLMUL(flags)
 
#define EXTERNAL_AVX512(flags)
 
#define EXTERNAL_AVX512ICL(flags)
 
#define INLINE_MMX(flags)
 
#define INLINE_MMXEXT(flags)
 
#define INLINE_SSE(flags)
 
#define INLINE_SSE2(flags)
 
#define INLINE_SSE2_FAST(flags)
 
#define INLINE_SSE2_SLOW(flags)
 
#define INLINE_SSE3(flags)
 
#define INLINE_SSE3_FAST(flags)
 
#define INLINE_SSE3_SLOW(flags)
 
#define INLINE_SSSE3(flags)
 
#define INLINE_SSSE3_FAST(flags)
 
#define INLINE_SSSE3_SLOW(flags)
 
#define INLINE_SSE4(flags)
 
#define INLINE_SSE42(flags)
 
#define INLINE_AVX(flags)
 
#define INLINE_AVX_FAST(flags)
 
#define INLINE_AVX_SLOW(flags)
 
#define INLINE_XOP(flags)
 
#define INLINE_FMA3(flags)
 
#define INLINE_FMA4(flags)
 
#define INLINE_AVX2(flags)
 
#define INLINE_AESNI(flags)
 

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

◆ X86_MMX

#define X86_MMX ( flags)
Value:
#define flags(name, subs,...)
Definition cbs_h264.c:74
#define CPUEXT(flags, cpuext)

Definition at line 25 of file cpu.h.

Referenced by ff_sws_init_single_context().

◆ X86_MMXEXT

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

Definition at line 26 of file cpu.h.

Referenced by ff_sws_init_swscale_x86().

◆ X86_SSE

#define X86_SSE ( flags)
Value:

Definition at line 27 of file cpu.h.

◆ X86_SSE2

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

Definition at line 28 of file cpu.h.

◆ X86_SSE2_FAST

#define X86_SSE2_FAST ( flags)
Value:
#define CPUEXT_FAST(flags, cpuext)

Definition at line 29 of file cpu.h.

◆ X86_SSE2_SLOW

#define X86_SSE2_SLOW ( flags)
Value:
#define CPUEXT_SLOW(flags, cpuext)

Definition at line 30 of file cpu.h.

◆ X86_SSE3

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

Definition at line 31 of file cpu.h.

◆ X86_SSE3_FAST

#define X86_SSE3_FAST ( flags)
Value:

Definition at line 32 of file cpu.h.

◆ X86_SSE3_SLOW

#define X86_SSE3_SLOW ( flags)
Value:

Definition at line 33 of file cpu.h.

◆ X86_SSSE3

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

Definition at line 34 of file cpu.h.

Referenced by ff_mpegvideoencdsp_init_x86().

◆ X86_SSSE3_FAST

#define X86_SSSE3_FAST ( flags)
Value:

Definition at line 35 of file cpu.h.

◆ X86_SSSE3_SLOW

#define X86_SSSE3_SLOW ( flags)
Value:

Definition at line 36 of file cpu.h.

◆ X86_SSE4

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

Definition at line 37 of file cpu.h.

◆ X86_SSE42

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

Definition at line 38 of file cpu.h.

◆ X86_AVX

#define X86_AVX ( flags)
Value:

Definition at line 39 of file cpu.h.

◆ X86_AVX_FAST

#define X86_AVX_FAST ( flags)
Value:

Definition at line 40 of file cpu.h.

◆ X86_AVX_SLOW

#define X86_AVX_SLOW ( flags)
Value:

Definition at line 41 of file cpu.h.

◆ X86_XOP

#define X86_XOP ( flags)
Value:

Definition at line 42 of file cpu.h.

◆ X86_FMA3

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

Definition at line 43 of file cpu.h.

◆ X86_FMA4

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

Definition at line 44 of file cpu.h.

◆ X86_AVX2

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

Definition at line 45 of file cpu.h.

◆ X86_AESNI

#define X86_AESNI ( flags)
Value:
CPUEXT(flags, AESNI)

Definition at line 46 of file cpu.h.

◆ X86_CLMUL

#define X86_CLMUL ( flags)
Value:
CPUEXT(flags, CLMUL)

Definition at line 47 of file cpu.h.

◆ X86_AVX512

#define X86_AVX512 ( flags)
Value:
CPUEXT(flags, AVX512)

Definition at line 48 of file cpu.h.

◆ EXTERNAL_MMX

#define EXTERNAL_MMX ( flags)
Value:
CPUEXT_SUFFIX(flags, _EXTERNAL, MMX)
#define CPUEXT_SUFFIX(flags, suffix, cpuext)

Definition at line 50 of file cpu.h.

Referenced by ff_fsppdsp_init_x86(), ff_h264dsp_init_x86(), ff_vc1dsp_init_x86(), and ff_vp9dsp_init_16bpp_x86().

◆ EXTERNAL_MMXEXT

◆ EXTERNAL_SSE

◆ EXTERNAL_SSE2

#define EXTERNAL_SSE2 ( flags)
Value:
CPUEXT_SUFFIX(flags, _EXTERNAL, SSE2)

Definition at line 53 of file cpu.h.

Referenced by D(), ff_aacenc_dsp_init_x86(), ff_ac3dsp_init_x86(), ff_alacdsp_init_x86(), ff_audiodsp_init_x86(), ff_blend_init_x86(), ff_blockdsp_init_x86(), ff_bswapdsp_init_x86(), ff_bwdif_init_x86(), ff_cavsdsp_init_x86(), ff_celt_pvq_init_x86(), ff_cfhddsp_init_x86(), ff_cfhdencdsp_init_x86(), ff_colorspacedsp_x86_init(), ff_dcadsp_init_x86(), ff_diracdsp_init_x86(), ff_dnxhdenc_init_x86(), ff_eq_init_x86(), ff_exrdsp_init_x86(), ff_fixed_dsp_init_x86(), ff_flacdsp_init_x86(), ff_float_dsp_init_x86(), ff_fmt_convert_init_x86(), ff_fsppdsp_init_x86(), ff_g722dsp_init_x86(), ff_gradfun_init_x86(), ff_h263dsp_init_x86(), ff_h264chroma_init_x86(), ff_h264dsp_init_x86(), ff_h264qpel_init_x86(), ff_hevc_dsp_init_x86(), ff_hpeldsp_init_x86(), ff_huffyuvdsp_init_x86(), ff_huffyuvencdsp_init_x86(), ff_idctdsp_init_x86(), ff_init_lls_x86(), ff_jpeg2000dsp_init_x86(), ff_limiter_init_x86(), ff_llauddsp_init_x86(), ff_llviddsp_init_x86(), ff_llvidencdsp_init_x86(), ff_lpc_init_x86(), ff_lut3d_init_x86(), ff_maskedclamp_init_x86(), ff_maskedmerge_init_x86(), ff_me_cmp_init_x86(), ff_mpadsp_init_x86(), ff_mpegvideoencdsp_init_x86(), ff_pixblockdsp_init_x86(), ff_pixelutils_sad_init_x86(), ff_pngdsp_init_x86(), ff_pp7dsp_init_x86(), ff_proresdsp_init_x86(), ff_psnr_init_x86(), ff_pullup_init_x86(), ff_qpeldsp_init_x86(), ff_removegrain_init_x86(), ff_rv34dsp_init_x86(), ff_rv40dsp_init_x86(), ff_sbcdsp_init_x86(), ff_sbrdsp_init_x86(), ff_scene_sad_get_fn_x86(), ff_svq1enc_init_x86(), ff_sws_init_range_convert_x86(), ff_sws_init_swscale_x86(), ff_synth_filter_init_x86(), ff_takdsp_init_x86(), ff_tinterlace_init_x86(), ff_transpose_init_x86(), ff_utvideodsp_init_x86(), ff_vc1dsp_init_x86(), ff_videodsp_init_x86(), ff_volume_init_x86(), ff_vp3dsp_init_x86(), ff_vp6dsp_init_x86(), ff_vp8dsp_init_x86(), ff_vp9dsp_init_16bpp_x86(), ff_w3fdif_init_x86(), ff_xvid_idct_init_x86(), ff_yadif_init_x86(), FUNC_MAIN_DECL_16bit(), PRED4x4(), rgb2rgb_init_x86(), swri_audio_convert_init_x86(), and swri_resample_dsp_x86_init().

◆ EXTERNAL_SSE2_FAST

#define EXTERNAL_SSE2_FAST ( flags)
Value:
CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, SSE2)
#define CPUEXT_SUFFIX_FAST(flags, suffix, cpuext)

Definition at line 54 of file cpu.h.

◆ EXTERNAL_SSE2_SLOW

#define EXTERNAL_SSE2_SLOW ( flags)
Value:
CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, SSE2)
#define CPUEXT_SUFFIX_SLOW(flags, suffix, cpuext)

Definition at line 55 of file cpu.h.

Referenced by ff_vp78dsp_init_x86(), and ff_vp8dsp_init_x86().

◆ EXTERNAL_SSE3

#define EXTERNAL_SSE3 ( flags)

◆ EXTERNAL_SSE3_FAST

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

Definition at line 57 of file cpu.h.

◆ EXTERNAL_SSE3_SLOW

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

Definition at line 58 of file cpu.h.

◆ EXTERNAL_SSSE3

◆ EXTERNAL_SSSE3_FAST

#define EXTERNAL_SSSE3_FAST ( flags)
Value:
CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, SSSE3)

Definition at line 60 of file cpu.h.

◆ EXTERNAL_SSSE3_SLOW

#define EXTERNAL_SSSE3_SLOW ( flags)
Value:
CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, SSSE3)

Definition at line 61 of file cpu.h.

◆ EXTERNAL_SSE4

◆ EXTERNAL_SSE42

#define EXTERNAL_SSE42 ( flags)
Value:
CPUEXT_SUFFIX(flags, _EXTERNAL, SSE42)

Definition at line 63 of file cpu.h.

◆ EXTERNAL_AVX

◆ EXTERNAL_AVX_FAST

◆ EXTERNAL_AVX_SLOW

#define EXTERNAL_AVX_SLOW ( flags)
Value:
CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, AVX)

Definition at line 66 of file cpu.h.

◆ EXTERNAL_XOP

#define EXTERNAL_XOP ( flags)
Value:
CPUEXT_SUFFIX(flags, _EXTERNAL, XOP)

Definition at line 67 of file cpu.h.

Referenced by ff_flacdsp_init_x86(), ff_mpegvideoencdsp_init_x86(), ff_ssim_init_x86(), and swri_resample_dsp_x86_init().

◆ EXTERNAL_FMA3

#define EXTERNAL_FMA3 ( flags)
Value:
CPUEXT_SUFFIX(flags, _EXTERNAL, FMA3)

Definition at line 68 of file cpu.h.

Referenced by compile_x86(), ff_dcadsp_init_x86(), ff_lut3d_init_x86(), ff_opus_dsp_init_x86(), and ff_psdsp_init_x86().

◆ EXTERNAL_FMA3_FAST

#define EXTERNAL_FMA3_FAST ( flags)
Value:
CPUEXT_SUFFIX_FAST2(flags, _EXTERNAL, FMA3, AVX)
#define CPUEXT_SUFFIX_FAST2(flags, suffix, cpuext, slow_cpuext)

Definition at line 69 of file cpu.h.

Referenced by ff_afir_init_x86(), ff_float_dsp_init_x86(), ff_init_lls_x86(), ff_jpeg2000dsp_init_x86(), ff_synth_filter_init_x86(), and swri_resample_dsp_x86_init().

◆ EXTERNAL_FMA3_SLOW

#define EXTERNAL_FMA3_SLOW ( flags)
Value:
CPUEXT_SUFFIX_SLOW2(flags, _EXTERNAL, FMA3, AVX)
#define CPUEXT_SUFFIX_SLOW2(flags, suffix, cpuext, slow_cpuext)

Definition at line 70 of file cpu.h.

◆ EXTERNAL_FMA4

#define EXTERNAL_FMA4 ( flags)
Value:
CPUEXT_SUFFIX(flags, _EXTERNAL, FMA4)

Definition at line 71 of file cpu.h.

Referenced by ff_jpeg2000dsp_init_x86(), and swri_resample_dsp_x86_init().

◆ EXTERNAL_AVX2

◆ EXTERNAL_AVX2_FAST

◆ EXTERNAL_AVX2_SLOW

#define EXTERNAL_AVX2_SLOW ( flags)
Value:
CPUEXT_SUFFIX_SLOW2(flags, _EXTERNAL, AVX2, AVX)

Definition at line 74 of file cpu.h.

◆ EXTERNAL_AESNI

#define EXTERNAL_AESNI ( flags)
Value:
CPUEXT_SUFFIX(flags, _EXTERNAL, AESNI)

Definition at line 75 of file cpu.h.

Referenced by ff_init_aes_x86().

◆ EXTERNAL_CLMUL

#define EXTERNAL_CLMUL ( flags)
Value:
CPUEXT_SUFFIX(flags, _EXTERNAL, CLMUL)

Definition at line 76 of file cpu.h.

Referenced by ff_crc_get_table_x86(), and ff_crc_init_x86().

◆ EXTERNAL_AVX512

#define EXTERNAL_AVX512 ( flags)
Value:
CPUEXT_SUFFIX(flags, _EXTERNAL, AVX512)

Definition at line 77 of file cpu.h.

Referenced by ff_gblur_init_x86(), ff_scene_sad_get_fn_x86(), ff_v210enc_init_x86(), and get_mmsize().

◆ EXTERNAL_AVX512ICL

◆ INLINE_MMX

#define INLINE_MMX ( flags)
Value:
CPUEXT_SUFFIX(flags, _INLINE, MMX)

Definition at line 80 of file cpu.h.

Referenced by ff_mlpdsp_init_x86(), ff_sws_init_single_context(), and ff_vc1dsp_init_x86().

◆ INLINE_MMXEXT

#define INLINE_MMXEXT ( flags)
Value:
CPUEXT_SUFFIX(flags, _INLINE, MMXEXT)

Definition at line 81 of file cpu.h.

Referenced by ff_dwt_init_x86(), ff_sws_init_single_context(), ff_vc1dsp_init_x86(), and rgb2rgb_init_x86().

◆ INLINE_SSE

#define INLINE_SSE ( flags)
Value:
CPUEXT_SUFFIX(flags, _INLINE, SSE)

Definition at line 82 of file cpu.h.

Referenced by ff_mpadsp_init_x86().

◆ INLINE_SSE2

#define INLINE_SSE2 ( flags)

◆ INLINE_SSE2_FAST

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

Definition at line 84 of file cpu.h.

◆ INLINE_SSE2_SLOW

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

Definition at line 85 of file cpu.h.

Referenced by ff_lpc_init_x86().

◆ INLINE_SSE3

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

Definition at line 86 of file cpu.h.

◆ INLINE_SSE3_FAST

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

Definition at line 87 of file cpu.h.

◆ INLINE_SSE3_SLOW

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

Definition at line 88 of file cpu.h.

◆ INLINE_SSSE3

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

Definition at line 89 of file cpu.h.

Referenced by ff_dct_encode_init_x86(), ff_mpeg4videodsp_init_x86(), and ff_mpv_unquantize_init_x86().

◆ INLINE_SSSE3_FAST

#define INLINE_SSSE3_FAST ( flags)
Value:
CPUEXT_SUFFIX_FAST(flags, _INLINE, SSSE3)

Definition at line 90 of file cpu.h.

◆ INLINE_SSSE3_SLOW

#define INLINE_SSSE3_SLOW ( flags)
Value:
CPUEXT_SUFFIX_SLOW(flags, _INLINE, SSSE3)

Definition at line 91 of file cpu.h.

◆ INLINE_SSE4

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

Definition at line 92 of file cpu.h.

◆ INLINE_SSE42

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

Definition at line 93 of file cpu.h.

◆ INLINE_AVX

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

Definition at line 94 of file cpu.h.

◆ INLINE_AVX_FAST

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

Definition at line 95 of file cpu.h.

◆ INLINE_AVX_SLOW

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

Definition at line 96 of file cpu.h.

◆ INLINE_XOP

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

Definition at line 97 of file cpu.h.

◆ INLINE_FMA3

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

Definition at line 98 of file cpu.h.

◆ INLINE_FMA4

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

Definition at line 99 of file cpu.h.

◆ INLINE_AVX2

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

Definition at line 100 of file cpu.h.

◆ INLINE_AESNI

#define INLINE_AESNI ( flags)
Value:
CPUEXT_SUFFIX(flags, _INLINE, AESNI)

Definition at line 101 of file cpu.h.

Function Documentation

◆ ff_cpu_cpuid()

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

◆ ff_cpu_xgetbv()

void ff_cpu_xgetbv ( int op,
int * eax,
int * edx )

◆ ff_cpu_cpuid_test()

int ff_cpu_cpuid_test ( void )