[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bochs-cvs
Subject:    [Bochs-cvs] [13271] trunk/bochs
From:       sshwarts--- via Bochs-cvs <bochs-cvs () lists ! sourceforge ! net>
Date:       2017-08-09 20:36:17
Message-ID: 1502310977.809826.11401 () sfp-scm-8 ! v30 ! ch3 ! sourceforge ! com
[Download RAW message or body]

Revision: 13271
Author:   sshwarts
Date:     2017-08-09 20:36:17 +0000 (Wed, 09 Aug 2017)
Log Message:
-----------
added Skylake-X model to CPUDB -> with EVEX and AVX512 support

Modified Paths:
--------------
    trunk/bochs/cpu/cpudb/Makefile.in
    trunk/bochs/cpu/cpudb/intel/broadwell_ult.cc
    trunk/bochs/cpu/cpuid.h
    trunk/bochs/cpu/vmcs.cc
    trunk/bochs/cpu/vmx.cc
    trunk/bochs/cpu/vmx.h
    trunk/bochs/cpudb.h

Added Paths:
-----------
    trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.cc
    trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.h
    trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.txt

Modified: trunk/bochs/cpu/cpudb/Makefile.in
===================================================================
--- trunk/bochs/cpu/cpudb/Makefile.in	2017-08-09 15:42:34 UTC (rev 13270)
+++ trunk/bochs/cpu/cpudb/Makefile.in	2017-08-09 20:36:17 UTC (rev 13271)
@@ -50,6 +50,7 @@
              intel/corei7_ivy_bridge_3770K.o \
              intel/corei7_haswell_4770.o \
              intel/broadwell_ult.o \
+             intel/corei7_skylake-x.o \
              amd/amd_k6_2_chomper.o  \
              amd/athlon64_clawhammer.o \
              amd/athlon64_venice.o \
@@ -233,6 +234,16 @@
  ../decoder/ia_opcodes.h ../lazy_flags.h ../tlb.h ../icache.h ../apic.h \
  ../xmm.h ../vmx.h ../cpuid.h ../access.h ../../param_names.h \
  intel/broadwell_ult.h
+intel/corei7_skylake-x.o: intel/corei7_skylake-x.@CPP_SUFFIX@ ../../bochs.h \
+ ../../config.h ../../osdep.h ../../bx_debug/debug.h ../../config.h \
+ ../../osdep.h ../../gui/siminterface.h ../../cpudb.h \
+ ../../gui/paramtree.h ../../memory/memory-bochs.h ../../pc_system.h \
+ ../../gui/gui.h ../../instrument/stubs/instrument.h ../cpu.h \
+ ../decoder/decoder.h ../i387.h ../fpu/softfloat.h ../fpu/tag_w.h \
+ ../fpu/status_w.h ../fpu/control_w.h ../crregs.h ../descriptor.h \
+ ../decoder/instr.h ../decoder/ia_opcodes.h ../lazy_flags.h ../tlb.h \
+ ../icache.h ../apic.h ../xmm.h ../vmx.h ../cpuid.h ../access.h \
+ ../../param_names.h intel/corei7_skylake-x.h
 amd/amd_k6_2_chomper.o: amd/amd_k6_2_chomper.@CPP_SUFFIX@ ../../bochs.h \
                ../../config.h \
  ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \
  ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \

Modified: trunk/bochs/cpu/cpudb/intel/broadwell_ult.cc
===================================================================
--- trunk/bochs/cpu/cpudb/intel/broadwell_ult.cc	2017-08-09 15:42:34 UTC (rev 13270)
+++ trunk/bochs/cpu/cpudb/intel/broadwell_ult.cc	2017-08-09 20:36:17 UTC (rev 13271)
@@ -33,7 +33,7 @@
 broadwell_ult_t::broadwell_ult_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
 {
   if (BX_SUPPORT_VMX == 1)
-    BX_INFO(("You must compile with --enable-vmx=2 for Intel Core i7 Haswell VMX \
configuration")); +    BX_INFO(("You must compile with --enable-vmx=2 for Intel Core \
i7 Broadwell VMX configuration"));  
   if (! BX_SUPPORT_MONITOR_MWAIT)
     BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
@@ -102,7 +102,7 @@
 
 void broadwell_ult_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, \
cpuid_function_t *leaf) const  {
-  static const char* brand_string = "Intel(R) Processor 5Y70 CPU @ \
1.10GHz\0\0\0\0\0\0\0\0\0\0"; +  static const char* brand_string = "Intel(R) \
Processor 5Y70 CPU @ 1.10GHz\0\0\0\0\0\0\0\0\0\0\0";  static bx_bool \
cpuid_limit_winnt = SIM->get_param_bool(BXPN_CPUID_LIMIT_WINNT)->get();  if \
(cpuid_limit_winnt)  if (function > 2 && function < 0x80000000) function = 2;
@@ -202,7 +202,7 @@
 // MSR 0000048B: 0005-7CFF-0000-0000    BX_MSR_VMX_PROCBASED_CTRLS2
 // MSR 0000048C: 0000-0F01-0633-4141    BX_MSR_VMX_MSR_VMX_EPT_VPID_CAP
 // MSR 0000048D: 0000-007F-0000-0016    BX_MSR_VMX_TRUE_PINBASED_CTRLS
-// MSR 0000048E: FFF9-FFFE-0400-6172    BX_MSR_VMX_TRUE_PINBASED_CTRLS
+// MSR 0000048E: FFF9-FFFE-0400-6172    BX_MSR_VMX_TRUE_PROCBASED_CTRLS
 // MSR 0000048F: 007F-FFFF-0003-6DFB    BX_MSR_VMX_TRUE_VMEXIT_CTRLS
 // MSR 00000490: 0000-FFFF-0000-11FB    BX_MSR_VMX_TRUE_VMENTRY_CTRLS
 

Added: trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.cc
===================================================================
--- trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.cc	                        (rev 0)
+++ trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.cc	2017-08-09 20:36:17 UTC (rev \
13271) @@ -0,0 +1,814 @@
+/////////////////////////////////////////////////////////////////////////
+// $Id$
+/////////////////////////////////////////////////////////////////////////
+//
+//   Copyright (c) 2017 Stanislav Shwartsman
+//          Written by Stanislav Shwartsman [sshwarts at sourceforge net]
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2 of the License, or (at your option) any later version.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA B 02110-1301 USA
+//
+/////////////////////////////////////////////////////////////////////////
+
+#include "bochs.h"
+#include "cpu.h"
+#include "param_names.h"
+#include "corei7_skylake-x.h"
+
+#define LOG_THIS cpu->
+
+#if BX_SUPPORT_X86_64 && BX_SUPPORT_AVX && BX_SUPPORT_EVEX
+
+corei7_skylake_x_t::corei7_skylake_x_t(BX_CPU_C *cpu): bx_cpuid_t(cpu)
+{
+  if (BX_SUPPORT_VMX == 1)
+    BX_INFO(("You must compile with --enable-vmx=2 for Intel Core i7 Skylake-X VMX \
configuration")); +
+  if (! BX_SUPPORT_MONITOR_MWAIT)
+    BX_INFO(("WARNING: MONITOR/MWAIT support is not compiled in !"));
+
+  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
+  enable_cpu_extension(BX_ISA_PSE36);
+#endif
+  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
+  enable_cpu_extension(BX_ISA_MONITOR_MWAIT);
+#endif
+#if BX_SUPPORT_VMX >= 2
+  enable_cpu_extension(BX_ISA_VMX);
+#endif
+  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);
+  enable_cpu_extension(BX_ISA_RDSEED);
+  enable_cpu_extension(BX_ISA_ADX);
+  enable_cpu_extension(BX_ISA_SMAP);
+  enable_cpu_extension(BX_ISA_FDP_DEPRECATION);
+  enable_cpu_extension(BX_ISA_AVX512);
+  enable_cpu_extension(BX_ISA_AVX512_DQ);
+  enable_cpu_extension(BX_ISA_AVX512_CD);
+  enable_cpu_extension(BX_ISA_AVX512_BW);
+  enable_cpu_extension(BX_ISA_AVX512_VL);
+  enable_cpu_extension(BX_ISA_CLFLUSHOPT);
+  enable_cpu_extension(BX_ISA_CLWB);
+}
+
+void corei7_skylake_x_t::get_cpuid_leaf(Bit32u function, Bit32u subfunction, \
cpuid_function_t *leaf) const +{
+  static const char* brand_string = "Intel(R) Core(TM) i7-7800X CPU @ \
3.50GHz\0\0\0\0\0\0\0\0"; +  static bx_bool cpuid_limit_winnt = \
SIM->get_param_bool(BXPN_CPUID_LIMIT_WINNT)->get(); +  if (cpuid_limit_winnt)
+    if (function > 2 && function < 0x80000000) function = 2;
+
+  switch(function) {
+  case 0x80000000:
+    get_ext_cpuid_leaf_0(leaf);
+    return;
+  case 0x80000001:
+    get_ext_cpuid_leaf_1(leaf);
+    return;
+  case 0x80000002:
+  case 0x80000003:
+  case 0x80000004:
+    get_ext_cpuid_brand_string_leaf(brand_string, function, leaf);
+    return;
+  case 0x80000005:
+    get_reserved_leaf(leaf);
+    return;
+  case 0x80000006:
+    get_ext_cpuid_leaf_6(leaf);
+    return;
+  case 0x80000007:
+    get_ext_cpuid_leaf_7(leaf);
+    return;
+  case 0x80000008:
+    get_ext_cpuid_leaf_8(leaf);
+    return;
+  case 0x00000000:
+    get_std_cpuid_leaf_0(leaf);
+    return;
+  case 0x00000001:
+    get_std_cpuid_leaf_1(leaf);
+    return;
+  case 0x00000002:
+    get_std_cpuid_leaf_2(leaf);
+    return;
+  case 0x00000003:
+    get_reserved_leaf(leaf);
+    return;
+  case 0x00000004:
+    get_std_cpuid_leaf_4(subfunction, leaf);
+    return;
+  case 0x00000005:
+    get_std_cpuid_leaf_5(leaf);
+    return;
+  case 0x00000006:
+    get_std_cpuid_leaf_6(leaf);
+    return;
+  case 0x00000007:
+    get_std_cpuid_leaf_7(subfunction, leaf);
+    return;
+  case 0x00000008:
+  case 0x00000009:
+    get_reserved_leaf(leaf);
+    return;
+  case 0x0000000A:
+    get_std_cpuid_leaf_A(leaf);
+    return;
+  case 0x0000000B:
+    get_std_cpuid_extended_topology_leaf(subfunction, leaf);
+    return;
+  case 0x0000000C:
+    get_reserved_leaf(leaf);
+    return;
+  case 0x0000000D:
+    get_std_cpuid_xsave_leaf(subfunction, leaf);
+    return;
+  case 0x0000000E:
+  case 0x0000000F:
+  case 0x00000010:
+  case 0x00000011:
+  case 0x00000012:
+  case 0x00000013:
+  case 0x00000014:
+    get_reserved_leaf(leaf);
+    return;
+  case 0x00000015:
+    get_std_cpuid_leaf_15(leaf);
+    return;
+  case 0x00000016:
+  default:
+    get_std_cpuid_leaf_16(leaf);
+    return;
+  }
+}
+
+#if BX_SUPPORT_VMX >= 2
+
+// MSR 00000480: 00DA-0400-0000-0004	BX_MSR_VMX_BASIC
+// MSR 00000481: 0000-00FF-0000-0016	BX_MSR_VMX_PINBASED_CTRLS
+// MSR 00000482: FFF9-FFFE-0401-E172	BX_MSR_VMX_PROCBASED_CTRLS
+// MSR 00000483: 01FF-FFFF-0003-6DFF	BX_MSR_VMX_VMEXIT_CTRLS
+// MSR 00000484: 0003-FFFF-0000-11FF	BX_MSR_VMX_VMENTRY_CTRLS
+// MSR 00000485: 0000-0000-7004-C1E7	BX_MSR_VMX_MISC
+// MSR 00000486: 0000-0000-8000-0021	BX_MSR_VMX_CR0_FIXED0
+// MSR 00000487: 0000-0000-FFFF-FFFF	BX_MSR_VMX_CR0_FIXED1
+// MSR 00000488: 0000-0000-0000-2000	BX_MSR_VMX_CR4_FIXED0
+// MSR 00000489: 0000-0000-0037-27FF	BX_MSR_VMX_CR4_FIXED1
+// MSR 0000048A: 0000-0000-0000-002E	BX_MSR_VMX_VMCS_ENUM
+// MSR 0000048B: 025D-3FFF-0000-0000	BX_MSR_VMX_PROCBASED_CTRLS2
+// MSR 0000048C: 0000-0F01-0673-4141	BX_MSR_VMX_MSR_VMX_EPT_VPID_CAP
+// MSR 0000048D: 0000-00FF-0000-0016	BX_MSR_VMX_TRUE_PINBASED_CTRLS
+// MSR 0000048E: FFF9-FFFE-0400-6172    BX_MSR_VMX_TRUE_PROCBASED_CTRLS
+// MSR 0000048F: 01FF-FFFF-0003-6DFB	BX_MSR_VMX_TRUE_VMEXIT_CTRLS
+// MSR 00000490: 0003-FFFF-0000-11FB	BX_MSR_VMX_TRUE_VMENTRY_CTRLS
+
+// MSR 00000480: 00DA-0400-0000-0012    BX_MSR_VMX_BASIC
+// MSR 00000481: 0000-007F-0000-0016    BX_MSR_VMX_PINBASED_CTRLS
+// MSR 00000482: FFF9-FFFE-0401-E172    BX_MSR_VMX_PROCBASED_CTRLS
+// MSR 00000483: 007F-FFFF-0003-6DFF    BX_MSR_VMX_VMEXIT_CTRLS
+// MSR 00000484: 0000-FFFF-0000-11FF    BX_MSR_VMX_VMENTRY_CTRLS
+// MSR 00000485: 0000-0000-3004-81E5    BX_MSR_VMX_MISC
+// MSR 00000486: 0000-0000-8000-0021    BX_MSR_VMX_CR0_FIXED0
+// MSR 00000487: 0000-0000-FFFF-FFFF    BX_MSR_VMX_CR0_FIXED1
+// MSR 00000488: 0000-0000-0000-2000    BX_MSR_VMX_CR4_FIXED0
+// MSR 00000489: 0000-0000-0037-67FF    BX_MSR_VMX_CR4_FIXED1
+// MSR 0000048A: 0000-0000-0000-002A    BX_MSR_VMX_VMCS_ENUM
+// MSR 0000048B: 0005-7CFF-0000-0000    BX_MSR_VMX_PROCBASED_CTRLS2
+// MSR 0000048C: 0000-0F01-0633-4141    BX_MSR_VMX_MSR_VMX_EPT_VPID_CAP
+// MSR 0000048D: 0000-007F-0000-0016    BX_MSR_VMX_TRUE_PINBASED_CTRLS
+// MSR 0000048E: FFF9-FFFE-0400-6172    BX_MSR_VMX_TRUE_PINBASED_CTRLS
+// MSR 0000048F: 007F-FFFF-0003-6DFB    BX_MSR_VMX_TRUE_VMEXIT_CTRLS
+// MSR 00000490: 0000-FFFF-0000-11FB    BX_MSR_VMX_TRUE_VMENTRY_CTRLS
+
+Bit32u corei7_skylake_x_t::get_vmx_extensions_bitmask(void) const
+{
+  return BX_VMX_TPR_SHADOW |
+         BX_VMX_VIRTUAL_NMI |
+         BX_VMX_APIC_VIRTUALIZATION |
+         BX_VMX_WBINVD_VMEXIT |
+      /* BX_VMX_MONITOR_TRAP_FLAG | */ // not implemented yet
+         BX_VMX_VPID |
+         BX_VMX_EPT |
+         BX_VMX_UNRESTRICTED_GUEST |
+         BX_VMX_SAVE_DEBUGCTL_DISABLE |
+         BX_VMX_PERF_GLOBAL_CTRL |     // MSR not implemented yet
+         BX_VMX_PAT |
+         BX_VMX_EFER |
+         BX_VMX_DESCRIPTOR_TABLE_EXIT |
+         BX_VMX_X2APIC_VIRTUALIZATION |
+         BX_VMX_PREEMPTION_TIMER |
+         BX_VMX_PAUSE_LOOP_EXITING |
+         BX_VMX_EPTP_SWITCHING |
+         BX_VMX_EPT_ACCESS_DIRTY |
+         BX_VMX_VINTR_DELIVERY |
+         BX_VMX_VMCS_SHADOWING |
+         BX_VMX_EPT_EXCEPTION |
+         BX_VMX_SW_INTERRUPT_INJECTION_ILEN_0 |
+      /* BX_VMX_POSTED_INSTERRUPTS - not implemented yet */
+      /* BX_VMX_MBE_CONTROL - not implemeted yet */
+         BX_VMX_TSC_SCALING;
+}
+
+#endif
+
+// leaf 0x00000000 //
+void corei7_skylake_x_t::get_std_cpuid_leaf_0(cpuid_function_t *leaf) const
+{
+  static const char* vendor_string = "GenuineIntel";
+
+  // EAX: highest std function understood by CPUID
+  // EBX: vendor ID string
+  // EDX: vendor ID string
+  // ECX: vendor ID string
+  unsigned max_leaf = 0x16;
+  static bx_bool cpuid_limit_winnt = \
SIM->get_param_bool(BXPN_CPUID_LIMIT_WINNT)->get(); +  if (cpuid_limit_winnt)
+    max_leaf = 0x2;
+
+  get_leaf_0(max_leaf, vendor_string, leaf);
+}
+
+// leaf 0x00000001 //
+void corei7_skylake_x_t::get_std_cpuid_leaf_1(cpuid_function_t *leaf) const
+{
+  // EAX:       CPU Version Information
+  //   [3:0]   Stepping ID
+  //   [7:4]   Model: starts at 1
+  //   [11:8]  Family: 4=486, 5=Pentium, 6=PPro, ...
+  //   [13:12] Type: 0=OEM, 1=overdrive, 2=dual cpu, 3=reserved
+  //   [19:16] Extended Model
+  //   [27:20] Extended Family
+  leaf->eax = 0x00050654;
+
+  // EBX:
+  //   [7:0]   Brand ID
+  //   [15:8]  CLFLUSH cache line size (value*8 = cache line size in bytes)
+  //   [23:16] Number of logical processors in one physical processor
+  //   [31:24] Local Apic ID
+
+  unsigned n_logical_processors = ncores*nthreads;
+  leaf->ebx = ((CACHE_LINE_SIZE / 8) << 8) |
+              (n_logical_processors << 16);
+#if BX_SUPPORT_APIC
+  leaf->ebx |= ((cpu->get_apic_id() & 0xff) << 24);
+#endif
+
+  // ECX: Extended Feature Flags
+  // * [0:0]   SSE3: SSE3 Instructions
+  // * [1:1]   PCLMULQDQ Instruction support
+  // * [2:2]   DTES64: 64-bit DS area
+  // * [3:3]   MONITOR/MWAIT support
+  // * [4:4]   DS-CPL: CPL qualified debug store
+  // * [5:5]   VMX: Virtual Machine Technology
+  //   [6:6]   SMX: Secure Virtual Machine Technology
+  // * [7:7]   EST: Enhanced Intel SpeedStep Technology
+  // * [8:8]   TM2: Thermal Monitor 2
+  // * [9:9]   SSSE3: SSSE3 Instructions
+  //   [10:10] CNXT-ID: L1 context ID
+  // * [11:11] reserved
+  // * [12:12] FMA Instructions support
+  // * [13:13] CMPXCHG16B: CMPXCHG16B instruction support
+  // * [14:14] xTPR update control
+  // * [15:15] PDCM - Perfon and Debug Capability MSR
+  //   [16:16] reserved
+  // * [17:17] PCID: Process Context Identifiers
+  // * [18:18] DCA - Direct Cache Access
+  // * [19:19] SSE4.1 Instructions
+  // * [20:20] SSE4.2 Instructions
+  // * [21:21] X2APIC
+  // * [22:22] MOVBE instruction
+  // * [23:23] POPCNT instruction
+  // * [24:24] TSC Deadline
+  // * [25:25] AES Instructions
+  // * [26:26] XSAVE extensions support
+  // * [27:27] OSXSAVE support
+  // * [28:28] AVX extensions support
+  // * [29:29] AVX F16C - Float16 conversion support
+  // * [30:30] RDRAND instruction
+  //   [31:31] reserved
+  leaf->ecx = BX_CPUID_EXT_SSE3 |
+              BX_CPUID_EXT_PCLMULQDQ |
+              BX_CPUID_EXT_DTES64 |
+#if BX_SUPPORT_MONITOR_MWAIT
+              BX_CPUID_EXT_MONITOR_MWAIT |
+#endif
+              BX_CPUID_EXT_DS_CPL |
+#if BX_SUPPORT_VMX >= 2
+              BX_CPUID_EXT_VMX |
+#endif
+              BX_CPUID_EXT_EST |
+              BX_CPUID_EXT_THERMAL_MONITOR2 |
+              BX_CPUID_EXT_SSSE3 |
+              BX_CPUID_EXT_FMA |
+              BX_CPUID_EXT_CMPXCHG16B |
+              BX_CPUID_EXT_xTPR |
+              BX_CPUID_EXT_PDCM |
+              BX_CPUID_EXT_PCID |
+              BX_CPUID_EXT_SSE4_1 |
+              BX_CPUID_EXT_SSE4_2 |
+              BX_CPUID_EXT_X2APIC |
+              BX_CPUID_EXT_MOVBE |
+              BX_CPUID_EXT_POPCNT |
+              BX_CPUID_EXT_TSC_DEADLINE |
+              BX_CPUID_EXT_AES |
+              BX_CPUID_EXT_XSAVE |
+              BX_CPUID_EXT_AVX |
+              BX_CPUID_EXT_AVX_F16C |
+              BX_CPUID_EXT_RDRAND;
+  if (cpu->cr4.get_OSXSAVE())
+    leaf->ecx |= BX_CPUID_EXT_OSXSAVE;
+
+  // EDX: Standard Feature Flags
+  // * [0:0]   FPU on chip
+  // * [1:1]   VME: Virtual-8086 Mode enhancements
+  // * [2:2]   DE: Debug Extensions (I/O breakpoints)
+  // * [3:3]   PSE: Page Size Extensions
+  // * [4:4]   TSC: Time Stamp Counter
+  // * [5:5]   MSR: RDMSR and WRMSR support
+  // * [6:6]   PAE: Physical Address Extensions
+  // * [7:7]   MCE: Machine Check Exception
+  // * [8:8]   CXS: CMPXCHG8B instruction
+  // * [9:9]   APIC: APIC on Chip
+  //   [10:10] Reserved
+  // * [11:11] SYSENTER/SYSEXIT support
+  // * [12:12] MTRR: Memory Type Range Reg
+  // * [13:13] PGE/PTE Global Bit
+  // * [14:14] MCA: Machine Check Architecture
+  // * [15:15] CMOV: Cond Mov/Cmp Instructions
+  // * [16:16] PAT: Page Attribute Table
+  // * [17:17] PSE-36: Physical Address Extensions
+  //   [18:18] PSN: Processor Serial Number
+  // * [19:19] CLFLUSH: CLFLUSH Instruction support
+  //   [20:20] Reserved
+  // * [21:21] DS: Debug Store
+  // * [22:22] ACPI: Thermal Monitor and Software Controlled Clock Facilities
+  // * [23:23] MMX Technology
+  // * [24:24] FXSR: FXSAVE/FXRSTOR (also indicates CR4.OSFXSR is available)
+  // * [25:25] SSE: SSE Extensions
+  // * [26:26] SSE2: SSE2 Extensions
+  // * [27:27] Self Snoop
+  // * [28:28] Hyper Threading Technology
+  // * [29:29] TM: Thermal Monitor
+  //   [30:30] Reserved
+  // * [31:31] PBE: Pending Break Enable
+  leaf->edx = BX_CPUID_STD_X87 |
+              BX_CPUID_STD_VME |
+              BX_CPUID_STD_DEBUG_EXTENSIONS |
+              BX_CPUID_STD_PSE |
+              BX_CPUID_STD_TSC |
+              BX_CPUID_STD_MSR |
+              BX_CPUID_STD_PAE |
+              BX_CPUID_STD_MCE |
+              BX_CPUID_STD_CMPXCHG8B |
+              BX_CPUID_STD_SYSENTER_SYSEXIT |
+              BX_CPUID_STD_MTRR |
+              BX_CPUID_STD_GLOBAL_PAGES |
+              BX_CPUID_STD_MCA |
+              BX_CPUID_STD_CMOV |
+              BX_CPUID_STD_PAT |
+              BX_CPUID_STD_PSE36 |
+              BX_CPUID_STD_CLFLUSH |
+              BX_CPUID_STD_DEBUG_STORE |
+              BX_CPUID_STD_ACPI |
+              BX_CPUID_STD_MMX |
+              BX_CPUID_STD_FXSAVE_FXRSTOR |
+              BX_CPUID_STD_SSE |
+              BX_CPUID_STD_SSE2 |
+              BX_CPUID_STD_SELF_SNOOP |
+              BX_CPUID_STD_HT |
+              BX_CPUID_STD_THERMAL_MONITOR |
+              BX_CPUID_STD_PBE;
+#if BX_SUPPORT_APIC
+  // if MSR_APICBASE APIC Global Enable bit has been cleared,
+  // the CPUID feature flag for the APIC is set to 0.
+  if (cpu->msr.apicbase & 0x800)
+    leaf->edx |= BX_CPUID_STD_APIC; // APIC on chip
+#endif
+}
+
+// leaf 0x00000002 //
+void corei7_skylake_x_t::get_std_cpuid_leaf_2(cpuid_function_t *leaf) const
+{
+  // CPUID function 0x00000002 - Cache and TLB Descriptors
+  leaf->eax = 0x76036301;
+  leaf->ebx = 0x00f0b5ff;
+  leaf->ecx = 0x00000000;
+  leaf->edx = 0x00c30000;
+}
+
+// leaf 0x00000003 - Processor Serial Number (not supported) //
+
+// leaf 0x00000004 //
+void corei7_skylake_x_t::get_std_cpuid_leaf_4(Bit32u subfunction, cpuid_function_t \
*leaf) const +{
+  // CPUID function 0x00000004 - Deterministic Cache Parameters
+
+  // EAX:
+  //   [04-00] - Cache Type Field
+  //             0 = No more caches
+  //             1 = Data Cache
+  //             2 = Instruction Cache
+  //             3 = Unified Cache
+  //   [07-05] - Cache Level (starts at 1)]
+  //      [08] - Self Initializing cache level (doesn't need software \
initialization) +  //      [09] - Fully Associative cache
+  //   [13-10] - Reserved
+  //   [25-14] - Maximum number of addressable IDs for logical processors sharing \
this cache +  //   [31-26] - Maximum number of addressable IDs for processor cores in \
the physical package - 1 +  // EBX:
+  //   [11-00] - L = System Coherency Line Size
+  //   [21-12] - P = Physical Line partitions
+  //   [31-22] - W = Ways of associativity
+  // ECX: Number of Sets
+  // EDX:
+  //      [00] - Writeback invalidate
+  //      [01] - Cache Inclusiveness
+  //      [02] - Complex Cache Indexing
+  //   [31-03] - Reserved
+
+  switch(subfunction) {
+  case 0:
+    leaf->eax = 0x1c004121;
+    leaf->ebx = 0x01c0003f;
+    leaf->ecx = 0x0000003f;
+    leaf->edx = 0x00000000;
+    break;
+  case 1:
+    leaf->eax = 0x1c004122;
+    leaf->ebx = 0x01c0003f;
+    leaf->ecx = 0x0000003f;
+    leaf->edx = 0x00000000;
+    break;
+  case 2:
+    leaf->eax = 0x1c004143;
+    leaf->ebx = 0x03c0003f;
+    leaf->ecx = 0x000003ff;
+    leaf->edx = 0x00000000;
+    break;
+  case 3:
+    leaf->eax = 0x1c03c163;
+    leaf->ebx = 0x0280003f;
+    leaf->ecx = 0x00002fff;
+    leaf->edx = 0x00000004;
+    break;
+  default:
+    leaf->eax = 0;
+    leaf->ebx = 0;
+    leaf->ecx = 0;
+    leaf->edx = 0;
+    return;
+  }
+}
+
+// leaf 0x00000005 //
+void corei7_skylake_x_t::get_std_cpuid_leaf_5(cpuid_function_t *leaf) const
+{
+  // CPUID function 0x00000005 - MONITOR/MWAIT Leaf
+
+#if BX_SUPPORT_MONITOR_MWAIT
+  // EAX - Smallest monitor-line size in bytes
+  // EBX - Largest  monitor-line size in bytes
+  // ECX -
+  //   [31:2] - reserved
+  //    [1:1] - exit MWAIT even with EFLAGS.IF = 0
+  //    [0:0] - MONITOR/MWAIT extensions are supported
+  // EDX -
+  //  [03-00] - number of C0 sub C-states supported using MWAIT
+  //  [07-04] - number of C1 sub C-states supported using MWAIT
+  //  [11-08] - number of C2 sub C-states supported using MWAIT
+  //  [15-12] - number of C3 sub C-states supported using MWAIT
+  //  [19-16] - number of C4 sub C-states supported using MWAIT
+  //  [31-20] - reserved (MBZ)
+  leaf->eax = CACHE_LINE_SIZE;
+  leaf->ebx = CACHE_LINE_SIZE;
+  leaf->ecx = 3;
+  leaf->edx = 0x00002020;
+#else
+  leaf->eax = 0;
+  leaf->ebx = 0;
+  leaf->ecx = 0;
+  leaf->edx = 0;
+#endif
+}
+
+// leaf 0x00000006 //
+void corei7_skylake_x_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const
+{
+  // CPUID function 0x00000006 - Thermal and Power Management Leaf
+  leaf->eax = 0x00000075;
+  leaf->ebx = 0x00000002;
+  leaf->ecx = 0x00000009;
+  leaf->edx = 0x00000000;
+}
+
+// leaf 0x00000007 //
+void corei7_skylake_x_t::get_std_cpuid_leaf_7(Bit32u subfunction, cpuid_function_t \
*leaf) const +{
+  switch(subfunction) {
+  case 0:
+    leaf->eax = 0; /* report max sub-leaf that supported in leaf 7 */
+
+    // * [0:0]   FS/GS BASE access instructions
+    // * [1:1]   Support for IA32_TSC_ADJUST MSR
+    //   [2:2]   SGX: Intel Software Guard Extensions
+    // * [3:3]   BMI1: Advanced Bit Manipulation Extensions
+    // x [4:4]   HLE: Hardware Lock Elision
+    // * [5:5]   AVX2
+    // * [6:6]   FDP Deprecation
+    // * [7:7]   SMEP: Supervisor Mode Execution Protection
+    // * [8:8]   BMI2: Advanced Bit Manipulation Extensions
+    // * [9:9]   Support for Enhanced REP MOVSB/STOSB
+    // * [10:10] Support for INVPCID instruction
+    // x [11:11] RTM: Restricted Transactional Memory
+    // x [12:12] Supports Quality of Service (QoS) capability
+    // * [13:13] Deprecates FPU CS and FPU DS values
+    //   [14:14] Intel Memory Protection Extensions
+    // x [15:15] Supports Platform Quality of Service Enforcement (PQE) capability
+    // * [16:16] AVX512F instructions support
+    // * [17:17] AVX512DQ instructions support
+    // * [18:18] RDSEED instruction support
+    // * [19:19] ADCX/ADOX instructions support
+    // * [20:20] SMAP: Supervisor Mode Access Prevention
+    //   [21:21] AVX512IFMA52 instructions support
+    //   [22:22] reserved
+    // * [23:23] CLFLUSHOPT instruction
+    // * [24:24] CLWB instruction
+    // * [25:25] Intel Processor Trace
+    //   [26:26] AVX512PF instructions support
+    //   [27:27] AVX512ER instructions support
+    // * [28:28] AVX512CD instructions support
+    //   [29:29] SHA instructions support
+    // * [30:30] AVX512BW instructions support
+    // * [31:31] AVX512VL variable vector length support
+    leaf->ebx = BX_CPUID_EXT3_FSGSBASE | 
+             /* BX_CPUID_EXT3_TSC_ADJUST | */ // not implemented yet
+                BX_CPUID_EXT3_BMI1 | 
+                BX_CPUID_EXT3_AVX2 |
+                BX_CPUID_EXT3_FDP_DEPRECATION |
+                BX_CPUID_EXT3_SMEP | 
+                BX_CPUID_EXT3_BMI2 | 
+                BX_CPUID_EXT3_ENCHANCED_REP_STRINGS |
+                BX_CPUID_EXT3_INVPCID |
+                BX_CPUID_EXT3_AVX512F |
+                BX_CPUID_EXT3_AVX512DQ |
+                BX_CPUID_EXT3_DEPRECATE_FCS_FDS |
+                BX_CPUID_EXT3_RDSEED |
+                BX_CPUID_EXT3_ADX |
+                BX_CPUID_EXT3_SMAP |
+                BX_CPUID_EXT3_CLFLUSHOPT |
+                BX_CPUID_EXT3_CLWB |
+             /* BX_CPUID_EXT3_PROCESSOR_TRACE */ // Intel Processor Trace not \
implemented yet +                BX_CPUID_EXT3_AVX512CD |
+                BX_CPUID_EXT3_AVX512BW |
+                BX_CPUID_EXT3_AVX512VL;
+
+    leaf->ecx = 0;
+    leaf->edx = 0;
+    break;
+  default:
+    leaf->eax = 0;
+    leaf->ebx = 0;
+    leaf->ecx = 0;
+    leaf->edx = 0;
+  }
+}
+
+// leaf 0x00000008 reserved                          //
+// leaf 0x00000009 direct cache access not supported //
+
+// leaf 0x0000000A //
+void corei7_skylake_x_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const
+{
+  // CPUID function 0x0000000A - Architectural Performance Monitoring Leaf
+
+  // EAX:
+  //   [7:0] Version ID of architectural performance monitoring
+  //  [15:8] Number of general-purpose performance monitoring counters per logical \
processor +  // [23:16] Bit width of general-purpose, performance monitoring counter
+  // [31:24] Length of EBX bit vector to enumerate architectural performance
+  //         monitoring events.
+
+  // EBX:
+  //     [0] Core cycle event not available if 1
+  //     [1] Instruction retired event not available if 1
+  //     [2] Reference cycles event not available if 1
+  //     [3] Last-level cache reference event not available if 1
+  //     [4] Last-level cache misses event not available if 1
+  //     [5] Branch instruction retired event not available if 1
+  //     [6] Branch mispredict retired event not available if 1
+  //  [31:7] reserved
+
+  // ECX: reserved
+
+  // EDX:
+  //   [4:0] Number of fixed performance counters (if Version ID > 1)
+  //  [12:5] Bit width of fixed-function performance counters (if Version ID > 1)
+  // [31:13] reserved
+
+  leaf->eax = 0x07300404;
+  leaf->ebx = 0x00000000;
+  leaf->ecx = 0x00000000;
+  leaf->edx = 0x00000603;
+
+  BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented"));
+}
+
+// leaf 0x0000000C reserved //
+
+// leaf 0x0000000D - XSAVE //
+
+// leaf 0x0000000E reserved //
+// leaf 0x0000000F Intel Resource Director Technology (Intel RDT) Monitoring \
Enumeration (not implemented) // +// leaf 0x00000010 Intel Resource Director \
Technology (Intel RDT) Allocation Enumeration (not implemented) // +// leaf \
0x00000011 reserved // +// leaf 0x00000012 SGX (not implemented) //
+// leaf 0x00000013 reserved //
+// leaf 0x00000014 Intel Processor Trace (not implemented) //
+
+void corei7_skylake_x_t::get_std_cpuid_leaf_15(cpuid_function_t *leaf) const
+{
+  // CPUID function 0x000000015 - Time Stamp Counter and Nominal Core Crystal Clock \
Information +  leaf->eax = 0x00000002;
+  leaf->ebx = 0x00000124;
+  leaf->ecx = 0x00000000;
+  leaf->edx = 0x00000000;
+}
+
+void corei7_skylake_x_t::get_std_cpuid_leaf_16(cpuid_function_t *leaf) const
+{
+  // CPUID function 0x000000016 - Processor Frequency Information
+  leaf->eax = 0x00000dac;
+  leaf->ebx = 0x00000fa0;
+  leaf->ecx = 0x00000064;
+  leaf->edx = 0x00000000;
+}
+
+// leaf 0x80000000 //
+void corei7_skylake_x_t::get_ext_cpuid_leaf_0(cpuid_function_t *leaf) const
+{
+  // EAX: highest extended function understood by CPUID
+  // EBX: reserved
+  // EDX: reserved
+  // ECX: reserved
+  get_leaf_0(0x80000008, NULL, leaf);
+}
+
+// leaf 0x80000001 //
+void corei7_skylake_x_t::get_ext_cpuid_leaf_1(cpuid_function_t *leaf) const
+{
+  // EAX:       CPU Version Information (reserved for Intel)
+  leaf->eax = 0;
+
+  // EBX:       Brand ID (reserved for Intel)
+  leaf->ebx = 0;
+
+  // ECX:
+  // * [0:0]   LAHF/SAHF instructions support in 64-bit mode
+  //   [1:1]   CMP_Legacy: Core multi-processing legacy mode (AMD)
+  //   [2:2]   SVM: Secure Virtual Machine (AMD)
+  //   [3:3]   Extended APIC Space
+  //   [4:4]   AltMovCR8: LOCK MOV CR0 means MOV CR8
+  // * [5:5]   LZCNT: LZCNT instruction support
+  //   [6:6]   SSE4A: SSE4A Instructions support
+  //   [7:7]   Misaligned SSE support
+  // * [8:8]   PREFETCHW: PREFETCHW instruction support
+  //   [9:9]   OSVW: OS visible workarounds (AMD)
+  //   [10:10] IBS: Instruction based sampling
+  //   [11:11] XOP: Extended Operations Support and XOP Prefix
+  //   [12:12] SKINIT support
+  //   [13:13] WDT: Watchdog timer support
+  //   [14:14] Reserved
+  //   [15:15] LWP: Light weight profiling
+  //   [16:16] FMA4: Four-operand FMA instructions support
+  //   [17:17] Reserved
+  //   [18:18] Reserved
+  //   [19:19] NodeId: Indicates support for NodeId MSR (0xc001100c)
+  //   [20:20] Reserved
+  //   [21:21] TBM: trailing bit manipulation instructions support
+  //   [22:22] Topology extensions support
+  //   [23:23] PerfCtrExtCore: core perf counter extensions support
+  //   [24:24] PerfCtrExtNB: NB perf counter extensions support
+  //   [25:25] Reserved
+  //   [26:26] Data breakpoint extension. Indicates support for MSR 0xC0011027 and \
MSRs 0xC001101[B:9] +  //   [27:27] Performance time-stamp counter. Indicates support \
for MSR 0xC0010280 +  //   [28:28] PerfCtrExtL2I: L2I performance counter extensions \
support +  //   [29:29] Reserved
+  //   [30:30] Reserved
+  //   [31:31] Reserved
+
+  leaf->ecx = BX_CPUID_EXT2_LAHF_SAHF |
+              BX_CPUID_EXT2_LZCNT |
+              BX_CPUID_EXT2_PREFETCHW;
+
+  // EDX:
+  // Many of the bits in EDX are the same as FN 0x00000001 [*] for AMD
+  //    [10:0] Reserved for Intel
+  // * [11:11] SYSCALL/SYSRET support
+  //   [19:12] Reserved for Intel
+  // * [20:20] No-Execute page protection
+  //   [25:21] Reserved
+  // * [26:26] 1G paging support
+  // * [27:27] Support RDTSCP Instruction
+  //   [28:28] Reserved
+  // * [29:29] Long Mode
+  //   [30:30] AMD 3DNow! Extensions
+  //   [31:31] AMD 3DNow! Instructions
+
+  leaf->edx = BX_CPUID_STD2_NX |
+              BX_CPUID_STD2_1G_PAGES |
+              BX_CPUID_STD2_RDTSCP |
+              BX_CPUID_STD2_LONG_MODE;
+  if (cpu->long64_mode())
+    leaf->edx |= BX_CPUID_STD2_SYSCALL_SYSRET;
+}
+
+// leaf 0x80000002 //
+// leaf 0x80000003 //
+// leaf 0x80000004 //
+
+// leaf 0x80000005 - L1 Cache and TLB Identifiers (reserved for Intel)
+
+// leaf 0x80000006 //
+void corei7_skylake_x_t::get_ext_cpuid_leaf_6(cpuid_function_t *leaf) const
+{
+  // CPUID function 0x800000006 - L2 Cache and TLB Identifiers
+  leaf->eax = 0x00000000;
+  leaf->ebx = 0x00000000;
+  leaf->ecx = 0x01006040;
+  leaf->edx = 0x00000000;
+}
+
+// leaf 0x80000007 //
+void corei7_skylake_x_t::get_ext_cpuid_leaf_7(cpuid_function_t *leaf) const
+{
+  // CPUID function 0x800000007 - Advanced Power Management
+  leaf->eax = 0;
+  leaf->ebx = 0;
+  leaf->ecx = 0;
+  leaf->edx = 0x00000100; // bit 8 - invariant TSC
+}
+
+void corei7_skylake_x_t::dump_cpuid(void) const
+{
+  bx_cpuid_t::dump_cpuid(0x16, 0x8);
+}
+
+bx_cpuid_t *create_corei7_skylake_x_cpuid(BX_CPU_C *cpu) { return new \
corei7_skylake_x_t(cpu); } +
+#endif


