1 #ifndef __CPUCONFIG_H__
2 #define __CPUCONFIG_H__
4 /* Automatically generated CPU information header */
6 #define CPUCONF_CHAR_SIZE (1)
7 #define CPUCONF_SHORT_SIZE (2)
8 #define CPUCONF_INT_SIZE (4)
9 #define CPUCONF_LONG_LONG_SIZE (8)
10 #define CPUCONF_FLOAT_SIZE (4)
11 #define CPUCONF_DOUBLE_SIZE (8)
12 #define CPUCONF_LONG_DOUBLE_SIZE (16)
14 #define CPUCONF_CHAR_BITS (8)
15 #define CPUCONF_SHORT_BITS (16)
16 #define CPUCONF_INT_BITS (32)
17 #define CPUCONF_LONG_LONG_BITS (64)
18 #define CPUCONF_FLOAT_BITS (32)
19 #define CPUCONF_DOUBLE_BITS (64)
20 #define CPUCONF_LONG_DOUBLE_BITS (128)
22 #define CPUCONF_CHAR_SIZESHIFT (0)
23 #define CPUCONF_SHORT_SIZESHIFT (1)
24 #define CPUCONF_INT_SIZESHIFT (2)
25 #define CPUCONF_LONG_LONG_SIZESHIFT (3)
27 #define CPUCONF_FLOAT_SIZESHIFT (2)
28 #define CPUCONF_DOUBLE_SIZESHIFT (3)
29 #define CPUCONF_LONG_DOUBLE_SIZESHIFT (4)
31 #define CPUCONF_CHAR_BITSHIFT (3)
32 #define CPUCONF_SHORT_BITSHIFT (4)
33 #define CPUCONF_INT_BITSHIFT (5)
34 #define CPUCONF_LONG_LONG_BITSHIFT (6)
35 #define CPUCONF_FLOAT_BITSHIFT (5)
36 #define CPUCONF_DOUBLE_BITSHIFT (6)
37 #define CPUCONF_LONG_DOUBLE_BITSHIFT (7)
39 #if defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN || \
40 defined(__BIG_ENDIAN__) || \
41 defined(__ARMEB__) || \
42 defined(__THUMBEB__) || \
43 defined(__AARCH64EB__) || \
44 defined(_MIBSEB) || defined(__MIBSEB) || defined(__MIBSEB__)
45 #define CPUCONF_BIG_ENDIAN
46 #elif defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN || \
47 defined(__LITTLE_ENDIAN__) || \
48 defined(__ARMEL__) || \
49 defined(__THUMBEL__) || \
50 defined(__AARCH64EL__) || \
51 defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__)
52 #define CPUCONF_LITTLE_ENDIAN
54 #define CPUCONF_LITTLE_ENDIAN
55 //#error "Unknown endianness"
58 #if (defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__) || defined(_M_X64) || defined(_WIN64) || defined(__LP64__) || defined(__LLP64__)
60 #if defined(__x86_64__) || defined(_M_X64)
61 #define CPUCONF_ARCH_AMD64
64 #define CPUCONF_INTPTR_SIZE (8)
65 #define CPUCONF_POINTER_SIZE (8)
66 #define CPUCONF_INTPTR_BITS (64)
67 #define CPUCONF_POINTER_BITS (64)
68 #define CPUCONF_INTPTR_SIZESHIFT (3)
69 #define CPUCONF_POINTER_SIZESHIFT (3)
70 #define CPUCONF_INTPTR_BITSHIFT (6)
71 #define CPUCONF_POINTER_BITSHIFT (6)
73 #if defined(__WIN32__)
74 #define CPUCONF_LONG_SIZE (4)
76 #define CPUCONF_LONG_SIZE (8)
78 #define CPUCONF_LONG_BITSHIFT ((sizeof(long) == 4) ? 5 : 6)
79 #define CPUCONF_LONG_SIZESHIFT ((sizeof(long) == 4) ? 2 : 3)
80 #define CPUCONF_LONG_BITS (sizeof(long) * 8)
84 #if !defined(__EMSCRIPTEN__) && (defined(__i386) || defined(_M_IX86))
85 #define CPUCONF_ARCH_IA32
88 #define CPUCONF_INTPTR_SIZE (4)
89 #define CPUCONF_POINTER_SIZE (4)
90 #define CPUCONF_INTPTR_BITS (32)
91 #define CPUCONF_POINTER_BITS (32)
92 #define CPUCONF_INTPTR_SIZESHIFT (2)
93 #define CPUCONF_POINTER_SIZESHIFT (2)
94 #define CPUCONF_INTPTR_BITSHIFT (5)
95 #define CPUCONF_POINTER_BITSHIFT (5)
97 #define CPUCONF_LONG_SIZE (4)
98 #define CPUCONF_LONG_BITSHIFT (5)
99 #define CPUCONF_LONG_SIZESHIFT (2)
100 #define CPUCONF_LONG_BITS (32)
102 #define CPUCONF_VENDOR_INTEL
104 #define CPUCONF_IDENTIFIER "Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz"
105 //#define CPUCONF_CLASS_COREI7-AVX2
106 #define CPUCONF_SOCKET_LOGICAL_CORES (16)
107 #define CPUCONF_SOCKET_PHYSICAL_CORES (8)
108 #define CPUCONF_TOTAL_CORE_COUNT (8)
109 #define CPUCONF_SYSTEM_MEMORY (17072009216LL)
110 #define CPUCONF_WORD_SIZE (64)
111 #define CPUCONF_CACHE_LINE_SIZE (64)
112 #define CPUCONF_CACHE_L1CODE_SIZE (32768)
113 #define CPUCONF_CACHE_L1CODE_LINE (64)
114 #define CPUCONF_CACHE_L1CODE_ASSOCIATIVITY (8)
115 #define CPUCONF_CACHE_L1CODE_SHARED (2)
116 #define CPUCONF_CACHE_L1DATA_SIZE (32768)
117 #define CPUCONF_CACHE_L1DATA_LINE (64)
118 #define CPUCONF_CACHE_L1DATA_ASSOCIATIVITY (8)
119 #define CPUCONF_CACHE_L1DATA_SHARED (2)
120 #define CPUCONF_CACHE_L1_UNIFIED_FLAG (0)
121 #define CPUCONF_CACHE_L2_SIZE (262144)
122 #define CPUCONF_CACHE_L2_LINE (64)
123 #define CPUCONF_CACHE_L2_ASSOCIATIVITY (8)
124 #define CPUCONF_CACHE_L2_SHARED (2)
125 #define CPUCONF_CACHE_L3_SIZE (8388608)
126 #define CPUCONF_CACHE_L3_LINE (64)
127 #define CPUCONF_CACHE_L3_ASSOCIATIVITY (16)
128 #define CPUCONF_CACHE_L3_SHARED (16)
129 #define CPUCONF_CAP_GPREGS (16)
130 #define CPUCONF_CAP_FPREGS (16)
132 #define CPUCONF_CAP_CMOV
133 #define CPUCONF_CAP_CLFLUSH
134 #define CPUCONF_CAP_TSC
135 #define CPUCONF_CAP_MMX
136 #define CPUCONF_CAP_SSE
137 #define CPUCONF_CAP_SSE2
138 #define CPUCONF_CAP_SSE3
139 #define CPUCONF_CAP_SSSE3
140 #define CPUCONF_CAP_SSE4_1
141 #define CPUCONF_CAP_SSE4_2
142 #define CPUCONF_CAP_AVX
143 #define CPUCONF_CAP_AVX2
144 #define CPUCONF_CAP_AES
145 #define CPUCONF_CAP_PCLMUL
146 #define CPUCONF_CAP_CMPXCHG16B
147 #define CPUCONF_CAP_MOVBE
148 #define CPUCONF_CAP_RDTSCP
149 #define CPUCONF_CAP_CONSTANTTSC
150 #define CPUCONF_CAP_HYPERTHREADING
151 #define CPUCONF_CAP_MWAIT
152 #define CPUCONF_CAP_THERMALSENSOR
153 #define CPUCONF_CAP_CLOCKMODULATION