20 #ifndef _ANCH_DEVICE_CPU_H_ 21 #define _ANCH_DEVICE_CPU_H_ 23 #include "singleton.hpp" 28 #define anch_cpuid(info, x) __cpuidex(info, x, 0) 30 #elif defined ANCH_POSIX 34 void anch_cpuid(
int info[4],
int InfoType){
35 __cpuid_count(InfoType, 0, info[0], info[1], info[2], info[3]);
97 if(nIds >= 0x00000001) {
98 anch_cpuid(info,0x00000001);
99 _aes = (info[2] & ((int)1 << 25)) != 0;
100 _mmx = (info[3] & ((int)1 << 23)) != 0;
101 _sse = (info[3] & ((int)1 << 25)) != 0;
102 _sse2 = (info[3] & ((int)1 << 26)) != 0;
103 _sse3 = (info[2] & ((int)1 << 0)) != 0;
104 _ssse3 = (info[2] & ((int)1 << 9)) != 0;
105 _sse4_1 = (info[2] & ((int)1 << 19)) != 0;
106 _sse4_2 = (info[2] & ((int)1 << 20)) != 0;
107 _sse4 = _sse4_1 || _sse4_2;
202 #endif // _ANCH_DEVICE_CPU_H_ bool isSSE() const
Definition: cpu.hpp:138
bool isSSE4_1() const
Definition: cpu.hpp:183
bool isMMX() const
Definition: cpu.hpp:129
AnCH framework base namespace.
Definition: base64.hpp:28
bool isSSE3() const
Definition: cpu.hpp:156
bool isSSSE3() const
Definition: cpu.hpp:165
CPU features detection.
Definition: cpu.hpp:53
bool isAES() const
Definition: cpu.hpp:120
bool isSSE4_2() const
Definition: cpu.hpp:192
bool isSSE4() const
Definition: cpu.hpp:174
bool isSSE2() const
Definition: cpu.hpp:147
Meyers' singleton implemtation.
Definition: singleton.hpp:35