diff --git a/bochs/cpu/cpudb/atom_n270.cc b/bochs/cpu/cpudb/atom_n270.cc index c97627581..3916c2cac 100644 --- a/bochs/cpu/cpudb/atom_n270.cc +++ b/bochs/cpu/cpudb/atom_n270.cc @@ -417,10 +417,16 @@ void atom_n270_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const void atom_n270_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const { // CPUID function 0x0000000A - Architectural Performance Monitoring Leaf +/* leaf->eax = 0x07280203; leaf->ebx = 0x00000000; leaf->ecx = 0x00000000; leaf->edx = 0x00002501; +*/ + leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation + leaf->ebx = 0; + leaf->ecx = 0; + leaf->edx = 0; BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented")); } diff --git a/bochs/cpu/cpudb/core2_penryn_t9600.cc b/bochs/cpu/cpudb/core2_penryn_t9600.cc index 09abf1ca1..13e14d6d0 100644 --- a/bochs/cpu/cpudb/core2_penryn_t9600.cc +++ b/bochs/cpu/cpudb/core2_penryn_t9600.cc @@ -468,10 +468,16 @@ void core2_penryn_t9600_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const void core2_penryn_t9600_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const { // CPUID function 0x0000000A - Architectural Performance Monitoring Leaf +/* leaf->eax = 0x07280202; leaf->ebx = 0x00000000; leaf->ecx = 0x00000000; leaf->edx = 0x00000503; +*/ + leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation + leaf->ebx = 0; + leaf->ecx = 0; + leaf->edx = 0; BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented")); } diff --git a/bochs/cpu/cpudb/core_duo_t2400_yonah.cc b/bochs/cpu/cpudb/core_duo_t2400_yonah.cc index 6f6e6dd65..d0707114a 100644 --- a/bochs/cpu/cpudb/core_duo_t2400_yonah.cc +++ b/bochs/cpu/cpudb/core_duo_t2400_yonah.cc @@ -417,10 +417,16 @@ void core_duo_t2400_yonah_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const void core_duo_t2400_yonah_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const { // CPUID function 0x0000000A - Architectural Performance Monitoring Leaf +/* leaf->eax = 0x07280201; leaf->ebx = 0x00000000; leaf->ecx = 0x00000000; leaf->edx = 0x00000000; +*/ + leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation + leaf->ebx = 0; + leaf->ecx = 0; + leaf->edx = 0; BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented")); } diff --git a/bochs/cpu/cpudb/corei5_arrandale_m520.cc b/bochs/cpu/cpudb/corei5_arrandale_m520.cc index 82e2518f9..4f60cca02 100644 --- a/bochs/cpu/cpudb/corei5_arrandale_m520.cc +++ b/bochs/cpu/cpudb/corei5_arrandale_m520.cc @@ -492,10 +492,16 @@ void corei5_arrandale_m520_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const void corei5_arrandale_m520_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const { // CPUID function 0x0000000A - Architectural Performance Monitoring Leaf +/* leaf->eax = 0x07300403; leaf->ebx = 0x00000004; leaf->ecx = 0x00000000; leaf->edx = 0x00000603; +*/ + leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation + leaf->ebx = 0; + leaf->ecx = 0; + leaf->edx = 0; BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented")); } diff --git a/bochs/cpu/cpudb/corei5_lynnfield_750.cc b/bochs/cpu/cpudb/corei5_lynnfield_750.cc index e9b197c26..0632520e5 100644 --- a/bochs/cpu/cpudb/corei5_lynnfield_750.cc +++ b/bochs/cpu/cpudb/corei5_lynnfield_750.cc @@ -468,10 +468,16 @@ void corei5_lynnfield_750_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const void corei5_lynnfield_750_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const { // CPUID function 0x0000000A - Architectural Performance Monitoring Leaf +/* leaf->eax = 0x07300403; leaf->ebx = 0x00000044; leaf->ecx = 0x00000000; leaf->edx = 0x00000603; +*/ + leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation + leaf->ebx = 0; + leaf->ecx = 0; + leaf->edx = 0; BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented")); } diff --git a/bochs/cpu/cpudb/corei7_ivy_bridge_3770K.cc b/bochs/cpu/cpudb/corei7_ivy_bridge_3770K.cc index 666e91d52..6c79725c0 100644 --- a/bochs/cpu/cpudb/corei7_ivy_bridge_3770K.cc +++ b/bochs/cpu/cpudb/corei7_ivy_bridge_3770K.cc @@ -555,10 +555,16 @@ void corei7_ivy_bridge_3770k_t::get_std_cpuid_leaf_7(Bit32u subfunction, cpuid_f void corei7_ivy_bridge_3770k_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const { // CPUID function 0x0000000A - Architectural Performance Monitoring Leaf +/* leaf->eax = 0x07300403; leaf->ebx = 0x00000000; leaf->ecx = 0x00000000; leaf->edx = 0x00000603; +*/ + leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation + leaf->ebx = 0; + leaf->ecx = 0; + leaf->edx = 0; BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented")); } diff --git a/bochs/cpu/cpudb/corei7_sandy_bridge_2600K.cc b/bochs/cpu/cpudb/corei7_sandy_bridge_2600K.cc index 0ca7a7ce7..325854d33 100644 --- a/bochs/cpu/cpudb/corei7_sandy_bridge_2600K.cc +++ b/bochs/cpu/cpudb/corei7_sandy_bridge_2600K.cc @@ -514,10 +514,16 @@ void corei7_sandy_bridge_2600k_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) c void corei7_sandy_bridge_2600k_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const { // CPUID function 0x0000000A - Architectural Performance Monitoring Leaf +/* leaf->eax = 0x07300803; leaf->ebx = 0x00000000; leaf->ecx = 0x00000000; leaf->edx = 0x00000603; +*/ + leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation + leaf->ebx = 0; + leaf->ecx = 0; + leaf->edx = 0; BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented")); }