Lines Matching defs:ECX

596   unsigned EAX = 0, EBX = 0, ECX = 0, EDX = 0;
602 if (getX86CpuIDAndInfo(0, MaxLeaf, &EBX, &ECX, &EDX) || *MaxLeaf < 1)
606 if (EBX == 0x756e6547 && EDX == 0x49656e69 && ECX == 0x6c65746e)
610 if (EBX == 0x68747541 && EDX == 0x69746e65 && ECX == 0x444d4163)
1260 static void getAvailableFeatures(unsigned ECX, unsigned EDX, unsigned MaxLeaf,
1277 if ((ECX >> 0) & 1)
1279 if ((ECX >> 1) & 1)
1281 if ((ECX >> 9) & 1)
1283 if ((ECX >> 12) & 1)
1285 if ((ECX >> 19) & 1)
1287 if ((ECX >> 20) & 1) {
1291 if ((ECX >> 23) & 1)
1293 if ((ECX >> 25) & 1)
1296 if ((ECX >> 22) & 1)
1303 bool HasAVX = ((ECX & AVXBits) == AVXBits) && !getX86XCR0(&EAX, &EDX) &&
1319 MaxLeaf >= 0x7 && !getX86CpuIDAndInfoEx(0x7, 0x0, &EAX, &EBX, &ECX, &EDX);
1348 if (HasLeaf7 && ((ECX >> 1) & 1) && HasAVX512Save)
1350 if (HasLeaf7 && ((ECX >> 6) & 1) && HasAVX512Save)
1352 if (HasLeaf7 && ((ECX >> 8) & 1))
1354 if (HasLeaf7 && ((ECX >> 10) & 1) && HasAVX)
1356 if (HasLeaf7 && ((ECX >> 11) & 1) && HasAVX512Save)
1358 if (HasLeaf7 && ((ECX >> 12) & 1) && HasAVX512Save)
1360 if (HasLeaf7 && ((ECX >> 14) & 1) && HasAVX512Save)
1374 !getX86CpuIDAndInfoEx(0x7, 0x1, &EAX, &EBX, &ECX, &EDX);
1379 getX86CpuIDAndInfo(0x80000000, &MaxExtLevel, &EBX, &ECX, &EDX);
1382 !getX86CpuIDAndInfo(0x80000001, &EAX, &EBX, &ECX, &EDX);
1383 if (HasExtLeaf1 && ((ECX >> 6) & 1))
1385 if (HasExtLeaf1 && ((ECX >> 11) & 1))
1387 if (HasExtLeaf1 && ((ECX >> 16) & 1))
1400 unsigned EAX = 0, EBX = 0, ECX = 0, EDX = 0;
1401 getX86CpuIDAndInfo(0x1, &EAX, &EBX, &ECX, &EDX);
1406 getAvailableFeatures(ECX, EDX, MaxLeaf, Features);
1812 unsigned EAX = 0, EBX = 0, ECX = 0, EDX = 0;
1816 if (getX86CpuIDAndInfo(0, &MaxLevel, &EBX, &ECX, &EDX) || MaxLevel < 1)
1819 getX86CpuIDAndInfo(1, &EAX, &EBX, &ECX, &EDX);
1828 Features["sse3"] = (ECX >> 0) & 1;
1829 Features["pclmul"] = (ECX >> 1) & 1;
1830 Features["ssse3"] = (ECX >> 9) & 1;
1831 Features["cx16"] = (ECX >> 13) & 1;
1832 Features["sse4.1"] = (ECX >> 19) & 1;
1833 Features["sse4.2"] = (ECX >> 20) & 1;
1835 Features["movbe"] = (ECX >> 22) & 1;
1836 Features["popcnt"] = (ECX >> 23) & 1;
1837 Features["aes"] = (ECX >> 25) & 1;
1838 Features["rdrnd"] = (ECX >> 30) & 1;
1843 bool HasXSave = ((ECX >> 27) & 1) && !getX86XCR0(&EAX, &EDX);
1844 bool HasAVXSave = HasXSave && ((ECX >> 28) & 1) && ((EAX & 0x6) == 0x6);
1859 Features["fma"] = ((ECX >> 12) & 1) && HasAVXSave;
1861 Features["xsave"] = ((ECX >> 26) & 1) && HasAVXSave;
1862 Features["f16c"] = ((ECX >> 29) & 1) && HasAVXSave;
1865 getX86CpuIDAndInfo(0x80000000, &MaxExtLevel, &EBX, &ECX, &EDX);
1868 !getX86CpuIDAndInfo(0x80000001, &EAX, &EBX, &ECX, &EDX);
1869 Features["sahf"] = HasExtLeaf1 && ((ECX >> 0) & 1);
1870 Features["lzcnt"] = HasExtLeaf1 && ((ECX >> 5) & 1);
1871 Features["sse4a"] = HasExtLeaf1 && ((ECX >> 6) & 1);
1872 Features["prfchw"] = HasExtLeaf1 && ((ECX >> 8) & 1);
1873 Features["xop"] = HasExtLeaf1 && ((ECX >> 11) & 1) && HasAVXSave;
1874 Features["lwp"] = HasExtLeaf1 && ((ECX >> 15) & 1);
1875 Features["fma4"] = HasExtLeaf1 && ((ECX >> 16) & 1) && HasAVXSave;
1876 Features["tbm"] = HasExtLeaf1 && ((ECX >> 21) & 1);
1877 Features["mwaitx"] = HasExtLeaf1 && ((ECX >> 29) & 1);
1884 !getX86CpuIDAndInfo(0x80000008, &EAX, &EBX, &ECX, &EDX);
1890 MaxLevel >= 7 && !getX86CpuIDAndInfoEx(0x7, 0x0, &EAX, &EBX, &ECX, &EDX);
1915 Features["avx512vbmi"] = HasLeaf7 && ((ECX >> 1) & 1) && HasAVX512Save;
1916 Features["pku"] = HasLeaf7 && ((ECX >> 4) & 1);
1917 Features["waitpkg"] = HasLeaf7 && ((ECX >> 5) & 1);
1918 Features["avx512vbmi2"] = HasLeaf7 && ((ECX >> 6) & 1) && HasAVX512Save;
1919 Features["shstk"] = HasLeaf7 && ((ECX >> 7) & 1);
1920 Features["gfni"] = HasLeaf7 && ((ECX >> 8) & 1);
1921 Features["vaes"] = HasLeaf7 && ((ECX >> 9) & 1) && HasAVXSave;
1922 Features["vpclmulqdq"] = HasLeaf7 && ((ECX >> 10) & 1) && HasAVXSave;
1923 Features["avx512vnni"] = HasLeaf7 && ((ECX >> 11) & 1) && HasAVX512Save;
1924 Features["avx512bitalg"] = HasLeaf7 && ((ECX >> 12) & 1) && HasAVX512Save;
1925 Features["avx512vpopcntdq"] = HasLeaf7 && ((ECX >> 14) & 1) && HasAVX512Save;
1926 Features["rdpid"] = HasLeaf7 && ((ECX >> 22) & 1);
1927 Features["kl"] = HasLeaf7 && ((ECX >> 23) & 1); // key locker
1928 Features["cldemote"] = HasLeaf7 && ((ECX >> 25) & 1);
1929 Features["movdiri"] = HasLeaf7 && ((ECX >> 27) & 1);
1930 Features["movdir64b"] = HasLeaf7 && ((ECX >> 28) & 1);
1931 Features["enqcmd"] = HasLeaf7 && ((ECX >> 29) & 1);
1940 // EAX=0x7, ECX=0x0 indicates the availability of the instruction (via the 18th
1957 !getX86CpuIDAndInfoEx(0x7, 0x1, &EAX, &EBX, &ECX, &EDX);
1987 !getX86CpuIDAndInfoEx(0xd, 0x1, &EAX, &EBX, &ECX, &EDX);
1995 !getX86CpuIDAndInfoEx(0x14, 0x0, &EAX, &EBX, &ECX, &EDX);
2000 MaxLevel >= 0x19 && !getX86CpuIDAndInfo(0x19, &EAX, &EBX, &ECX, &EDX);
2004 !getX86CpuIDAndInfoEx(0x1e, 0x1, &EAX, &EBX, &ECX, &EDX);
2012 MaxLevel >= 0x24 && !getX86CpuIDAndInfo(0x24, &EAX, &EBX, &ECX, &EDX);