]> granicus.if.org Git - json-c/commitdiff
Fix segmentation fault in CPUID check
authorTudor Brindus <me@tbrindus.ca>
Sat, 2 May 2020 02:24:20 +0000 (22:24 -0400)
committerTudor Brindus <me@tbrindus.ca>
Sun, 3 May 2020 18:39:31 +0000 (14:39 -0400)
random_seed.c

index fc19e26d132be0e60adcaa39eb968177fb9ac7db..c459f0f92ff46b7b35a8a75a303a5c981f0e2390 100644 (file)
 static void do_cpuid(int regs[], int h)
 {
        /* 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));
        /* clang-format on */
 }