| @@ -26,19 +26,8 @@ | |||||
| static void do_cpuid(int regs[], int h) | static void do_cpuid(int regs[], int h) | ||||
| { | { | ||||
| /* clang-format off */ | /* clang-format off */ | ||||
| __asm__ __volatile__( | |||||
| #if defined __x86_64__ | |||||
| "pushq %%rbx;\n" | |||||
| #else | |||||
| "pushl %%ebx;\n" | |||||
| #endif | |||||
| "cpuid;\n" | |||||
| #if defined __x86_64__ | |||||
| "popq %%rbx;\n" | |||||
| #else | |||||
| "popl %%ebx;\n" | |||||
| #endif | |||||
| : "=a"(regs[0]), [ebx] "=r"(regs[1]), "=c"(regs[2]), "=d"(regs[3]) | |||||
| __asm__ __volatile__("cpuid" | |||||
| : "=a"(regs[0]), "=b"(regs[1]), "=c"(regs[2]), "=d"(regs[3]) | |||||
| : "a"(h)); | : "a"(h)); | ||||
| /* clang-format on */ | /* clang-format on */ | ||||
| } | } | ||||