27,7 → 27,8 |
|
FILE(Cpu-C); |
|
INLINE_OP void cpuid(DWORD a, DWORD *outa, DWORD *outb, DWORD *outc, DWORD *outd) |
INLINE_OP void cpuid(DWORD a, DWORD * outa, DWORD * outb, DWORD * outc, |
DWORD * outd) |
{ |
#ifdef __OLD_GNU__ |
__asm__ __volatile__ (".byte 0x0F,0xA2" |
35,10 → 36,7 |
__asm__ __volatile__ ("cpuid" |
#endif |
: "=a" (*outa), |
"=b" (*outb), |
"=c" (*outc), |
"=d" (*outd) |
: "a" (a)); |
"=b"(*outb), "=c"(*outc), "=d"(*outd):"a"(a)); |
} |
|
void X86_get_CPU(struct ll_cpuInfo *p) |
55,13 → 53,11 |
p->X86_cpuIdFlag = 1; |
p->X86_cpu = 5; |
cpuid(0, &tmp, &(p->X86_vendor_1), |
&(p->X86_vendor_3), |
&(p->X86_vendor_2)); |
&(p->X86_vendor_3), &(p->X86_vendor_2)); |
if (tmp >= 1) { |
cpuid(1, &(p->X86_signature), |
&(p->X86_IntelFeature_1), |
&(p->X86_IntelFeature_2), |
&(p->X86_StandardFeature)); |
&(p->X86_IntelFeature_2), &(p->X86_StandardFeature)); |
} |
} else { |
p->X86_cpu = 4; |