27,8 → 27,7 |
|
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" |
36,7 → 35,10 |
__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) |
53,11 → 55,13 |
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; |