Property changes on: trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.cc
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.h
===================================================================
--- trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.h	                        (rev 0)
+++ trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.h	2017-08-09 20:36:17 UTC (rev \
13271) @@ -0,0 +1,69 @@
+/////////////////////////////////////////////////////////////////////////
+// $Id$
+/////////////////////////////////////////////////////////////////////////
+//
+//   Copyright (c) 2017 Stanislav Shwartsman
+//          Written by Stanislav Shwartsman [sshwarts at sourceforge net]
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2 of the License, or (at your option) any later version.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA B 02110-1301 USA
+//
+/////////////////////////////////////////////////////////////////////////
+
+#ifndef BX_SKYLAKE_X_CPUID_DEFINITIONS_H
+#define BX_SKYLAKE_X_CPUID_DEFINITIONS_H
+
+#if BX_SUPPORT_X86_64 && BX_SUPPORT_AVX && BX_SUPPORT_EVEX
+
+#include "cpu/cpuid.h"
+
+class corei7_skylake_x_t : public bx_cpuid_t {
+public:
+  corei7_skylake_x_t(BX_CPU_C *cpu);
+  virtual ~corei7_skylake_x_t() {}
+
+  // return CPU name
+  virtual const char *get_name(void) const { return "corei7_skylake_x"; }
+
+#if BX_SUPPORT_VMX >= 2
+  virtual Bit32u get_vmx_extensions_bitmask(void) const;
+#endif
+
+  virtual void get_cpuid_leaf(Bit32u function, Bit32u subfunction, cpuid_function_t \
*leaf) const; +
+  virtual void dump_cpuid(void) const;
+
+private:
+  void get_std_cpuid_leaf_0(cpuid_function_t *leaf) const;
+  void get_std_cpuid_leaf_1(cpuid_function_t *leaf) const;
+  void get_std_cpuid_leaf_2(cpuid_function_t *leaf) const;
+  void get_std_cpuid_leaf_4(Bit32u subfunction, cpuid_function_t *leaf) const;
+  void get_std_cpuid_leaf_5(cpuid_function_t *leaf) const;
+  void get_std_cpuid_leaf_6(cpuid_function_t *leaf) const;
+  void get_std_cpuid_leaf_7(Bit32u subfunction, cpuid_function_t *leaf) const;
+  void get_std_cpuid_leaf_A(cpuid_function_t *leaf) const;
+  void get_std_cpuid_leaf_15(cpuid_function_t *leaf) const;
+  void get_std_cpuid_leaf_16(cpuid_function_t *leaf) const;
+
+  void get_ext_cpuid_leaf_0(cpuid_function_t *leaf) const;
+  void get_ext_cpuid_leaf_1(cpuid_function_t *leaf) const;
+  void get_ext_cpuid_leaf_6(cpuid_function_t *leaf) const;
+  void get_ext_cpuid_leaf_7(cpuid_function_t *leaf) const;
+};
+
+extern bx_cpuid_t *create_corei7_skylake_x_cpuid(BX_CPU_C *cpu);
+
+#endif // BX_SUPPORT_X86_64 && BX_SUPPORT_AVX
+
+#endif


