⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skl_cpu_specs.h

📁 mpeg4编解码器
💻 H
字号:
/******************************************************** * Some code. Copyright (C) 2003 by Pascal Massimino.   * * All Rights Reserved.      (http://skal.planet-d.net) * * For Educational/Academic use ONLY. See 'LICENSE.TXT'.* ********************************************************//* * skl_cpu_specs.h * *  CPU's caps ********************************************************/#ifndef _SKL_CPU_SPECS_H_#define _SKL_CPU_SPECS_H_//////////////////////////////////////////////////////////// Implementation choices  /** @file */  /** @enum SKL_CPU_FEATURE     This enumeration select the CPU instruction set low-level     functions should use, if available.     @see Skl_Detect_CPU_Feature     @see SKL_MP4_ENC::Set_CPU     @see SKL_MP4_DEC::Set_CPU    */typedef enum {  SKL_CPU_C    = 0, /**< Use C version only */  SKL_CPU_X86  = 1, /**< Use x86 instruction set */  SKL_CPU_MMX  = 2, /**< Use MMX instruction set */  SKL_CPU_SSE  = 3, /**< Use SSE instruction set */  SKL_CPU_SSE2 = 4, /**< Use SSE2 instruction set */  SKL_CPU_REF  = 5, /**< Use Reference (slow) implementation */  SKL_CPU_ALT  = 6, /**< Alternative implementation, for tests. */  SKL_CPU_LAST = 7,  SKL_CPU_DETECT = 7  /**< System will attempt to autodetect available CPU features */} SKL_CPU_FEATURE;extern "C" {  /** After autoprobing, this function returns the most efficient      available feature.    */extern SKL_CPU_FEATURE Skl_Detect_CPU_Feature();typedef void (*SKL_DSP_SWITCH)();extern void Skl_Switch_MMX();extern void Skl_Switch_None();extern SKL_DSP_SWITCH Skl_Get_Switch(SKL_CPU_FEATURE Cpu);#ifdef SKL_USE_ASM#ifdef __LINUX__#define SKL_EMMS asm( "emms" : : )#else#define SKL_EMMS _asm emms#endif#else#define SKL_EMMS#endif  /* SKL_USE_ASM */}//////////////////////////////////////////////////////////#ifdef SKL_USE_ASMextern "C" {extern int Skl_Detect_CPUID();extern int Skl_Detect_MMX();extern int Skl_Detect_SSE();extern int Skl_Detect_SSE2();extern int Skl_Detect_3DNOW();extern void Skl_Get_CPUID(char Id[12+1]);extern void Skl_Get_ModelID(char Id[48+1]);}#endif  /* SKL_USE_ASM *///////////////////////////////////////////////////////////  class SKL_CPU_SPECS{  private:    static int  _SType;    static int  _SFlags;    static char _Vendor[12+1];    static char _Model[48+1];    int _Type;    int _Flags;  public:    enum {      SKL_INTEL   = 0,      SKL_AMD     = 1,      SKL_K6      = 2,      SKL_ATHLON  = 3,      SKL_CYRIX   = 4,      SKL_SGI     = 5,      SKL_SPARC   = 6,      SKL_ALPHA   = 7,      SKL_HP      = 8,      SKL_UNKNOWN = 9    };    enum { SKL_CPUID  =  1,           SKL_MMX    =  2,           SKL_SSE    =  4,           SKL_SSE2   =  8,           SKL_3DNOW  = 16,           SKL_3DNOW2 = 32,           SKL_LAST   = 64    };    SKL_CPU_SPECS(int Ignore_Feature=0);    static void Reset();    static void Detect();    static int Check_Types();    static void Test_Float();    int Get_Flags() const   { return _Flags; }    int Get_Type() const    { return _Type; }    int Is_x86() const      { return (_Type==SKL_INTEL)||(_Type==SKL_AMD); }    int Has_MMX() const    { return (_Flags&SKL_MMX)!=0; }    int Has_SSE() const    { return (_Flags&SKL_SSE)!=0; }    int Has_SSE2() const   { return (_Flags&SKL_SSE2)!=0; }    int Has_3DNow() const  { return (_Flags&SKL_3DNOW)!=0; }    int Has_3DNow2() const { return (_Flags&SKL_3DNOW2)!=0; }    void Print_Infos() const;};//////////////////////////////////////////////////////////#endif  /* _SKL_CPU_SPECS_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -