- Reset maintainership (maintainer no longer uses FreeBSD, via private email) [1] - Support staging Submitted by: glebius ([1])
22 lines
729 B
C
22 lines
729 B
C
--- x86_cpuid_info.c.orig 2013-08-06 20:12:26.000000000 +0400
|
|
+++ x86_cpuid_info.c 2013-11-14 16:49:25.000000000 +0400
|
|
@@ -1252,11 +1252,14 @@
|
|
unsigned int* ecx, unsigned int* edx,
|
|
unsigned int index, unsigned int ecx_in )
|
|
{
|
|
- unsigned int a,b,c,d;
|
|
- __asm__ __volatile__ (".byte 0x53\n\tcpuid\n\tmovl %%ebx, %%esi\n\t.byte 0x5b"
|
|
- : "=a" (a), "=S" (b), "=c" (c), "=d" (d) \
|
|
- : "0" (index), "2"(ecx_in) );
|
|
- *eax = a; *ebx = b; *ecx = c; *edx = d;
|
|
+ __asm__ __volatile__ (
|
|
+ "mov %%ebx, %%esi;"
|
|
+ "cpuid;"
|
|
+ "mov %%ebx, %3;"
|
|
+ "mov %%esi, %%ebx;"
|
|
+ : "=a" (*eax), "=c" (*ecx), "=d" (*edx)
|
|
+ : "m" (*ebx), "0" (index), "1" (ecx_in), "2" (42)
|
|
+ : "esi", "memory" );
|
|
}
|
|
|
|
|