Zero ecx with a mov instruction
PGI assembler does not like the initialization in the constraints.
@@ -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
}
