Lines Matching refs:EBX
81 // gcc doesn't know cpuid would clobber ebx/rbx. Preseve it manually.
92 asm ("movl\t%%ebx, %%esi\n\t"
94 "xchgl\t%%ebx, %%esi\n\t"
128 // gcc doesn't know cpuid would clobber ebx/rbx. Preseve it manually.
152 asm ("movl\t%%ebx, %%esi\n\t"
154 "xchgl\t%%ebx, %%esi\n\t"
170 mov dword ptr [esi],ebx
216 unsigned EAX = 0, EBX = 0, ECX = 0, EDX = 0;
217 if (GetX86CpuIDAndInfo(0x1, &EAX, &EBX, &ECX, &EDX))
247 !GetX86CpuIDAndInfoEx(0x7, 0x0, &EAX, &EBX, &ECX, &EDX);
248 bool HasADX = HasLeaf7 && ((EBX >> 19) & 1);
249 bool HasAVX2 = HasAVX && HasLeaf7 && (EBX & 0x20);
250 bool HasAVX512 = HasLeaf7 && HasAVX512Save && ((EBX >> 16) & 1);
252 GetX86CpuIDAndInfo(0x80000001, &EAX, &EBX, &ECX, &EDX);
745 unsigned EAX = 0, EBX = 0, ECX = 0, EDX = 0;
756 GetX86CpuIDAndInfo(1, &EAX, &EBX, &ECX, &EDX);
790 GetX86CpuIDAndInfo(0x80000000, &MaxExtLevel, &EBX, &ECX, &EDX);
793 !GetX86CpuIDAndInfo(0x80000001, &EAX, &EBX, &ECX, &EDX);
802 !GetX86CpuIDAndInfoEx(0x7, 0x0, &EAX, &EBX, &ECX, &EDX);
805 Features["avx2"] = HasAVXSave && HasLeaf7 && ((EBX >> 5) & 1);
807 Features["fsgsbase"] = HasLeaf7 && ((EBX >> 0) & 1);
808 Features["bmi"] = HasLeaf7 && ((EBX >> 3) & 1);
809 Features["hle"] = HasLeaf7 && ((EBX >> 4) & 1);
810 Features["bmi2"] = HasLeaf7 && ((EBX >> 8) & 1);
811 Features["rtm"] = HasLeaf7 && ((EBX >> 11) & 1);
812 Features["rdseed"] = HasLeaf7 && ((EBX >> 18) & 1);
813 Features["adx"] = HasLeaf7 && ((EBX >> 19) & 1);
814 Features["sha"] = HasLeaf7 && ((EBX >> 29) & 1);
819 Features["avx512f"] = HasLeaf7 && ((EBX >> 16) & 1) && HasAVX512Save;
820 Features["avx512dq"] = HasLeaf7 && ((EBX >> 17) & 1) && HasAVX512Save;
821 Features["avx512pf"] = HasLeaf7 && ((EBX >> 26) & 1) && HasAVX512Save;
822 Features["avx512er"] = HasLeaf7 && ((EBX >> 27) & 1) && HasAVX512Save;
823 Features["avx512cd"] = HasLeaf7 && ((EBX >> 28) & 1) && HasAVX512Save;
824 Features["avx512bw"] = HasLeaf7 && ((EBX >> 30) & 1) && HasAVX512Save;
825 Features["avx512vl"] = HasLeaf7 && ((EBX >> 31) & 1) && HasAVX512Save;
828 !GetX86CpuIDAndInfoEx(0xd, 0x1, &EAX, &EBX, &ECX, &EDX);