diff --git a/src/pike_cpulib.c b/src/pike_cpulib.c
index 9ebc7e4293c716cd088b5f10f8227d4ad8416118..e7e7687aabb35c69f108f5edbff9247c3e67c30d 100644
--- a/src/pike_cpulib.c
+++ b/src/pike_cpulib.c
@@ -83,8 +83,8 @@ PMOD_EXPORT void x86_get_cpuid(int oper, INT32 *cpuid_ptr)
                  "popl %%ebx       \n\t" /* restore the old %ebx */
                  : "=a"(cpuid_ptr[0]), 
                    "=r"(cpuid_ptr[1]), 
-                   "=c"(cpuid_ptr[2]), 
-                   "=d"(cpuid_ptr[3])
+                   "=d"(cpuid_ptr[2]),
+                   "=c"(cpuid_ptr[3])
                  : "0"(oper)
                  : "cc");
 #else
@@ -94,8 +94,8 @@ PMOD_EXPORT void x86_get_cpuid(int oper, INT32 *cpuid_ptr)
                  "pop %%rbx       \n\t" /* restore the old %rbx */
                  : "=a"(cpuid_ptr[0]),
                    "=r"(cpuid_ptr[1]),
-                   "=c"(cpuid_ptr[2]),
-                   "=d"(cpuid_ptr[3])
+                   "=d"(cpuid_ptr[2]),
+                   "=c"(cpuid_ptr[3])
                  : "0"(oper)
                  : "cc");
 #endif