do not use cpuid:level param when it doesn't exists

This commit is contained in:
Stanislav Shwartsman 2013-06-15 17:53:49 +00:00
parent 50190829e9
commit edc3003f35
2 changed files with 43 additions and 1 deletions

View File

@ -51,6 +51,47 @@ void corei7_sandy_bridge_2600k_t::get_cpuid_leaf(Bit32u function, Bit32u subfunc
if (cpuid_limit_winnt)
if (function > 2 && function < 0x80000000) function = 2;
switch(function) {
case 0x80000000:
case 0x80000001:
case 0x80000002:
case 0x80000003:
case 0x80000004:
case 0x80000005:
case 0x80000006:
case 0x80000007:
case 0x80000008:
case 0x00000000:
case 0x00000001:
case 0x00000002:
case 0x00000003:
BX_INFO(("CPUID function 0x%08x", function));
break;
case 0x00000004:
BX_INFO(("CPUID function 0x%08x subfunction 0x%08x", function, subfunction));
break;
case 0x00000005:
case 0x00000006:
case 0x00000007:
case 0x00000008:
case 0x00000009:
case 0x0000000A:
BX_INFO(("CPUID function 0x%08x", function));
break;
case 0x0000000B:
BX_INFO(("CPUID function 0x%08x subfunction 0x%08x", function, subfunction));
break;
case 0x0000000C:
BX_INFO(("CPUID function 0x%08x", function));
break;
case 0x0000000D:
BX_INFO(("CPUID function 0x%08x subfunction 0x%08x", function, subfunction));
break;
default:
BX_INFO(("CPUID function 0x%08x", function));
break;
}
switch(function) {
case 0x80000000:
get_ext_cpuid_leaf_0(leaf);

View File

@ -1157,11 +1157,12 @@ void bx_init_hardware()
unsigned cpu_model = SIM->get_param_enum(BXPN_CPU_MODEL)->get();
if (! cpu_model) {
#if BX_CPU_LEVEL >= 5
unsigned cpu_level = SIM->get_param_num(BXPN_CPUID_LEVEL)->get();
BX_INFO((" level: %d", cpu_level));
#if BX_CPU_LEVEL >= 5
BX_INFO((" APIC support: %s", SIM->get_param_enum(BXPN_CPUID_APIC)->get_selected()));
#else
BX_INFO((" level: %d", BX_CPU_LEVEL));
BX_INFO((" APIC support: no"));
#endif
BX_INFO((" FPU support: %s", BX_SUPPORT_FPU?"yes":"no"));