code reorg

This commit is contained in:
Stanislav Shwartsman 2015-02-12 20:18:35 +00:00
parent 40312cec2d
commit 901b7be1a8
23 changed files with 568 additions and 682 deletions

View File

@ -36,23 +36,18 @@ amd_k6_2_chomper_t::amd_k6_2_chomper_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
BX_INFO(("WARNING: 3DNow! is not implemented yet !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_SYSCALL_SYSRET_LEGACY,
BX_ISA_3DNOW,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_SYSCALL_SYSRET_LEGACY);
enable_cpu_extension(BX_ISA_3DNOW);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_PSE,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
}
void amd_k6_2_chomper_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -36,36 +36,31 @@ athlon64_clawhammer_t::athlon64_clawhammer_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
BX_INFO(("WARNING: 3DNow! is not implemented yet !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_3DNOW,
BX_ISA_SYSCALL_SYSRET_LEGACY,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_P6,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_3DNOW);
enable_cpu_extension(BX_ISA_SYSCALL_SYSRET_LEGACY);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_NX,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_NX);
}
void athlon64_clawhammer_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -36,38 +36,33 @@ athlon64_venice_t::athlon64_venice_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
BX_INFO(("WARNING: 3DNow! is not implemented yet !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_3DNOW,
BX_ISA_SYSCALL_SYSRET_LEGACY,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_P6,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_3DNOW);
enable_cpu_extension(BX_ISA_SYSCALL_SYSRET_LEGACY);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_NX,
BX_ISA_FFXSR,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_FFXSR);
}
void athlon64_venice_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -35,37 +35,32 @@ atom_n270_t::atom_n270_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (! BX_SUPPORT_MONITOR_MWAIT)
BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_P6,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_SSSE3,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_SSSE3);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_MOVBE,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_MOVBE);
}
void atom_n270_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -38,46 +38,41 @@ core2_penryn_t9600_t::core2_penryn_t9600_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (! BX_SUPPORT_MONITOR_MWAIT)
BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_P6,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_SSSE3,
BX_ISA_SSE4_1,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_SSSE3);
enable_cpu_extension(BX_ISA_SSE4_1);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
#if BX_SUPPORT_VMX
BX_ISA_VMX,
enable_cpu_extension(BX_ISA_VMX);
#endif
BX_ISA_SMX,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_SMX);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_NX,
BX_ISA_CMPXCHG16B,
BX_ISA_XSAVE,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
enable_cpu_extension(BX_ISA_XSAVE);
}
void core2_penryn_t9600_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -35,39 +35,34 @@ core_duo_t2400_yonah_t::core_duo_t2400_yonah_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (! BX_SUPPORT_MONITOR_MWAIT)
BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_P6,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
#if BX_SUPPORT_VMX
BX_ISA_VMX,
enable_cpu_extension(BX_ISA_VMX);
#endif
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_NX,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_NX);
}
void core_duo_t2400_yonah_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -41,49 +41,44 @@ corei5_arrandale_m520_t::corei5_arrandale_m520_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (! BX_SUPPORT_MONITOR_MWAIT)
BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_P6,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_SSSE3,
BX_ISA_SSE4_1,
BX_ISA_SSE4_2,
BX_ISA_POPCNT,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_SSSE3);
enable_cpu_extension(BX_ISA_SSE4_1);
enable_cpu_extension(BX_ISA_SSE4_2);
enable_cpu_extension(BX_ISA_POPCNT);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
#if BX_SUPPORT_VMX >= 2
BX_ISA_VMX,
enable_cpu_extension(BX_ISA_VMX);
#endif
BX_ISA_SMX,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_SMX);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_NX,
BX_ISA_CMPXCHG16B,
BX_ISA_RDTSCP,
BX_ISA_AES_PCLMULQDQ,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
enable_cpu_extension(BX_ISA_RDTSCP);
enable_cpu_extension(BX_ISA_AES_PCLMULQDQ);
}
void corei5_arrandale_m520_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -41,48 +41,43 @@ corei5_lynnfield_750_t::corei5_lynnfield_750_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (! BX_SUPPORT_MONITOR_MWAIT)
BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_P6,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_SSSE3,
BX_ISA_SSE4_1,
BX_ISA_SSE4_2,
BX_ISA_POPCNT,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_SSSE3);
enable_cpu_extension(BX_ISA_SSE4_1);
enable_cpu_extension(BX_ISA_SSE4_2);
enable_cpu_extension(BX_ISA_POPCNT);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
#if BX_SUPPORT_VMX >= 2
BX_ISA_VMX,
enable_cpu_extension(BX_ISA_VMX);
#endif
BX_ISA_SMX,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_SMX);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_NX,
BX_ISA_CMPXCHG16B,
BX_ISA_RDTSCP,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
enable_cpu_extension(BX_ISA_RDTSCP);
}
void corei5_lynnfield_750_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -43,69 +43,64 @@ corei7_haswell_4770_t::corei7_haswell_4770_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
BX_INFO(("WARNING: RDRAND would not produce true random numbers !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_P6,
BX_ISA_MMX,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_X2APIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_CMPXCHG16B,
BX_ISA_NX,
BX_ISA_1G_PAGES,
BX_ISA_PCID,
BX_ISA_TSC_DEADLINE,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_SSSE3,
BX_ISA_SSE4_1,
BX_ISA_SSE4_2,
BX_ISA_POPCNT,
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_X2APIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_1G_PAGES);
enable_cpu_extension(BX_ISA_PCID);
enable_cpu_extension(BX_ISA_TSC_DEADLINE);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_SSSE3);
enable_cpu_extension(BX_ISA_SSE4_1);
enable_cpu_extension(BX_ISA_SSE4_2);
enable_cpu_extension(BX_ISA_POPCNT);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
#if BX_SUPPORT_VMX >= 2
BX_ISA_VMX,
enable_cpu_extension(BX_ISA_VMX);
#endif
/* BX_ISA_SMX, */
BX_ISA_RDTSCP,
BX_ISA_XSAVE,
BX_ISA_XSAVEOPT,
BX_ISA_AES_PCLMULQDQ,
BX_ISA_MOVBE,
BX_ISA_AVX,
BX_ISA_AVX_F16C,
BX_ISA_AVX2,
BX_ISA_AVX_FMA,
BX_ISA_LZCNT,
BX_ISA_BMI1,
BX_ISA_BMI2,
BX_ISA_FSGSBASE,
BX_ISA_INVPCID,
BX_ISA_SMEP,
BX_ISA_RDRAND,
BX_ISA_TSC_DEADLINE,
BX_ISA_FCS_FDS_DEPRECATION,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
//enable_cpu_extension(BX_ISA_SMX);
enable_cpu_extension(BX_ISA_RDTSCP);
enable_cpu_extension(BX_ISA_XSAVE);
enable_cpu_extension(BX_ISA_XSAVEOPT);
enable_cpu_extension(BX_ISA_AES_PCLMULQDQ);
enable_cpu_extension(BX_ISA_MOVBE);
enable_cpu_extension(BX_ISA_AVX);
enable_cpu_extension(BX_ISA_AVX_F16C);
enable_cpu_extension(BX_ISA_AVX2);
enable_cpu_extension(BX_ISA_AVX_FMA);
enable_cpu_extension(BX_ISA_LZCNT);
enable_cpu_extension(BX_ISA_BMI1);
enable_cpu_extension(BX_ISA_BMI2);
enable_cpu_extension(BX_ISA_FSGSBASE);
enable_cpu_extension(BX_ISA_INVPCID);
enable_cpu_extension(BX_ISA_SMEP);
enable_cpu_extension(BX_ISA_RDRAND);
enable_cpu_extension(BX_ISA_TSC_DEADLINE);
enable_cpu_extension(BX_ISA_FCS_FDS_DEPRECATION);
}
void corei7_haswell_4770_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -43,59 +43,54 @@ corei7_ivy_bridge_3770k_t::corei7_ivy_bridge_3770k_t(BX_CPU_C *cpu): bx_cpuid_t(
BX_INFO(("WARNING: RDRAND would not produce true random numbers !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_P6,
BX_ISA_MMX,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_X2APIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_CMPXCHG16B,
BX_ISA_NX,
BX_ISA_PCID,
BX_ISA_TSC_DEADLINE,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_SSSE3,
BX_ISA_SSE4_1,
BX_ISA_SSE4_2,
BX_ISA_POPCNT,
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_X2APIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_PCID);
enable_cpu_extension(BX_ISA_TSC_DEADLINE);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_SSSE3);
enable_cpu_extension(BX_ISA_SSE4_1);
enable_cpu_extension(BX_ISA_SSE4_2);
enable_cpu_extension(BX_ISA_POPCNT);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
#if BX_SUPPORT_VMX >= 2
BX_ISA_VMX,
enable_cpu_extension(BX_ISA_VMX);
#endif
/* BX_ISA_SMX, */
BX_ISA_RDTSCP,
BX_ISA_XSAVE,
BX_ISA_XSAVEOPT,
BX_ISA_AES_PCLMULQDQ,
BX_ISA_AVX,
BX_ISA_AVX_F16C,
BX_ISA_FSGSBASE,
BX_ISA_SMEP,
BX_ISA_RDRAND,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
//enable_cpu_extension(BX_ISA_SMX);
enable_cpu_extension(BX_ISA_RDTSCP);
enable_cpu_extension(BX_ISA_XSAVE);
enable_cpu_extension(BX_ISA_XSAVEOPT);
enable_cpu_extension(BX_ISA_AES_PCLMULQDQ);
enable_cpu_extension(BX_ISA_AVX);
enable_cpu_extension(BX_ISA_AVX_F16C);
enable_cpu_extension(BX_ISA_FSGSBASE);
enable_cpu_extension(BX_ISA_SMEP);
enable_cpu_extension(BX_ISA_RDRAND);
}
void corei7_ivy_bridge_3770k_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -41,57 +41,52 @@ corei7_sandy_bridge_2600k_t::corei7_sandy_bridge_2600k_t(BX_CPU_C *cpu): bx_cpui
if (! BX_SUPPORT_MONITOR_MWAIT)
BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_P6,
BX_ISA_MMX,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
/* BX_ISA_X2APIC, */
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_CMPXCHG16B,
BX_ISA_NX,
BX_ISA_PCID,
BX_ISA_TSC_DEADLINE,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_SSSE3,
BX_ISA_SSE4_1,
BX_ISA_SSE4_2,
BX_ISA_POPCNT,
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
//enable_cpu_extension(BX_ISA_X2APIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_PCID);
enable_cpu_extension(BX_ISA_TSC_DEADLINE);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_SSSE3);
enable_cpu_extension(BX_ISA_SSE4_1);
enable_cpu_extension(BX_ISA_SSE4_2);
enable_cpu_extension(BX_ISA_POPCNT);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
#if BX_SUPPORT_VMX >= 2
BX_ISA_VMX,
enable_cpu_extension(BX_ISA_VMX);
#endif
/* BX_ISA_SMX, */
BX_ISA_RDTSCP,
BX_ISA_XSAVE,
BX_ISA_XSAVEOPT,
BX_ISA_AES_PCLMULQDQ,
//enable_cpu_extension(BX_ISA_SMX);
enable_cpu_extension(BX_ISA_RDTSCP);
enable_cpu_extension(BX_ISA_XSAVE);
enable_cpu_extension(BX_ISA_XSAVEOPT);
enable_cpu_extension(BX_ISA_AES_PCLMULQDQ);
#if BX_SUPPORT_AVX
BX_ISA_AVX,
enable_cpu_extension(BX_ISA_AVX);
#endif
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
}
void corei7_sandy_bridge_2600k_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -31,26 +31,21 @@
p2_klamath_t::p2_klamath_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
{
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_P6,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
}
void p2_klamath_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -31,28 +31,23 @@
p3_katmai_t::p3_katmai_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
{
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_P6,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_SSE,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
}
void p3_katmai_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -37,39 +37,34 @@ p4_prescott_celeron_336_t::p4_prescott_celeron_336_t(BX_CPU_C *cpu): bx_cpuid_t(
if (! BX_SUPPORT_MONITOR_MWAIT)
BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_P6,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_SSSE3,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_SSSE3);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_LONG_MODE,
BX_ISA_NX,
BX_ISA_CMPXCHG16B,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
}
void p4_prescott_celeron_336_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -31,31 +31,26 @@
p4_willamette_t::p4_willamette_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
{
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_P6,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
}
void p4_willamette_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -34,20 +34,15 @@ pentium_t::pentium_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (BX_CPU_LEVEL < 5)
BX_PANIC(("Pentium should be compiled with BX_CPU_LEVEL=5 or higher"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_PSE,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_PSE);
}
void pentium_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -2,7 +2,7 @@
// $Id$
/////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2011-2014 Stanislav Shwartsman
// Copyright (c) 2015 Stanislav Shwartsman
// Written by Stanislav Shwartsman [sshwarts at sourceforge net]
//
// This library is free software; you can redistribute it and/or

