12345678910111213141516171819202122232425262728293031323334 |
- http://bugs.gentoo.org/270388
- --- cpuid.c
- +++ cpuid.c
- @@ -62,12 +62,28 @@
- sched_setaffinity(getpid(), sizeof(set), &set);
- }
-
- +#ifdef __PIC__
- + /* GCC on i386 bitches if you clobber ebx. So hide it behind
- + * gcc's back. */
- + asm(
- + "movl %%ebx,%%edi\n"
- + "cpuid\n"
- + "movl %%ebx,%1\n"
- + "movl %%edi,%%ebx\n"
- + : "=a" (a),
- + "=m" (b),
- + "+c" (c),
- + "=d" (d)
- + : "0" ((unsigned int)idx)
- + : "edi");
- +#else
- asm("cpuid"
- : "=a" (a),
- "=b" (b),
- "+c" (c),
- "=d" (d)
- : "0" ((unsigned int)idx));
- +#endif
-
- if (eax!=NULL)
- *eax = a;
|