|
|
@@ -283,7 +283,7 @@ int get_vendor(void){ |
|
|
|
if (!strcmp(vendor, "CyrixInstead")) return VENDOR_CYRIX; |
|
|
|
if (!strcmp(vendor, "NexGenDriven")) return VENDOR_NEXGEN; |
|
|
|
if (!strcmp(vendor, "CentaurHauls")) return VENDOR_CENTAUR; |
|
|
|
if (!strcmp(vendor, " Shanghai ")) return VENDOR_CENTAUR; |
|
|
|
if (!strcmp(vendor, " Shanghai ")) return VENDOR_ZHAOXIN; |
|
|
|
if (!strcmp(vendor, "RiseRiseRise")) return VENDOR_RISE; |
|
|
|
if (!strcmp(vendor, " SiS SiS SiS")) return VENDOR_SIS; |
|
|
|
if (!strcmp(vendor, "GenuineTMx86")) return VENDOR_TRANSMETA; |
|
|
@@ -1067,7 +1067,8 @@ int get_cacheinfo(int type, cache_info_t *cacheinfo){ |
|
|
|
|
|
|
|
if ((get_vendor() == VENDOR_AMD) || |
|
|
|
(get_vendor() == VENDOR_HYGON) || |
|
|
|
(get_vendor() == VENDOR_CENTAUR)) { |
|
|
|
(get_vendor() == VENDOR_CENTAUR) || |
|
|
|
(get_vendor() == VENDOR_ZHAOXIN)) { |
|
|
|
cpuid(0x80000005, &eax, &ebx, &ecx, &edx); |
|
|
|
|
|
|
|
LDTB.size = 4096; |
|
|
@@ -1190,7 +1191,7 @@ int get_cacheinfo(int type, cache_info_t *cacheinfo){ |
|
|
|
|
|
|
|
int get_cpuname(void){ |
|
|
|
|
|
|
|
int family, exfamily, model, vendor, exmodel; |
|
|
|
int family, exfamily, model, vendor, exmodel, stepping; |
|
|
|
|
|
|
|
if (!have_cpuid()) return CPUTYPE_80386; |
|
|
|
|
|
|
@@ -1198,6 +1199,7 @@ int get_cpuname(void){ |
|
|
|
exfamily = get_cputype(GET_EXFAMILY); |
|
|
|
model = get_cputype(GET_MODEL); |
|
|
|
exmodel = get_cputype(GET_EXMODEL); |
|
|
|
stepping = get_cputype(GET_STEPPING); |
|
|
|
|
|
|
|
vendor = get_vendor(); |
|
|
|
|
|
|
@@ -1628,15 +1630,20 @@ int get_cpuname(void){ |
|
|
|
switch (family) { |
|
|
|
case 0x5: |
|
|
|
return CPUTYPE_CENTAURC6; |
|
|
|
break; |
|
|
|
case 0x6: |
|
|
|
return CPUTYPE_NANO; |
|
|
|
break; |
|
|
|
case 0x7: |
|
|
|
if (model == 0xf && stepping < 0xe) |
|
|
|
return CPUTYPE_NANO; |
|
|
|
return CPUTYPE_NEHALEM; |
|
|
|
break; |
|
|
|
default: |
|
|
|
if (family >= 0x7) |
|
|
|
return CPUTYPE_NEHALEM; |
|
|
|
else |
|
|
|
return CPUTYPE_VIAC3; |
|
|
|
} |
|
|
|
return CPUTYPE_VIAC3; |
|
|
|
} |
|
|
|
|
|
|
|
if (vendor == VENDOR_ZHAOXIN){ |
|
|
|
return CPUTYPE_NEHALEM; |
|
|
|
} |
|
|
|
|
|
|
|
if (vendor == VENDOR_RISE){ |
|
|
@@ -1869,7 +1876,7 @@ char *get_lower_cpunamechar(void){ |
|
|
|
|
|
|
|
int get_coretype(void){ |
|
|
|
|
|
|
|
int family, exfamily, model, exmodel, vendor; |
|
|
|
int family, exfamily, model, exmodel, vendor, stepping; |
|
|
|
|
|
|
|
if (!have_cpuid()) return CORE_80486; |
|
|
|
|
|
|
@@ -1877,6 +1884,7 @@ int get_coretype(void){ |
|
|
|
exfamily = get_cputype(GET_EXFAMILY); |
|
|
|
model = get_cputype(GET_MODEL); |
|
|
|
exmodel = get_cputype(GET_EXMODEL); |
|
|
|
stepping = get_cputype(GET_STEPPING); |
|
|
|
|
|
|
|
vendor = get_vendor(); |
|
|
|
|
|
|
@@ -2286,13 +2294,19 @@ int get_coretype(void){ |
|
|
|
if (vendor == VENDOR_CENTAUR) { |
|
|
|
switch (family) { |
|
|
|
case 0x6: |
|
|
|
return CORE_NANO; |
|
|
|
break; |
|
|
|
case 0x7: |
|
|
|
if (model == 0xf && stepping < 0xe) |
|
|
|
return CORE_NANO; |
|
|
|
return CORE_NEHALEM; |
|
|
|
break; |
|
|
|
default: |
|
|
|
if (family >= 0x7) |
|
|
|
return CORE_NEHALEM; |
|
|
|
else |
|
|
|
return CORE_VIAC3; |
|
|
|
} |
|
|
|
return CORE_VIAC3; |
|
|
|
} |
|
|
|
|
|
|
|
if (vendor == VENDOR_ZHAOXIN) { |
|
|
|
return CORE_NEHALEM; |
|
|
|
} |
|
|
|
|
|
|
|
return CORE_UNKNOWN; |
|
|
|