View File

@ -34,21 +34,16 @@ pentium_mmx_t::pentium_mmx_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (BX_CPU_LEVEL < 5)
BX_PANIC(("Pentium MMX should be compiled with BX_CPU_LEVEL=5 or higher"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_PSE,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_PSE);
}
void pentium_mmx_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -43,53 +43,48 @@ phenom_8650_toliman_t::phenom_8650_toliman_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (! BX_SUPPORT_MONITOR_MWAIT)
BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_3DNOW,
BX_ISA_SYSCALL_SYSRET_LEGACY,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_P6,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_3DNOW);
enable_cpu_extension(BX_ISA_SYSCALL_SYSRET_LEGACY);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
BX_ISA_CLFLUSH,
BX_ISA_POPCNT,
BX_ISA_LZCNT,
BX_ISA_SSE4A,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_POPCNT);
enable_cpu_extension(BX_ISA_LZCNT);
enable_cpu_extension(BX_ISA_SSE4A);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_NX,
BX_ISA_FFXSR,
BX_ISA_CMPXCHG16B,
BX_ISA_1G_PAGES,
BX_ISA_MISALIGNED_SSE,
BX_ISA_RDTSCP,
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_FFXSR);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
enable_cpu_extension(BX_ISA_1G_PAGES);
enable_cpu_extension(BX_ISA_MISALIGNED_SSE);
enable_cpu_extension(BX_ISA_RDTSCP);
#if BX_SUPPORT_SVM
BX_ISA_SVM,
enable_cpu_extension(BX_ISA_SVM);
#endif
BX_ISA_ALT_MOV_CR8,
BX_ISA_XAPIC_EXT,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_ALT_MOV_CR8);
enable_cpu_extension(BX_ISA_XAPIC_EXT);
}
void phenom_8650_toliman_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -43,64 +43,59 @@ trinity_apu_t::trinity_apu_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (! BX_SUPPORT_MONITOR_MWAIT)
BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_P6,
BX_ISA_MMX,
BX_ISA_SYSCALL_SYSRET_LEGACY,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_SYSCALL_SYSRET_LEGACY);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_CMPXCHG16B,
BX_ISA_NX,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_SSSE3,
BX_ISA_SSE4_1,
BX_ISA_SSE4_2,
BX_ISA_LZCNT,
BX_ISA_POPCNT,
BX_ISA_SSE4A,
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_SSSE3);
enable_cpu_extension(BX_ISA_SSE4_1);
enable_cpu_extension(BX_ISA_SSE4_2);
enable_cpu_extension(BX_ISA_LZCNT);
enable_cpu_extension(BX_ISA_POPCNT);
enable_cpu_extension(BX_ISA_SSE4A);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
BX_ISA_RDTSCP,
BX_ISA_XSAVE,
BX_ISA_AES_PCLMULQDQ,
BX_ISA_AVX,
BX_ISA_AVX_F16C,
BX_ISA_AVX_FMA,
BX_ISA_FMA4,
BX_ISA_XOP,
BX_ISA_TBM,
BX_ISA_BMI1,
enable_cpu_extension(BX_ISA_RDTSCP);
enable_cpu_extension(BX_ISA_XSAVE);
enable_cpu_extension(BX_ISA_AES_PCLMULQDQ);
enable_cpu_extension(BX_ISA_AVX);
enable_cpu_extension(BX_ISA_AVX_F16C);
enable_cpu_extension(BX_ISA_AVX_FMA);
enable_cpu_extension(BX_ISA_FMA4);
enable_cpu_extension(BX_ISA_XOP);
enable_cpu_extension(BX_ISA_TBM);
enable_cpu_extension(BX_ISA_BMI1);
#if BX_SUPPORT_SVM
BX_ISA_SVM,
enable_cpu_extension(BX_ISA_SVM);
#endif
BX_ISA_FFXSR,
BX_ISA_1G_PAGES,
BX_ISA_MISALIGNED_SSE,
BX_ISA_ALT_MOV_CR8,
BX_ISA_XAPIC_EXT,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_FFXSR);
enable_cpu_extension(BX_ISA_1G_PAGES);
enable_cpu_extension(BX_ISA_MISALIGNED_SSE);
enable_cpu_extension(BX_ISA_ALT_MOV_CR8);
enable_cpu_extension(BX_ISA_XAPIC_EXT);
}
void trinity_apu_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -39,45 +39,40 @@ turion64_tyler_t::turion64_tyler_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (! BX_SUPPORT_SVM)
BX_INFO(("WARNING: SVM Support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_MMX,
BX_ISA_3DNOW,
BX_ISA_SYSCALL_SYSRET_LEGACY,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_P6,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_3DNOW);
enable_cpu_extension(BX_ISA_SYSCALL_SYSRET_LEGACY);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_NX,
BX_ISA_FFXSR,
BX_ISA_CMPXCHG16B,
BX_ISA_RDTSCP,
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_FFXSR);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
enable_cpu_extension(BX_ISA_RDTSCP);
#if BX_SUPPORT_SVM
BX_ISA_SVM,
enable_cpu_extension(BX_ISA_SVM);
#endif
BX_ISA_ALT_MOV_CR8,
BX_ISA_XAPIC_EXT,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_ALT_MOV_CR8);
enable_cpu_extension(BX_ISA_XAPIC_EXT);
}
void turion64_tyler_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -43,60 +43,55 @@ zambezi_t::zambezi_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
if (! BX_SUPPORT_MONITOR_MWAIT)
BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
static Bit8u supported_extensions[] = {
BX_ISA_X87,
BX_ISA_486,
BX_ISA_PENTIUM,
BX_ISA_P6,
BX_ISA_MMX,
BX_ISA_SYSCALL_SYSRET_LEGACY,
BX_ISA_SYSENTER_SYSEXIT,
BX_ISA_CLFLUSH,
BX_ISA_DEBUG_EXTENSIONS,
BX_ISA_VME,
BX_ISA_PSE,
BX_ISA_PAE,
BX_ISA_PGE,
enable_cpu_extension(BX_ISA_X87);
enable_cpu_extension(BX_ISA_486);
enable_cpu_extension(BX_ISA_PENTIUM);
enable_cpu_extension(BX_ISA_P6);
enable_cpu_extension(BX_ISA_MMX);
enable_cpu_extension(BX_ISA_SYSCALL_SYSRET_LEGACY);
enable_cpu_extension(BX_ISA_SYSENTER_SYSEXIT);
enable_cpu_extension(BX_ISA_CLFLUSH);
enable_cpu_extension(BX_ISA_DEBUG_EXTENSIONS);
enable_cpu_extension(BX_ISA_VME);
enable_cpu_extension(BX_ISA_PSE);
enable_cpu_extension(BX_ISA_PAE);
enable_cpu_extension(BX_ISA_PGE);
#if BX_PHY_ADDRESS_LONG
BX_ISA_PSE36,
enable_cpu_extension(BX_ISA_PSE36);
#endif
BX_ISA_MTRR,
BX_ISA_PAT,
BX_ISA_XAPIC,
BX_ISA_LONG_MODE,
BX_ISA_LM_LAHF_SAHF,
BX_ISA_CMPXCHG16B,
BX_ISA_NX,
BX_ISA_SSE,
BX_ISA_SSE2,
BX_ISA_SSE3,
BX_ISA_SSSE3,
BX_ISA_SSE4_1,
BX_ISA_SSE4_2,
BX_ISA_LZCNT,
BX_ISA_POPCNT,
BX_ISA_SSE4A,
enable_cpu_extension(BX_ISA_MTRR);
enable_cpu_extension(BX_ISA_PAT);
enable_cpu_extension(BX_ISA_XAPIC);
enable_cpu_extension(BX_ISA_LONG_MODE);
enable_cpu_extension(BX_ISA_LM_LAHF_SAHF);
enable_cpu_extension(BX_ISA_CMPXCHG16B);
enable_cpu_extension(BX_ISA_NX);
enable_cpu_extension(BX_ISA_SSE);
enable_cpu_extension(BX_ISA_SSE2);
enable_cpu_extension(BX_ISA_SSE3);
enable_cpu_extension(BX_ISA_SSSE3);
enable_cpu_extension(BX_ISA_SSE4_1);
enable_cpu_extension(BX_ISA_SSE4_2);
enable_cpu_extension(BX_ISA_LZCNT);
enable_cpu_extension(BX_ISA_POPCNT);
enable_cpu_extension(BX_ISA_SSE4A);
#if BX_SUPPORT_MONITOR_MWAIT
BX_ISA_MONITOR_MWAIT,
enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
#endif
BX_ISA_RDTSCP,
BX_ISA_XSAVE,
BX_ISA_AES_PCLMULQDQ,
BX_ISA_AVX,
BX_ISA_FMA4,
BX_ISA_XOP,
enable_cpu_extension(BX_ISA_RDTSCP);
enable_cpu_extension(BX_ISA_XSAVE);
enable_cpu_extension(BX_ISA_AES_PCLMULQDQ);
enable_cpu_extension(BX_ISA_AVX);
enable_cpu_extension(BX_ISA_FMA4);
enable_cpu_extension(BX_ISA_XOP);
#if BX_SUPPORT_SVM
BX_ISA_SVM,
enable_cpu_extension(BX_ISA_SVM);
#endif
BX_ISA_FFXSR,
BX_ISA_1G_PAGES,
BX_ISA_MISALIGNED_SSE,
BX_ISA_ALT_MOV_CR8,
BX_ISA_XAPIC_EXT,
BX_ISA_EXTENSION_LAST
};
register_cpu_extensions(supported_extensions);
enable_cpu_extension(BX_ISA_FFXSR);
enable_cpu_extension(BX_ISA_1G_PAGES);
enable_cpu_extension(BX_ISA_MISALIGNED_SSE);
enable_cpu_extension(BX_ISA_ALT_MOV_CR8);
enable_cpu_extension(BX_ISA_XAPIC_EXT);
}
void zambezi_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t *leaf) const

View File

@ -179,15 +179,6 @@ protected:
ia_extensions_bitmask[extension / 32] &= ~(1 << (extension % 32));
}
BX_CPP_INLINE void register_cpu_extensions(Bit8u *extensions)
{
while(1) {
unsigned cpu_extension = *extensions++;
if (cpu_extension == BX_ISA_EXTENSION_LAST) break;
enable_cpu_extension(cpu_extension);
}
}
void get_leaf_0(unsigned max_leaf, const char *vendor_string, cpuid_function_t *leaf) const;
void get_ext_cpuid_brand_string_leaf(const char *brand_string, Bit32u function, cpuid_function_t *leaf) const;
void get_cpuid_hidden_level(cpuid_function_t *leaf, const char *magic_string) const;