HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SYS_ProcessorDefines.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * Authored by:
7  * Mark Alexander
8  * Side Effects Software Inc.
9  *
10  * NAME: SYS_ProcessorDefines.h (Utility Library, C++)
11  *
12  * COMMENTS:
13  * Defines needed for the SYSgetProcessor call in SYS_Platform.h.
14  */
15 
16 #ifndef __SYS_ProcessorDefines_h__
17 #define __SYS_ProcessorDefines_h__
18 
19 // Processor codes:
25  SYS_PROC_IA32, // Generic IA32
27  SYS_PROC_IA64, // Itanium - Dead, will never return this
28  SYS_PROC_PPC64, // PowerPC 64 - Dead, will never return this
29  SYS_PROC_AMD64, // AMD 64
31 };
32 
33 // Flags: (bitfield)
35  SYS_PROCFLAG_NONE = 0x00000000,
36  SYS_PROCFLAG_MMX = 0x00000001, // Intel MMX (PentiumMMX+, Athlon)
37  SYS_PROCFLAG_XMMX = 0x00000002, // Intel XMMX (PentiumIII, Althon)
38  SYS_PROCFLAG_SSE = 0x00000004, // Intel SSE (PentiumIII)
39  SYS_PROCFLAG_SSE2 = 0x00000008, // Intel SSE2 (Pentium4)
40  SYS_PROCFLAG_CONDMOV = 0x00000010, // Conditional mov (Pentium Pro+,Ath?)
41  SYS_PROCFLAG_FPCONDMOV = 0x00000020, // FP Condition mov (Pentium Pro+,Ath?)
42  SYS_PROCFLAG_HYPERTHREAD = 0x00000040, // P4 HyperThreading
43  SYS_PROCFLAG_3DNOW = 0x00000080, // 3Dnow!
44  SYS_PROCFLAG_ALTIVEC = 0x00000100, // PPC Altivec - Dead
45  SYS_PROCFLAG_SSE3 = 0x00000200, // Intel SSE3
46  SYS_PROCFLAG_SSSE3 = 0x00000400, // Intel SSSE3
47  SYS_PROCFLAG_SSE41 = 0x00000800, // Intel SSE41
48  SYS_PROCFLAG_SSE42 = 0x00001000, // Intel SSE42
49  SYS_PROCFLAG_AVX = 0x00002000, // AVX
50  SYS_PROCFLAG_AVX2 = 0x00004000, // AVX2
51  SYS_PROCFLAG_AVX512KNL = 0x00008000, // AVX512KNL (Knights Landing)
52  SYS_PROCFLAG_AVX512SKX = 0x00010000, // AVX512SKX (Skylake X)
53 };
54 
55 // Return a string representation of the processor code
56 SYS_API extern const char *SYSprocessorType(SYS_PROCESSOR_CODE majortype);
57 // Return a string representation of the processor flag
58 SYS_API extern const char *SYSprocessorFlag(SYS_PROCESSOR_FLAG flag);
59 
60 #endif
SYS_PROCESSOR_CODE
SYS_PROCESSOR_FLAG
SYS_API const char * SYSprocessorFlag(SYS_PROCESSOR_FLAG flag)
SYS_API const char * SYSprocessorType(SYS_PROCESSOR_CODE majortype)
#define SYS_API
Definition: SYS_API.h:11