Zero ecx with a mov instruction
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Sun, 16 Jun 2019 13:04:10 +0000 (15:04 +0200)
committerGitHub <noreply@github.com>
Sun, 16 Jun 2019 13:04:10 +0000 (15:04 +0200)
PGI assembler does not like the initialization in the constraints.

common_x86_64.h

index f59ff66..9db66b5 100644 (file)
@@ -129,12 +129,13 @@ static __inline void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx){
   *ecx=cpuinfo[2];
   *edx=cpuinfo[3];
 #else
-        __asm__ __volatile__("cpuid"
+        __asm__ __volatile__("mov %%ecx, 0;"
+                            "cpuid"
                             : "=a" (*eax),
                             "=b" (*ebx),
                             "=c" (*ecx),
                             "=d" (*edx)
-                            : "0" (op), "c"(0));
+                            : "0" (op));
 #endif
 }