Property changes on: trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.h
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.txt
===================================================================
--- trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.txt	                        (rev 0)
+++ trunk/bochs/cpu/cpudb/intel/corei7_skylake-x.txt	2017-08-09 20:36:17 UTC (rev \
13271) @@ -0,0 +1,860 @@
+------[ Versions ]------
+
+Program Version : AIDA64 Engineer v5.92.4329 Beta
+BenchDLL Version: 4.3.759-x64
+Windows Version : Microsoft Windows 10 Pro 10.0.15063.502 (64-bit)
+
+------[ CPU Info ]------
+
+CPU Type          : HexaCore Intel Core i7-7800X, 3500 MHz (35 x 100)
+CPU Alias         : Skylake-X
+CPU Platform      : LGA2066
+CPU Stepping      : U0
+Instruction Set   : x86, x86-64, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, \
AVX2, AVX-512, FMA, AES +CPUID Manufacturer: GenuineIntel
+CPUID CPU Name    : Intel(R) Core(TM) i7-7800X CPU @ 3.50GHz
+CPUID Revision    : 00050654h
+IA Brand ID       : 00h  (Unknown)
+Platform ID       : 4Fh  (LGA2066)
+HTT / CMP Units   : 2 / 6
+Max. NUMA Node    : 0
+
+Tjmax Temperature          : 100 Celsius
+HTC Temperature Limit      : 0 Celsius
+CPU TDP                    : 122 W
+DRAM TDP                   : 19.5 W
+CPU TDC                    : 1023 A
+CPU Max Power Limit        : 308 W / Unlimited Time
+CPU Power Limit 1 (Long)   : 3408.3 W / 8.00 sec  (Unlocked)
+CPU Power Limit 2 (Short)  : 4090 W / 2.44 ms  (Unlocked)
+Max Turbo Boost Multipliers: 2C: 40x, 4C: 40x, 6C: 40x
+
+------[ Motherboard Info ]------
+
+Motherboard ID      : <DMI>
+Motherboard Model   : Gigabyte GA-X299 UD4
+Motherboard Chipset : Intel Union Point X299, Intel Skylake-X
+
+DMI MB Manufacturer : Gigabyte Technology Co., Ltd.
+DMI MB Product      : X299 UD4-CF
+DMI MB Version      : x.x
+DMI MB Serial       : Default string
+DMI SYS Manufacturer: Gigabyte Technology Co., Ltd.
+DMI SYS Product     : X299 UD4
+DMI SYS Version     : Default string
+DMI SYS Serial      : Default string
+DMI BIOS Version    : F4d
+
+
+------[ Logical CPU #0 ]------
+
+allcpu: Package 0 / Core 0 / Thread 0: Valid
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-00100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-00000000 [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-00000000 [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #1 ]------
+
+allcpu: Package 0 / Core 0 / Thread 1: Valid, Virtual
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-01100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-00000001 [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-00000001 [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #2 ]------
+
+allcpu: Package 0 / Core 1 / Thread 0: Valid
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-02100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-00000002 [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-00000002 [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #3 ]------
+
+allcpu: Package 0 / Core 1 / Thread 1: Valid, Virtual
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-03100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-00000003 [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-00000003 [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #4 ]------
+
+allcpu: Package 0 / Core 2 / Thread 0: Valid
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-04100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-00000004 [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-00000004 [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #5 ]------
+
+allcpu: Package 0 / Core 2 / Thread 1: Valid, Virtual
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-05100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-00000005 [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-00000005 [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #6 ]------
+
+allcpu: Package 0 / Core 3 / Thread 0: Valid
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-06100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-00000006 [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-00000006 [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #7 ]------
+
+allcpu: Package 0 / Core 3 / Thread 1: Valid, Virtual
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-07100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-00000007 [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-00000007 [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #8 ]------
+
+allcpu: Package 0 / Core 4 / Thread 0: Valid
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-08100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-00000008 [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-00000008 [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #9 ]------
+
+allcpu: Package 0 / Core 4 / Thread 1: Valid, Virtual
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-09100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-00000009 [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-00000009 [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #10 ]------
+
+allcpu: Package 0 / Core 5 / Thread 0: Valid
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-0A100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-0000000A [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-0000000A [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ Logical CPU #11 ]------
+
+allcpu: Package 0 / Core 5 / Thread 1: Valid, Virtual
+
+CPUID 00000000: 00000016-756E6547-6C65746E-49656E69 [GenuineIntel]
+CPUID 00000001: 00050654-0B100800-7FFEFBBF-BFEBFBFF
+CPUID 00000002: 76036301-00F0B5FF-00000000-00C30000
+CPUID 00000003: 00000000-00000000-00000000-00000000
+CPUID 00000004: 1C004121-01C0003F-0000003F-00000000 [SL 00]
+CPUID 00000004: 1C004122-01C0003F-0000003F-00000000 [SL 01]
+CPUID 00000004: 1C004143-03C0003F-000003FF-00000000 [SL 02]
+CPUID 00000004: 1C03C163-0280003F-00002FFF-00000004 [SL 03]
+CPUID 00000005: 00000040-00000040-00000003-00002020
+CPUID 00000006: 00000075-00000002-00000009-00000000
+CPUID 00000007: 00000000-D39FFFFB-00000000-00000000
+CPUID 00000008: 00000000-00000000-00000000-00000000
+CPUID 00000009: 00000000-00000000-00000000-00000000
+CPUID 0000000A: 07300404-00000000-00000000-00000603
+CPUID 0000000B: 00000001-00000002-00000100-0000000B [SL 00]
+CPUID 0000000B: 00000004-0000000C-00000201-0000000B [SL 01]
+CPUID 0000000C: 00000000-00000000-00000000-00000000
+CPUID 0000000D: 000000FF-00000A80-00000A80-00000000 [SL 00]
+CPUID 0000000D: 0000000F-00000A00-00000100-00000000 [SL 01]
+CPUID 0000000D: 00000100-00000240-00000000-00000000 [SL 02]
+CPUID 0000000D: 00000040-000003C0-00000000-00000000 [SL 03]
+CPUID 0000000D: 00000040-00000400-00000000-00000000 [SL 04]
+CPUID 0000000D: 00000040-00000440-00000000-00000000 [SL 05]
+CPUID 0000000D: 00000200-00000480-00000000-00000000 [SL 06]
+CPUID 0000000D: 00000400-00000680-00000000-00000000 [SL 07]
+CPUID 0000000D: 00000080-00000000-00000001-00000000 [SL 08]
+CPUID 0000000E: 00000000-00000000-00000000-00000000
+CPUID 0000000F: 00000000-0000002F-00000000-00000002 [SL 00]
+CPUID 0000000F: 00000000-00006000-0000002F-00000007 [SL 01]
+CPUID 00000010: 00000000-0000000A-00000000-00000000 [SL 00]
+CPUID 00000010: 0000000A-00000600-00000004-0000000F [SL 01]
+CPUID 00000011: 00000000-00000000-00000000-00000000
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 00]
+CPUID 00000012: 00000000-00000000-00000000-00000000 [SL 01]
+CPUID 00000013: 00000000-00000000-00000000-00000000
+CPUID 00000014: 00000001-0000000F-00000007-00000000 [SL 00]
+CPUID 00000014: 02490002-003F3FFF-00000000-00000000 [SL 01]
+CPUID 00000015: 00000002-00000124-00000000-00000000 [146.00x / 0]
+CPUID 00000016: 00000DAC-00000FA0-00000064-00000000 [3500 / 4000 / 100]
+CPUID 80000000: 80000008-00000000-00000000-00000000
+CPUID 80000001: 00000000-00000000-00000121-2C100000
+CPUID 80000002: 65746E49-2952286C-726F4320-4D542865 [Intel(R) Core(TM]
+CPUID 80000003: 37692029-3038372D-43205830-40205550 [) i7-7800X CPU @]
+CPUID 80000004: 352E3320-7A484730-00000000-00000000 [ 3.50GHz]
+CPUID 80000005: 00000000-00000000-00000000-00000000
+CPUID 80000006: 00000000-00000000-01006040-00000000
+CPUID 80000007: 00000000-00000000-00000000-00000100
+CPUID 80000008: 0000302E-00000000-00000000-00000000
+
+L1    Data Cache:    32 KB,  8-way Associative, 64-byte Line
+L1  Instr. Cache:    32 KB,  8-way Associative, 64-byte Line
+L2 Unified Cache:     1 MB, 16-way Associative, 64-byte Line
+L3 Unified Cache:  8448 KB, 11-way Associative, 64-byte Line
+
+------[ All CPUs ]------
+
+CPU   0: APICID    0 / Package 0 / Core   0 / Thread 0: Valid
+CPU   1: APICID    1 / Package 0 / Core   0 / Thread 1: Valid, Virtual
+CPU   2: APICID    2 / Package 0 / Core   1 / Thread 0: Valid
+CPU   3: APICID    3 / Package 0 / Core   1 / Thread 1: Valid, Virtual
+CPU   4: APICID    4 / Package 0 / Core   2 / Thread 0: Valid
+CPU   5: APICID    5 / Package 0 / Core   2 / Thread 1: Valid, Virtual
+CPU   6: APICID    6 / Package 0 / Core   3 / Thread 0: Valid
+CPU   7: APICID    7 / Package 0 / Core   3 / Thread 1: Valid, Virtual
+CPU   8: APICID    8 / Package 0 / Core   4 / Thread 0: Valid
+CPU   9: APICID    9 / Package 0 / Core   4 / Thread 1: Valid, Virtual
+CPU  10: APICID   10 / Package 0 / Core   5 / Thread 0: Valid
+CPU  11: APICID   11 / Package 0 / Core   5 / Thread 1: Valid, Virtual
+
+------[ MSR Registers ]------
+
+MSR 00000017: 0008-0000-0000-0000 [PlatID = 2]
+MSR 0000001B: 0000-0000-FEE0-0900
+MSR 00000035: 0000-0000-0006-000C
+MSR 0000008B: 0200-0026-0000-0000
+MSR 000000CE: 0007-0C2C-F301-2300 [eD = 0]
+MSR 000000E7: 0000-02C5-E251-1A88 [S200]
+MSR 000000E7: 0000-02C5-E280-51D4 [S200]
+MSR 000000E7: 0000-02C5-E2A2-37F0
+MSR 000000E8: 0000-02C5-E29F-033C [S200]
+MSR 000000E8: 0000-02C5-E2C2-9235 [S200]
+MSR 000000E8: 0000-02C5-E2E5-8FCC
+MSR 00000194: 0000-0000-000E-0000
+MSR 00000198: 0000-1EE5-0000-2300 [S200]
+MSR 00000198: 0000-1EE9-0000-2300 [S200]
+MSR 00000198: 0000-1EE9-0000-2300
+MSR 00000199: 0000-0000-0000-2800
+MSR 0000019A: 0000-0000-0000-0000
+MSR 0000019B: 0000-0000-0000-0000
+MSR 0000019C: 0000-0000-883F-0000 [S200]
+MSR 0000019C: 0000-0000-883F-0000 [S200]
+MSR 0000019C: 0000-0000-883F-0000
+MSR 0000019D: 0000-0000-0000-0000
+MSR 000001A0: 0000-0040-0085-0089
+MSR 000001A2: 0000-0000-0064-0A00
+MSR 000001A4: 0000-0000-0000-0000
+MSR 000001AA: 0000-0000-0040-0001
+MSR 000001AC: < FAILED >
+MSR 000001AD: 2828-2828-2828-2828
+MSR 000001AE: 1C18-1410-0C06-0402
+MSR 000001AF: < FAILED >
+MSR 000001B0: 0000-0000-0000-0000
+MSR 000001B1: 0000-0000-883F-0000
+MSR 000001B2: 0000-0000-0000-0000
+MSR 000001FC: 0000-0000-213C-0059
+MSR 00000300: 8000-0000-B264-1600
+MSR 0000030A: 0000-0000-0325-C85D [S200]
+MSR 0000030A: 0000-0000-0325-C85D [S200]
+MSR 0000030A: 0000-0000-0325-C85D
+MSR 0000030B: 0000-0000-0326-B226 [S200]
+MSR 0000030B: 0000-0000-0326-B226 [S200]
+MSR 0000030B: 0000-0000-0326-B226
+MSR 00000480: 00DA-0400-0000-0004
+MSR 00000481: 0000-00FF-0000-0016
+MSR 00000482: FFF9-FFFE-0401-E172
+MSR 00000483: 01FF-FFFF-0003-6DFF
+MSR 00000484: 0003-FFFF-0000-11FF
+MSR 00000485: 0000-0000-7004-C1E7
+MSR 00000486: 0000-0000-8000-0021
+MSR 00000487: 0000-0000-FFFF-FFFF
+MSR 00000488: 0000-0000-0000-2000
+MSR 00000489: 0000-0000-0037-27FF
+MSR 0000048A: 0000-0000-0000-002E
+MSR 0000048B: 025D-3FFF-0000-0000
+MSR 0000048C: 0000-0F01-0673-4141
+MSR 0000048D: 0000-00FF-0000-0016
+MSR 0000048E: FFF9-FFFE-0400-6172
+MSR 0000048F: 01FF-FFFF-0003-6DFB
+MSR 00000490: 0003-FFFF-0000-11FB
+MSR 00000601: 0000-0000-0000-1FF8
+MSR 00000602: < FAILED >
+MSR 00000603: 0016-0000-0017-1717
+MSR 00000604: < FAILED >
+MSR 00000606: 0000-0000-000A-0E03
+MSR 0000060A: 0000-0000-0000-0000
+MSR 0000060B: 0000-0000-0000-0000
+MSR 0000060C: 0000-0000-0000-0000
+MSR 0000060D: 0000-0000-0000-0000
+MSR 00000610: 0043-FFD0-001A-EA82
+MSR 00000611: 0000-0000-B957-FD27 [S200]
+MSR 00000611: 0000-0000-B95A-1DDB [S200]
+MSR 00000611: 0000-0000-B95C-40C7
+MSR 00000613: 0000-0000-0000-0000
+MSR 00000614: 0000-09A0-0168-03D0
+MSR 00000618: 0000-0000-0000-0000
+MSR 00000619: 0000-0000-0E08-40E2 [S200]
+MSR 00000619: 0000-0000-0E08-4939 [S200]
+MSR 00000619: 0000-0000-0E08-52B5
+MSR 0000061B: 0000-0000-0000-0000
+MSR 0000061C: 000F-00A4-0010-009C
+MSR 0000061E: 0000-0000-0000-0000
+MSR 00000620: 0000-0000-0000-0818
+MSR 00000621: 0000-0000-0000-0018
+MSR 00000638: 0000-0000-0000-0000
+MSR 00000639: 0000-0000-0000-0000 [S200]
+MSR 00000639: 0000-0000-0000-0000 [S200]
+MSR 00000639: 0000-0000-0000-0000
+MSR 0000063A: < FAILED >
+MSR 0000063B: < FAILED >
+MSR 00000640: < FAILED >
+MSR 00000641: < FAILED >
+MSR 00000642: < FAILED >
+MSR 00000648: 0000-0000-0000-0023
+MSR 00000649: 00B4-0000-001E-0460
+MSR 0000064A: 00B4-0000-001E-0460
+MSR 0000064B: 0000-0000-0000-0000
+MSR 0000064C: 0000-0000-0000-0000
+MSR 00000690: 0000-0000-0000-0000
+MSR 000006B0: < FAILED >
+MSR 000006B1: 0000-0000-0000-0000

Modified: trunk/bochs/cpu/cpuid.h
===================================================================
--- trunk/bochs/cpu/cpuid.h	2017-08-09 15:42:34 UTC (rev 13270)
+++ trunk/bochs/cpu/cpuid.h	2017-08-09 20:36:17 UTC (rev 13271)
@@ -140,30 +140,31 @@
 typedef bx_cpuid_t* (*bx_create_cpuid_method)(BX_CPU_C *cpu);
 
 // cpuid VMX features
-#define BX_VMX_TPR_SHADOW            (1 <<  0)              /* TPR shadow */
-#define BX_VMX_VIRTUAL_NMI           (1 <<  1)              /* Virtual NMI */
-#define BX_VMX_APIC_VIRTUALIZATION   (1 <<  2)              /* APIC Access \
                Virtualization */
-#define BX_VMX_WBINVD_VMEXIT         (1 <<  3)              /* WBINVD VMEXIT */
-#define BX_VMX_PERF_GLOBAL_CTRL      (1 <<  4)              /* Save/Restore \
                MSR_PERF_GLOBAL_CTRL */
-#define BX_VMX_MONITOR_TRAP_FLAG     (1 <<  5)              /* Monitor trap Flag \
                (MTF) */
-#define BX_VMX_X2APIC_VIRTUALIZATION (1 <<  6)              /* Virtualize X2APIC */
-#define BX_VMX_EPT                   (1 <<  7)              /* Extended Page Tables \
                (EPT) */
-#define BX_VMX_VPID                  (1 <<  8)              /* VPID */
-#define BX_VMX_UNRESTRICTED_GUEST    (1 <<  9)              /* Unrestricted Guest */
-#define BX_VMX_PREEMPTION_TIMER      (1 << 10)              /* VMX preemption timer \
                */
-#define BX_VMX_SAVE_DEBUGCTL_DISABLE (1 << 11)              /* Disable Save/Restore \
                of MSR_DEBUGCTL */
-#define BX_VMX_PAT                   (1 << 12)              /* Save/Restore MSR_PAT \
                */
-#define BX_VMX_EFER                  (1 << 13)              /* Save/Restore MSR_EFER \
                */
-#define BX_VMX_DESCRIPTOR_TABLE_EXIT (1 << 14)              /* Descriptor Table \
                VMEXIT */
-#define BX_VMX_PAUSE_LOOP_EXITING    (1 << 15)              /* Pause Loop Exiting */
-#define BX_VMX_EPTP_SWITCHING        (1 << 16)              /* EPTP switching (VM \
                Function 0) */
-#define BX_VMX_EPT_ACCESS_DIRTY      (1 << 17)              /* Extended Page Tables \
                (EPT) A/D Bits */
-#define BX_VMX_VINTR_DELIVERY        (1 << 18)              /* Virtual Interrupt \
                Delivery */
-#define BX_VMX_POSTED_INSTERRUPTS    (1 << 19)              /* Posted Interrupts \
                support - not implemented yet */
-#define BX_VMX_VMCS_SHADOWING        (1 << 20)              /* VMCS Shadowing */
-#define BX_VMX_EPT_EXCEPTION         (1 << 21)              /* EPT Violation (#VE) \
                exception */
-#define BX_VMX_PML                   (1 << 22)              /* Page Modification \
                Logging - not implemented yet */
-#define BX_VMX_TSC_SCALING           (1 << 23)              /* TSC Scaling */
+#define BX_VMX_TPR_SHADOW                       (1 <<  0)   /* TPR shadow */
+#define BX_VMX_VIRTUAL_NMI                      (1 <<  1)   /* Virtual NMI */
+#define BX_VMX_APIC_VIRTUALIZATION              (1 <<  2)   /* APIC Access \
Virtualization */ +#define BX_VMX_WBINVD_VMEXIT                    (1 <<  3)   /* \
WBINVD VMEXIT */ +#define BX_VMX_PERF_GLOBAL_CTRL                 (1 <<  4)   /* \
Save/Restore MSR_PERF_GLOBAL_CTRL */ +#define BX_VMX_MONITOR_TRAP_FLAG                \
(1 <<  5)   /* Monitor trap Flag (MTF) */ +#define BX_VMX_X2APIC_VIRTUALIZATION       \
(1 <<  6)   /* Virtualize X2APIC */ +#define BX_VMX_EPT                              \
(1 <<  7)   /* Extended Page Tables (EPT) */ +#define BX_VMX_VPID                     \
(1 <<  8)   /* VPID */ +#define BX_VMX_UNRESTRICTED_GUEST               (1 <<  9)   \
/* Unrestricted Guest */ +#define BX_VMX_PREEMPTION_TIMER                 (1 << 10)   \
/* VMX preemption timer */ +#define BX_VMX_SAVE_DEBUGCTL_DISABLE            (1 << 11) \
/* Disable Save/Restore of MSR_DEBUGCTL */ +#define BX_VMX_PAT                        \
(1 << 12)   /* Save/Restore MSR_PAT */ +#define BX_VMX_EFER                           \
(1 << 13)   /* Save/Restore MSR_EFER */ +#define BX_VMX_DESCRIPTOR_TABLE_EXIT         \
(1 << 14)   /* Descriptor Table VMEXIT */ +#define BX_VMX_PAUSE_LOOP_EXITING          \
(1 << 15)   /* Pause Loop Exiting */ +#define BX_VMX_EPTP_SWITCHING                   \
(1 << 16)   /* EPTP switching (VM Function 0) */ +#define BX_VMX_EPT_ACCESS_DIRTY     \
(1 << 17)   /* Extended Page Tables (EPT) A/D Bits */ +#define BX_VMX_VINTR_DELIVERY  \
(1 << 18)   /* Virtual Interrupt Delivery */ +#define BX_VMX_POSTED_INSTERRUPTS       \
(1 << 19)   /* Posted Interrupts support - not implemented yet */ +#define \
BX_VMX_VMCS_SHADOWING                   (1 << 20)   /* VMCS Shadowing */ +#define \
BX_VMX_EPT_EXCEPTION                    (1 << 21)   /* EPT Violation (#VE) exception \
*/ +#define BX_VMX_PML                              (1 << 22)   /* Page Modification \
Logging - not implemented yet */ +#define BX_VMX_TSC_SCALING                      (1 \
<< 23)   /* TSC Scaling */ +#define BX_VMX_SW_INTERRUPT_INJECTION_ILEN_0  	(1 << 24)  \
/* Allow software interrupt injection with instruction length 0 */  
 // CPUID defines - STD features CPUID[0x00000001].EDX
 // ----------------------------
@@ -312,7 +313,7 @@
 //   [3:3]    BMI1: Advanced Bit Manipulation Extensions
 //   [4:4]    HLE: Hardware Lock Elision
 //   [5:5]    AVX2
-//   [6:6]    reserved
+//   [6:6]    FDP Deprecation
 //   [7:7]    SMEP: Supervisor Mode Execution Protection
 //   [8:8]    BMI2: Advanced Bit Manipulation Extensions
 //   [9:9]    Support for Enhanced REP MOVSB/STOSB

Modified: trunk/bochs/cpu/vmcs.cc
===================================================================
--- trunk/bochs/cpu/vmcs.cc	2017-08-09 15:42:34 UTC (rev 13270)
+++ trunk/bochs/cpu/vmcs.cc	2017-08-09 20:36:17 UTC (rev 13271)
@@ -744,6 +744,7 @@
   // [17] - EPT 1G pages support
   // [20] - INVEPT instruction supported
   // [21] - EPT A/D bits supported
+  // [22] - advanced VM-exit information for EPT violations (not implemented yet)
   // [25] - INVEPT single-context invalidation supported
   // [26] - INVEPT all-context invalidation supported
   // [32] - INVVPID instruction supported

Modified: trunk/bochs/cpu/vmx.cc
===================================================================
--- trunk/bochs/cpu/vmx.cc	2017-08-09 15:42:34 UTC (rev 13270)
+++ trunk/bochs/cpu/vmx.cc	2017-08-09 20:36:17 UTC (rev 13271)
@@ -949,7 +949,9 @@
        case BX_SOFTWARE_INTERRUPT:
        case BX_PRIVILEGED_SOFTWARE_INTERRUPT:
        case BX_SOFTWARE_EXCEPTION:
-         if (vm->vmentry_instr_length == 0 || vm->vmentry_instr_length > 15) {
+         if ((vm->vmentry_instr_length == 0 && \
!BX_SUPPORT_VMX_EXTENSION(BX_VMX_SW_INTERRUPT_INJECTION_ILEN_0)) ||  +              \
vm->vmentry_instr_length > 15) +         {
            BX_ERROR(("VMFAIL: VMENTRY bad injected event instr length"));
            return VMXERR_VMENTRY_INVALID_VM_CONTROL_FIELD;
          }

Modified: trunk/bochs/cpu/vmx.h
===================================================================
--- trunk/bochs/cpu/vmx.h	2017-08-09 15:42:34 UTC (rev 13270)
+++ trunk/bochs/cpu/vmx.h	2017-08-09 20:36:17 UTC (rev 13271)
@@ -695,6 +695,7 @@
 #define VMX_VM_EXEC_CTRL3_EPT_VIOLATION_EXCEPTION   (1 << 18) /* #VE Exception */
 #define VMX_VM_EXEC_CTRL3_SUPPRESS_GUEST_VMX_TRACE  (1 << 19) /* Processor Trace */
 #define VMX_VM_EXEC_CTRL3_XSAVES_XRSTORS            (1 << 20) /* XSAVES */
+#define VMX_VM_EXEC_CTRL3_MBE_CTRL                  (1 << 22) /* Mode Based \
Execution Control (not implemented yet) */  #define VMX_VM_EXEC_CTRL3_TSC_SCALING     \
(1 << 25) /* TSC Scaling */  
 #define VMX_VM_EXEC_CTRL3_SUPPORTED_BITS \
@@ -1017,33 +1018,38 @@
 //     [6] - support VMENTER to HLT state
 //     [7] - support VMENTER to SHUTDOWN state
 //     [8] - support VMENTER to WAIT_FOR_SIPI state
+//    [14] - Intel Processor Trace (Intel PT) can be used in VMX operation
 //    [15] - RDMSR can be used in SMM to read the SMBASE MSR
 // [24:16] - number of CR3 target values supported
 // [27:25] - (N+1)*512 - recommended maximum MSRs in MSR store list
 //    [28] - MSR_IA32_SMM_MONITOR_CTL[2] enable
 //    [29] - Allow VMWRITE to R/O VMCS fields (to be used with VMCS Shadowing)
-// [31-30] - Reserved
+//    [30] - Allow injection of a software interrupt, software exception, or \
privileged +//           software exception with an instruction length of 0
+//    [31] - Reserved
 // --------------------------------------------
 // [63:32] - MSEG revision ID used by processor
 
 #if BX_SUPPORT_VMX >= 2
-  #define VMX_MISC_STORE_LMA_TO_X86_64_GUEST_VMENTRY_CONTROL (1<<5)
+const Bit32u VMX_MISC_STORE_LMA_TO_X86_64_GUEST_VMENTRY_CONTROL = (1<<5);
 #else
-  #define VMX_MISC_STORE_LMA_TO_X86_64_GUEST_VMENTRY_CONTROL (0)
+const Bit32u VMX_MISC_STORE_LMA_TO_X86_64_GUEST_VMENTRY_CONTROL = 0;
 #endif
 
-#define VMX_SUPPORT_VMENTER_TO_NON_ACTIVE_STATE ((1<<6) | (1<<7) | (1<<8))
+const Bit32u VMX_SUPPORT_VMENTER_TO_NON_ACTIVE_STATE = (1<<6) | (1<<7) | (1<<8);
 
-#define VMX_MISC_SUPPORT_VMWRITE_READ_ONLY_FIELDS (1<<29)
+const Bit32u VMX_MISC_SUPPORT_VMWRITE_READ_ONLY_FIELDS            = (1<<29);
+const Bit32u VMX_MISC_ALLOW_INJECTION_OF_SW_INTERRUPT_WITH_ILEN_0 = (1<<30);
 
 //Rate to increase VMX preemtion timer
-#define VMX_MISC_PREEMPTION_TIMER_RATE (0)
+const Bit32u VMX_MISC_PREEMPTION_TIMER_RATE = 0;
 
 #define VMX_MSR_MISC (VMX_MISC_PREEMPTION_TIMER_RATE | \
                       VMX_MISC_STORE_LMA_TO_X86_64_GUEST_VMENTRY_CONTROL | \
                       VMX_SUPPORT_VMENTER_TO_NON_ACTIVE_STATE | \
                      (VMX_CR3_TARGET_MAX_CNT << 16) | \
-                     (BX_SUPPORT_VMX_EXTENSION(BX_VMX_VMCS_SHADOWING) ? \
VMX_MISC_SUPPORT_VMWRITE_READ_ONLY_FIELDS : 0)) +                     \
(BX_SUPPORT_VMX_EXTENSION(BX_VMX_VMCS_SHADOWING) ? \
VMX_MISC_SUPPORT_VMWRITE_READ_ONLY_FIELDS : 0) | \ +                     \
(BX_SUPPORT_VMX_EXTENSION(BX_VMX_SW_INTERRUPT_INJECTION_ILEN_0) ? \
VMX_MISC_ALLOW_INJECTION_OF_SW_INTERRUPT_WITH_ILEN_0 : 0))  
 //
 // IA32_VMX_CR0_FIXED0 MSR (0x486)   IA32_VMX_CR0_FIXED1 MSR (0x487)

Modified: trunk/bochs/cpudb.h
===================================================================
--- trunk/bochs/cpudb.h	2017-08-09 15:42:34 UTC (rev 13270)
+++ trunk/bochs/cpudb.h	2017-08-09 20:36:17 UTC (rev 13271)
@@ -49,7 +49,10 @@
 bx_define_cpudb(corei7_ivy_bridge_3770k)
 bx_define_cpudb(corei7_haswell_4770)
 bx_define_cpudb(broadwell_ult)
+#if BX_SUPPORT_AVX
+bx_define_cpudb(corei7_skylake_x)
 #endif
 #endif
 #endif
 #endif
+#endif


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Bochs-cvs mailing list
Bochs-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bochs-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic