|
|
unsigned int *a, unsigned int *b, | unsigned int *a, unsigned int *b, |
unsigned int *c, unsigned int *d) | unsigned int *c, unsigned int *d) |
{ | { |
|
#ifdef __PIC__ |
|
__asm__ __volatile__ ( |
|
"pushl %%ebx\n\t"\ |
|
"cpuid\n\t"\ |
|
"movl %%ebx,%1\n\t"\ |
|
"popl %%ebx"\ |
|
: "=a" (*a), "=r" (*b), "=c" (*c), "=d" (*d) /* output */ |
|
: "0" (n) /* input */ |
|
); |
|
#else |
__asm__ __volatile__ ( | __asm__ __volatile__ ( |
"cpuid" | "cpuid" |
: "=a" (*a), "=b" (*b), "=c" (*c), "=d" (*d) /* output */ | : "=a" (*a), "=b" (*b), "=c" (*c), "=d" (*d) /* output */ |
: "0" (n) /* input */ | : "0" (n) /* input */ |
); | ); |
|
#endif |
} | } |
| |
int main(int argc, char **argv) | int main(int argc, char **argv) |