Do not merge this commit.
This commit contains the changes that would be suggested by the
cpu_map sync script (see last commit):
./sync_qemu_i386.py ~/git/qemu/target/i386/cpu.c .
Note:
* Some models have "signature" / "vendor" added.
* Models with multiple "signature"s lose all but one.
* Comments are not preserved.
* "stepping" in "signature" is not preseved.
* "decode" is just flat on + on.
* New models: denverton, knightsmill, snowridge
---
src/cpu_map/x86_486.xml | 8 ++
src/cpu_map/x86_Broadwell-IBRS.xml | 19 ++++-
src/cpu_map/x86_Broadwell-noTSX-IBRS.xml | 19 ++++-
src/cpu_map/x86_Broadwell-noTSX.xml | 19 ++++-
src/cpu_map/x86_Broadwell.xml | 18 ++++-
src/cpu_map/x86_Cascadelake-Server-noTSX.xml | 20 ++++-
src/cpu_map/x86_Cascadelake-Server.xml | 17 +++-
src/cpu_map/x86_Conroe.xml | 10 ++-
src/cpu_map/x86_Cooperlake.xml | 8 +-
src/cpu_map/x86_Denverton.xml | 74 +++++++++++++++++
src/cpu_map/x86_Dhyana.xml | 12 ++-
src/cpu_map/x86_EPYC-IBPB.xml | 19 ++++-
src/cpu_map/x86_EPYC-Rome.xml | 9 +++
src/cpu_map/x86_EPYC.xml | 14 +++-
src/cpu_map/x86_Haswell-IBRS.xml | 20 ++++-
src/cpu_map/x86_Haswell-noTSX-IBRS.xml | 20 ++++-
src/cpu_map/x86_Haswell-noTSX.xml | 20 ++++-
src/cpu_map/x86_Haswell.xml | 18 ++++-
src/cpu_map/x86_Icelake-Client-noTSX.xml | 14 +++-
src/cpu_map/x86_Icelake-Client.xml | 11 ++-
src/cpu_map/x86_Icelake-Server-noTSX.xml | 29 ++++++-
src/cpu_map/x86_Icelake-Server.xml | 11 ++-
src/cpu_map/x86_IvyBridge-IBRS.xml | 13 ++-
src/cpu_map/x86_IvyBridge.xml | 12 ++-
src/cpu_map/x86_KnightsMill.xml | 77 ++++++++++++++++++
src/cpu_map/x86_Nehalem-IBRS.xml | 14 +++-
src/cpu_map/x86_Nehalem.xml | 13 ++-
src/cpu_map/x86_Opteron_G1.xml | 9 ++-
src/cpu_map/x86_Opteron_G2.xml | 10 ++-
src/cpu_map/x86_Opteron_G3.xml | 10 ++-
src/cpu_map/x86_Opteron_G4.xml | 11 ++-
src/cpu_map/x86_Opteron_G5.xml | 11 ++-
src/cpu_map/x86_Penryn.xml | 10 ++-
src/cpu_map/x86_SandyBridge-IBRS.xml | 14 +++-
src/cpu_map/x86_SandyBridge.xml | 13 ++-
src/cpu_map/x86_Skylake-Client-IBRS.xml | 16 ++--
src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml | 18 +++--
src/cpu_map/x86_Skylake-Client.xml | 15 ++--
src/cpu_map/x86_Skylake-Server-IBRS.xml | 12 ++-
src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml | 15 +++-
src/cpu_map/x86_Skylake-Server.xml | 12 ++-
src/cpu_map/x86_Snowridge.xml | 79 +++++++++++++++++++
src/cpu_map/x86_Westmere-IBRS.xml | 13 ++-
src/cpu_map/x86_Westmere.xml | 14 +++-
src/cpu_map/x86_athlon.xml | 8 ++
src/cpu_map/x86_core2duo.xml | 12 ++-
src/cpu_map/x86_coreduo.xml | 10 ++-
src/cpu_map/x86_kvm32.xml | 9 +++
src/cpu_map/x86_kvm64.xml | 9 +++
src/cpu_map/x86_n270.xml | 12 ++-
src/cpu_map/x86_pentium.xml | 9 +++
src/cpu_map/x86_pentium2.xml | 9 +++
src/cpu_map/x86_pentium3.xml | 9 +++
src/cpu_map/x86_phenom.xml | 17 +++-
src/cpu_map/x86_qemu32.xml | 8 ++
src/cpu_map/x86_qemu64.xml | 17 ++--
56 files changed, 819 insertions(+), 130 deletions(-)
create mode 100644 src/cpu_map/x86_Denverton.xml
create mode 100644 src/cpu_map/x86_KnightsMill.xml
create mode 100644 src/cpu_map/x86_Snowridge.xml
diff --git a/src/cpu_map/x86_486.xml b/src/cpu_map/x86_486.xml
index d05b277392..ff68909012 100644
--- a/src/cpu_map/x86_486.xml
+++ b/src/cpu_map/x86_486.xml
@@ -1,6 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '1'
+ 'model.stepping': '0'
+ 'model.xlevel': '0'
+ 'model.model_id': ''
+-->
<cpus>
<model name='486'>
<decode host='on' guest='on'/>
+ <signature family='4' model='8'/>
+ <vendor name='Intel'/>
<feature name='fpu'/>
<feature name='pse'/>
<feature name='vme'/>
diff --git a/src/cpu_map/x86_Broadwell-IBRS.xml b/src/cpu_map/x86_Broadwell-IBRS.xml
index 9033d5fcd5..ce7df8183c 100644
--- a/src/cpu_map/x86_Broadwell-IBRS.xml
+++ b/src/cpu_map/x86_Broadwell-IBRS.xml
@@ -1,15 +1,22 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '2'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Broadwell)'
+ 'version.version': '3'
+ 'property.model-id': 'Intel Core Processor (Broadwell, IBRS)'
+-->
<cpus>
<model name='Broadwell-IBRS'>
<decode host='on' guest='on'/>
- <signature family='6' model='61'/> <!-- 0306d0 -->
- <signature family='6' model='71'/> <!-- 040670 -->
- <signature family='6' model='79'/> <!-- 0406f0 -->
- <signature family='6' model='86'/> <!-- 050660 -->
+ <signature family='6' model='61'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
+ <feature name='abm'/>
<feature name='adx'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='bmi1'/>
@@ -20,6 +27,7 @@
<feature name='cx8'/>
<feature name='de'/>
<feature name='erms'/>
+ <feature name='f16c'/>
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
@@ -44,6 +52,7 @@
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdrand'/>
<feature name='rdseed'/>
<feature name='rdtscp'/>
<feature name='rtm'/>
@@ -59,7 +68,9 @@
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
+ <feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Broadwell-noTSX-IBRS.xml
b/src/cpu_map/x86_Broadwell-noTSX-IBRS.xml
index c044b60e36..e88ca0979d 100644
--- a/src/cpu_map/x86_Broadwell-noTSX-IBRS.xml
+++ b/src/cpu_map/x86_Broadwell-noTSX-IBRS.xml
@@ -1,15 +1,22 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '2'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Broadwell)'
+ 'version.version': '4'
+ 'property.model-id': 'Intel Core Processor (Broadwell, no TSX, IBRS)'
+-->
<cpus>
<model name='Broadwell-noTSX-IBRS'>
<decode host='on' guest='on'/>
- <signature family='6' model='61'/> <!-- 0306d0 -->
- <signature family='6' model='71'/> <!-- 040670 -->
- <signature family='6' model='79'/> <!-- 0406f0 -->
- <signature family='6' model='86'/> <!-- 050660 -->
+ <signature family='6' model='61'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
+ <feature name='abm'/>
<feature name='adx'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='bmi1'/>
@@ -20,6 +27,7 @@
<feature name='cx8'/>
<feature name='de'/>
<feature name='erms'/>
+ <feature name='f16c'/>
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
@@ -43,6 +51,7 @@
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdrand'/>
<feature name='rdseed'/>
<feature name='rdtscp'/>
<feature name='sep'/>
@@ -57,7 +66,9 @@
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
+ <feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Broadwell-noTSX.xml b/src/cpu_map/x86_Broadwell-noTSX.xml
index 637f29ba1c..cc6f621467 100644
--- a/src/cpu_map/x86_Broadwell-noTSX.xml
+++ b/src/cpu_map/x86_Broadwell-noTSX.xml
@@ -1,15 +1,22 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '2'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Broadwell)'
+ 'version.version': '2'
+ 'property.model-id': 'Intel Core Processor (Broadwell, no TSX)'
+-->
<cpus>
<model name='Broadwell-noTSX'>
<decode host='on' guest='on'/>
- <signature family='6' model='61'/> <!-- 0306d0 -->
- <signature family='6' model='71'/> <!-- 040670 -->
- <signature family='6' model='79'/> <!-- 0406f0 -->
- <signature family='6' model='86'/> <!-- 050660 -->
+ <signature family='6' model='61'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
+ <feature name='abm'/>
<feature name='adx'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='bmi1'/>
@@ -20,6 +27,7 @@
<feature name='cx8'/>
<feature name='de'/>
<feature name='erms'/>
+ <feature name='f16c'/>
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
@@ -43,6 +51,7 @@
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdrand'/>
<feature name='rdseed'/>
<feature name='rdtscp'/>
<feature name='sep'/>
@@ -56,7 +65,9 @@
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
+ <feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Broadwell.xml b/src/cpu_map/x86_Broadwell.xml
index 82939a4509..d60ec31660 100644
--- a/src/cpu_map/x86_Broadwell.xml
+++ b/src/cpu_map/x86_Broadwell.xml
@@ -1,15 +1,21 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '2'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Broadwell)'
+ 'version.version': '1'
+-->
<cpus>
<model name='Broadwell'>
<decode host='on' guest='on'/>
- <signature family='6' model='61'/> <!-- 0306d0 -->
- <signature family='6' model='71'/> <!-- 040670 -->
- <signature family='6' model='79'/> <!-- 0406f0 -->
- <signature family='6' model='86'/> <!-- 050660 -->
+ <signature family='6' model='61'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
+ <feature name='abm'/>
<feature name='adx'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='bmi1'/>
@@ -20,6 +26,7 @@
<feature name='cx8'/>
<feature name='de'/>
<feature name='erms'/>
+ <feature name='f16c'/>
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
@@ -44,6 +51,7 @@
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdrand'/>
<feature name='rdseed'/>
<feature name='rdtscp'/>
<feature name='rtm'/>
@@ -58,7 +66,9 @@
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
+ <feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Cascadelake-Server-noTSX.xml
b/src/cpu_map/x86_Cascadelake-Server-noTSX.xml
index bfd4629836..cb2c4c204d 100644
--- a/src/cpu_map/x86_Cascadelake-Server-noTSX.xml
+++ b/src/cpu_map/x86_Cascadelake-Server-noTSX.xml
@@ -1,7 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '6'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon Processor (Cascadelake)'
+ 'version.version': '4'
+ 'version.note': 'ARCH_CAPABILITIES, no TSX'
+-->
<cpus>
<model name='Cascadelake-Server-noTSX'>
- <decode host='on' guest='off'/>
- <signature family='6' model='85' stepping='5-7'/>
<!-- 050654 -->
+ <decode host='on' guest='on'/>
+ <signature family='6' model='85'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -9,6 +17,7 @@
<feature name='aes'/>
<feature name='apic'/>
<feature name='arat'/>
+ <feature name='arch-capabilities'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='avx512bw'/>
@@ -32,14 +41,15 @@
<feature name='fpu'/>
<feature name='fsgsbase'/>
<feature name='fxsr'/>
+ <feature name='ibrs-all'/>
<feature name='invpcid'/>
<feature name='lahf_lm'/>
<feature name='lm'/>
<feature name='mca'/>
<feature name='mce'/>
+ <feature name='mds-no'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
@@ -49,14 +59,17 @@
<feature name='pclmuldq'/>
<feature name='pdpe1gb'/>
<feature name='pge'/>
+ <feature name='pku'/>
<feature name='pni'/>
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdctl-no'/>
<feature name='rdrand'/>
<feature name='rdseed'/>
<feature name='rdtscp'/>
<feature name='sep'/>
+ <feature name='skip-l1dfl-vmentry'/>
<feature name='smap'/>
<feature name='smep'/>
<feature name='spec-ctrl'/>
@@ -70,6 +83,7 @@
<feature name='tsc'/>
<feature name='tsc-deadline'/>
<feature name='vme'/>
+ <feature name='vmx-eptp-switching'/>
<feature name='x2apic'/>
<feature name='xgetbv1'/>
<feature name='xsave'/>
diff --git a/src/cpu_map/x86_Cascadelake-Server.xml
b/src/cpu_map/x86_Cascadelake-Server.xml
index 335e9cb584..a68a332700 100644
--- a/src/cpu_map/x86_Cascadelake-Server.xml
+++ b/src/cpu_map/x86_Cascadelake-Server.xml
@@ -1,7 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '6'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon Processor (Cascadelake)'
+ 'version.version': '2'
+ 'version.note': 'ARCH_CAPABILITIES'
+-->
<cpus>
<model name='Cascadelake-Server'>
<decode host='on' guest='on'/>
- <signature family='6' model='85' stepping='5-7'/>
<!-- 050654 -->
+ <signature family='6' model='85'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -9,6 +17,7 @@
<feature name='aes'/>
<feature name='apic'/>
<feature name='arat'/>
+ <feature name='arch-capabilities'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='avx512bw'/>
@@ -33,14 +42,15 @@
<feature name='fsgsbase'/>
<feature name='fxsr'/>
<feature name='hle'/>
+ <feature name='ibrs-all'/>
<feature name='invpcid'/>
<feature name='lahf_lm'/>
<feature name='lm'/>
<feature name='mca'/>
<feature name='mce'/>
+ <feature name='mds-no'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
@@ -50,15 +60,18 @@
<feature name='pclmuldq'/>
<feature name='pdpe1gb'/>
<feature name='pge'/>
+ <feature name='pku'/>
<feature name='pni'/>
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdctl-no'/>
<feature name='rdrand'/>
<feature name='rdseed'/>
<feature name='rdtscp'/>
<feature name='rtm'/>
<feature name='sep'/>
+ <feature name='skip-l1dfl-vmentry'/>
<feature name='smap'/>
<feature name='smep'/>
<feature name='spec-ctrl'/>
diff --git a/src/cpu_map/x86_Conroe.xml b/src/cpu_map/x86_Conroe.xml
index 4cacee6142..3484befbeb 100644
--- a/src/cpu_map/x86_Conroe.xml
+++ b/src/cpu_map/x86_Conroe.xml
@@ -1,8 +1,13 @@
+<!-- extra info from qemu:
+ 'model.level': '10'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Celeron_4x0 (Conroe/Merom Class Core 2)'
+-->
<cpus>
<model name='Conroe'>
<decode host='on' guest='on'/>
- <signature family='6' model='15'/> <!-- 0006f0 -->
- <signature family='6' model='22'/> <!-- 010660 -->
+ <signature family='6' model='15'/>
<vendor name='Intel'/>
<feature name='apic'/>
<feature name='clflush'/>
@@ -31,5 +36,6 @@
<feature name='ssse3'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Cooperlake.xml b/src/cpu_map/x86_Cooperlake.xml
index ceca687334..bb15c1f262 100644
--- a/src/cpu_map/x86_Cooperlake.xml
+++ b/src/cpu_map/x86_Cooperlake.xml
@@ -1,7 +1,13 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '10'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon Processor (Cooperlake)'
+-->
<cpus>
<model name='Cooperlake'>
<decode host='on' guest='on'/>
- <signature family='6' model='85' stepping='10-11'/>
<!-- 05065b -->
+ <signature family='6' model='85'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
diff --git a/src/cpu_map/x86_Denverton.xml b/src/cpu_map/x86_Denverton.xml
new file mode 100644
index 0000000000..c6337bc12a
--- /dev/null
+++ b/src/cpu_map/x86_Denverton.xml
@@ -0,0 +1,74 @@
+<!-- extra info from qemu:
+ 'model.level': '21'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Atom Processor (Denverton)'
+ 'version.version': '2'
+ 'property.monitor': 'off'
+ 'version.note': 'no MPX, no MONITOR'
+-->
+<cpus>
+ <model name='Denverton'>
+ <decode host='on' guest='on'/>
+ <signature family='6' model='95'/>
+ <vendor name='Intel'/>
+ <feature name='3dnowprefetch'/>
+ <feature name='aes'/>
+ <feature name='apic'/>
+ <feature name='arat'/>
+ <feature name='arch-capabilities'/>
+ <feature name='clflush'/>
+ <feature name='clflushopt'/>
+ <feature name='cmov'/>
+ <feature name='cx16'/>
+ <feature name='cx8'/>
+ <feature name='de'/>
+ <feature name='erms'/>
+ <feature name='fpu'/>
+ <feature name='fsgsbase'/>
+ <feature name='fxsr'/>
+ <feature name='lahf_lm'/>
+ <feature name='lm'/>
+ <feature name='mca'/>
+ <feature name='mce'/>
+ <feature name='mmx'/>
+ <feature name='movbe'/>
+ <feature name='msr'/>
+ <feature name='mtrr'/>
+ <feature name='nx'/>
+ <feature name='pae'/>
+ <feature name='pat'/>
+ <feature name='pclmuldq'/>
+ <feature name='pdpe1gb'/>
+ <feature name='pge'/>
+ <feature name='pni'/>
+ <feature name='popcnt'/>
+ <feature name='pse'/>
+ <feature name='pse36'/>
+ <feature name='rdctl-no'/>
+ <feature name='rdrand'/>
+ <feature name='rdseed'/>
+ <feature name='rdtscp'/>
+ <feature name='sep'/>
+ <feature name='sha-ni'/>
+ <feature name='skip-l1dfl-vmentry'/>
+ <feature name='smap'/>
+ <feature name='smep'/>
+ <feature name='spec-ctrl'/>
+ <feature name='ssbd'/>
+ <feature name='sse'/>
+ <feature name='sse2'/>
+ <feature name='sse4.1'/>
+ <feature name='sse4.2'/>
+ <feature name='ssse3'/>
+ <feature name='syscall'/>
+ <feature name='tsc'/>
+ <feature name='tsc-deadline'/>
+ <feature name='vme'/>
+ <feature name='x2apic'/>
+ <feature name='xgetbv1'/>
+ <feature name='xsave'/>
+ <feature name='xsavec'/>
+ <feature name='xsaveopt'/>
+ </model>
+</cpus>
diff --git a/src/cpu_map/x86_Dhyana.xml b/src/cpu_map/x86_Dhyana.xml
index 689daf8649..3190d5357b 100644
--- a/src/cpu_map/x86_Dhyana.xml
+++ b/src/cpu_map/x86_Dhyana.xml
@@ -1,7 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x8000001E'
+ 'model.model_id': 'Hygon Dhyana Processor'
+ 'model.cache_info': '&epyc_cache_info'
+-->
<cpus>
<model name='Dhyana'>
<decode host='on' guest='on'/>
- <signature family='24' model='0'/> <!-- 900f00 -->
+ <signature family='24' model='0'/>
<vendor name='Hygon'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -33,10 +40,11 @@
<feature name='misalignsse'/>
<feature name='mmx'/>
<feature name='mmxext'/>
- <feature name='monitor'/>
<feature name='movbe'/>
<feature name='msr'/>
<feature name='mtrr'/>
+ <feature name='npt'/>
+ <feature name='nrip-save'/>
<feature name='nx'/>
<feature name='osvw'/>
<feature name='pae'/>
diff --git a/src/cpu_map/x86_EPYC-IBPB.xml b/src/cpu_map/x86_EPYC-IBPB.xml
index 983c5f4445..b9e90e0186 100644
--- a/src/cpu_map/x86_EPYC-IBPB.xml
+++ b/src/cpu_map/x86_EPYC-IBPB.xml
@@ -1,7 +1,17 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '2'
+ 'model.xlevel': '0x8000001E'
+ 'model.model_id': 'AMD EPYC Processor'
+ 'model.cache_info': '&epyc_cache_info'
+ 'model.use_epyc_apic_id_encoding': '1'
+ 'version.version': '3'
+ 'property.model-id': 'AMD EPYC Processor'
+-->
<cpus>
<model name='EPYC-IBPB'>
<decode host='on' guest='on'/>
- <signature family='23' model='1'/> <!-- 800f10 -->
+ <signature family='23' model='1'/>
<vendor name='AMD'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -15,6 +25,7 @@
<feature name='bmi2'/>
<feature name='clflush'/>
<feature name='clflushopt'/>
+ <feature name='clzero'/>
<feature name='cmov'/>
<feature name='cr8legacy'/>
<feature name='cx16'/>
@@ -34,16 +45,18 @@
<feature name='misalignsse'/>
<feature name='mmx'/>
<feature name='mmxext'/>
- <feature name='monitor'/>
<feature name='movbe'/>
<feature name='msr'/>
<feature name='mtrr'/>
+ <feature name='npt'/>
+ <feature name='nrip-save'/>
<feature name='nx'/>
<feature name='osvw'/>
<feature name='pae'/>
<feature name='pat'/>
<feature name='pclmuldq'/>
<feature name='pdpe1gb'/>
+ <feature name='perfctr-core'/>
<feature name='pge'/>
<feature name='pni'/>
<feature name='popcnt'/>
@@ -69,6 +82,8 @@
<feature name='xgetbv1'/>
<feature name='xsave'/>
<feature name='xsavec'/>
+ <feature name='xsaveerptr'/>
<feature name='xsaveopt'/>
+ <feature name='xsaves'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_EPYC-Rome.xml b/src/cpu_map/x86_EPYC-Rome.xml
index e54d0a48d8..c26a715446 100644
--- a/src/cpu_map/x86_EPYC-Rome.xml
+++ b/src/cpu_map/x86_EPYC-Rome.xml
@@ -1,3 +1,11 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '0'
+ 'model.xlevel': '0x8000001E'
+ 'model.model_id': 'AMD EPYC-Rome Processor'
+ 'model.cache_info': '&epyc_rome_cache_info'
+ 'model.use_epyc_apic_id_encoding': '1'
+-->
<cpus>
<model name='EPYC-Rome'>
<decode host='on' guest='on'/>
@@ -79,5 +87,6 @@
<feature name='xsavec'/>
<feature name='xsaveerptr'/>
<feature name='xsaveopt'/>
+ <feature name='xsaves'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_EPYC.xml b/src/cpu_map/x86_EPYC.xml
index 3ebba9f4ed..99478fd0d9 100644
--- a/src/cpu_map/x86_EPYC.xml
+++ b/src/cpu_map/x86_EPYC.xml
@@ -1,7 +1,16 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '2'
+ 'model.xlevel': '0x8000001E'
+ 'model.model_id': 'AMD EPYC Processor'
+ 'model.cache_info': '&epyc_cache_info'
+ 'model.use_epyc_apic_id_encoding': '1'
+ 'version.version': '1'
+-->
<cpus>
<model name='EPYC'>
<decode host='on' guest='on'/>
- <signature family='23' model='1'/> <!-- 800f10 -->
+ <signature family='23' model='1'/>
<vendor name='AMD'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -33,10 +42,11 @@
<feature name='misalignsse'/>
<feature name='mmx'/>
<feature name='mmxext'/>
- <feature name='monitor'/>
<feature name='movbe'/>
<feature name='msr'/>
<feature name='mtrr'/>
+ <feature name='npt'/>
+ <feature name='nrip-save'/>
<feature name='nx'/>
<feature name='osvw'/>
<feature name='pae'/>
diff --git a/src/cpu_map/x86_Haswell-IBRS.xml b/src/cpu_map/x86_Haswell-IBRS.xml
index 0ffe2bae0d..067c19cb7a 100644
--- a/src/cpu_map/x86_Haswell-IBRS.xml
+++ b/src/cpu_map/x86_Haswell-IBRS.xml
@@ -1,13 +1,21 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '4'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Haswell)'
+ 'version.version': '3'
+ 'property.stepping': '4'
+ 'property.model-id': 'Intel Core Processor (Haswell, IBRS)'
+-->
<cpus>
<model name='Haswell-IBRS'>
<decode host='on' guest='on'/>
- <signature family='6' model='60'/> <!-- 0306c0 -->
- <signature family='6' model='63'/> <!-- 0306f0 -->
- <signature family='6' model='69'/> <!-- 040650 -->
- <signature family='6' model='70'/> <!-- 040660 -->
+ <signature family='6' model='60'/>
<vendor name='Intel'/>
+ <feature name='abm'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='bmi1'/>
@@ -18,6 +26,7 @@
<feature name='cx8'/>
<feature name='de'/>
<feature name='erms'/>
+ <feature name='f16c'/>
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
@@ -42,6 +51,7 @@
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdrand'/>
<feature name='rdtscp'/>
<feature name='rtm'/>
<feature name='sep'/>
@@ -55,7 +65,9 @@
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
+ <feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Haswell-noTSX-IBRS.xml
b/src/cpu_map/x86_Haswell-noTSX-IBRS.xml
index 75d709c009..c18f09acd9 100644
--- a/src/cpu_map/x86_Haswell-noTSX-IBRS.xml
+++ b/src/cpu_map/x86_Haswell-noTSX-IBRS.xml
@@ -1,13 +1,21 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '4'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Haswell)'
+ 'version.version': '4'
+ 'property.stepping': '1'
+ 'property.model-id': 'Intel Core Processor (Haswell, no TSX, IBRS)'
+-->
<cpus>
<model name='Haswell-noTSX-IBRS'>
<decode host='on' guest='on'/>
- <signature family='6' model='60'/> <!-- 0306c0 -->
- <signature family='6' model='63'/> <!-- 0306f0 -->
- <signature family='6' model='69'/> <!-- 040650 -->
- <signature family='6' model='70'/> <!-- 040660 -->
+ <signature family='6' model='60'/>
<vendor name='Intel'/>
+ <feature name='abm'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='bmi1'/>
@@ -18,6 +26,7 @@
<feature name='cx8'/>
<feature name='de'/>
<feature name='erms'/>
+ <feature name='f16c'/>
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
@@ -41,6 +50,7 @@
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdrand'/>
<feature name='rdtscp'/>
<feature name='sep'/>
<feature name='smep'/>
@@ -53,7 +63,9 @@
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
+ <feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Haswell-noTSX.xml b/src/cpu_map/x86_Haswell-noTSX.xml
index b0a0faa856..8cf672b3d2 100644
--- a/src/cpu_map/x86_Haswell-noTSX.xml
+++ b/src/cpu_map/x86_Haswell-noTSX.xml
@@ -1,13 +1,21 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '4'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Haswell)'
+ 'version.version': '2'
+ 'property.stepping': '1'
+ 'property.model-id': 'Intel Core Processor (Haswell, no TSX)'
+-->
<cpus>
<model name='Haswell-noTSX'>
<decode host='on' guest='on'/>
- <signature family='6' model='60'/> <!-- 0306c0 -->
- <signature family='6' model='63'/> <!-- 0306f0 -->
- <signature family='6' model='69'/> <!-- 040650 -->
- <signature family='6' model='70'/> <!-- 040660 -->
+ <signature family='6' model='60'/>
<vendor name='Intel'/>
+ <feature name='abm'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='bmi1'/>
@@ -18,6 +26,7 @@
<feature name='cx8'/>
<feature name='de'/>
<feature name='erms'/>
+ <feature name='f16c'/>
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
@@ -41,6 +50,7 @@
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdrand'/>
<feature name='rdtscp'/>
<feature name='sep'/>
<feature name='smep'/>
@@ -52,7 +62,9 @@
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
+ <feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Haswell.xml b/src/cpu_map/x86_Haswell.xml
index ee16b30f19..16ffd6983a 100644
--- a/src/cpu_map/x86_Haswell.xml
+++ b/src/cpu_map/x86_Haswell.xml
@@ -1,13 +1,19 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '4'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Haswell)'
+ 'version.version': '1'
+-->
<cpus>
<model name='Haswell'>
<decode host='on' guest='on'/>
- <signature family='6' model='60'/> <!-- 0306c0 -->
- <signature family='6' model='63'/> <!-- 0306f0 -->
- <signature family='6' model='69'/> <!-- 040650 -->
- <signature family='6' model='70'/> <!-- 040660 -->
+ <signature family='6' model='60'/>
<vendor name='Intel'/>
+ <feature name='abm'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='bmi1'/>
@@ -18,6 +24,7 @@
<feature name='cx8'/>
<feature name='de'/>
<feature name='erms'/>
+ <feature name='f16c'/>
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
@@ -42,6 +49,7 @@
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdrand'/>
<feature name='rdtscp'/>
<feature name='rtm'/>
<feature name='sep'/>
@@ -54,7 +62,9 @@
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
+ <feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Icelake-Client-noTSX.xml
b/src/cpu_map/x86_Icelake-Client-noTSX.xml
index 65e648ae21..cf1634a0b8 100644
--- a/src/cpu_map/x86_Icelake-Client-noTSX.xml
+++ b/src/cpu_map/x86_Icelake-Client-noTSX.xml
@@ -1,7 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '0'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Icelake)'
+ 'version.version': '2'
+ 'version.note': 'no TSX'
+-->
<cpus>
<model name='Icelake-Client-noTSX'>
- <decode host='on' guest='off'/>
- <signature family='6' model='126'/> <!-- 0706e0 -->
+ <decode host='on' guest='on'/>
+ <signature family='6' model='126'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -30,7 +38,6 @@
<feature name='fsgsbase'/>
<feature name='fxsr'/>
<feature name='gfni'/>
- <feature name='intel-pt'/>
<feature name='invpcid'/>
<feature name='lahf_lm'/>
<feature name='lm'/>
@@ -38,7 +45,6 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Icelake-Client.xml b/src/cpu_map/x86_Icelake-Client.xml
index 5cf32e91fa..5b7b819182 100644
--- a/src/cpu_map/x86_Icelake-Client.xml
+++ b/src/cpu_map/x86_Icelake-Client.xml
@@ -1,7 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '0'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Icelake)'
+ 'version.version': '1'
+-->
<cpus>
<model name='Icelake-Client'>
<decode host='on' guest='on'/>
- <signature family='6' model='126'/> <!-- 0706e0 -->
+ <signature family='6' model='126'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -31,7 +38,6 @@
<feature name='fxsr'/>
<feature name='gfni'/>
<feature name='hle'/>
- <feature name='intel-pt'/>
<feature name='invpcid'/>
<feature name='lahf_lm'/>
<feature name='lm'/>
@@ -39,7 +45,6 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Icelake-Server-noTSX.xml
b/src/cpu_map/x86_Icelake-Server-noTSX.xml
index 2fd6906406..69635fb96b 100644
--- a/src/cpu_map/x86_Icelake-Server-noTSX.xml
+++ b/src/cpu_map/x86_Icelake-Server-noTSX.xml
@@ -1,7 +1,16 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '0'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon Processor (Icelake)'
+ 'version.version': '4'
+ 'version.note': 'no TSX'
+ 'property.model': '106'
+-->
<cpus>
<model name='Icelake-Server-noTSX'>
- <decode host='on' guest='off'/>
- <signature family='6' model='134'/> <!-- 080660 -->
+ <decode host='on' guest='on'/>
+ <signature family='6' model='134'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -9,6 +18,7 @@
<feature name='aes'/>
<feature name='apic'/>
<feature name='arat'/>
+ <feature name='arch-capabilities'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='avx512-vpopcntdq'/>
@@ -17,6 +27,7 @@
<feature name='avx512cd'/>
<feature name='avx512dq'/>
<feature name='avx512f'/>
+ <feature name='avx512ifma'/>
<feature name='avx512vbmi'/>
<feature name='avx512vbmi2'/>
<feature name='avx512vl'/>
@@ -35,18 +46,19 @@
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
+ <feature name='fsrm'/>
<feature name='fxsr'/>
<feature name='gfni'/>
- <feature name='intel-pt'/>
+ <feature name='ibrs-all'/>
<feature name='invpcid'/>
<feature name='la57'/>
<feature name='lahf_lm'/>
<feature name='lm'/>
<feature name='mca'/>
<feature name='mce'/>
+ <feature name='mds-no'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
@@ -59,12 +71,17 @@
<feature name='pku'/>
<feature name='pni'/>
<feature name='popcnt'/>
+ <feature name='pschange-mc-no'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdctl-no'/>
+ <feature name='rdpid'/>
<feature name='rdrand'/>
<feature name='rdseed'/>
<feature name='rdtscp'/>
<feature name='sep'/>
+ <feature name='sha-ni'/>
+ <feature name='skip-l1dfl-vmentry'/>
<feature name='smap'/>
<feature name='smep'/>
<feature name='spec-ctrl'/>
@@ -75,11 +92,15 @@
<feature name='sse4.2'/>
<feature name='ssse3'/>
<feature name='syscall'/>
+ <feature name='taa-no'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
<feature name='umip'/>
<feature name='vaes'/>
<feature name='vme'/>
+ <feature name='vmx-eptp-switching'/>
+ <feature name='vmx-pml'/>
+ <feature name='vmx-rdseed-exit'/>
<feature name='vpclmulqdq'/>
<feature name='wbnoinvd'/>
<feature name='x2apic'/>
diff --git a/src/cpu_map/x86_Icelake-Server.xml b/src/cpu_map/x86_Icelake-Server.xml
index 367ade7240..a88df26ec2 100644
--- a/src/cpu_map/x86_Icelake-Server.xml
+++ b/src/cpu_map/x86_Icelake-Server.xml
@@ -1,7 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '0'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon Processor (Icelake)'
+ 'version.version': '1'
+-->
<cpus>
<model name='Icelake-Server'>
<decode host='on' guest='on'/>
- <signature family='6' model='134'/> <!-- 080660 -->
+ <signature family='6' model='134'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -38,7 +45,6 @@
<feature name='fxsr'/>
<feature name='gfni'/>
<feature name='hle'/>
- <feature name='intel-pt'/>
<feature name='invpcid'/>
<feature name='la57'/>
<feature name='lahf_lm'/>
@@ -47,7 +53,6 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_IvyBridge-IBRS.xml b/src/cpu_map/x86_IvyBridge-IBRS.xml
index 430bc3232d..3323c51e4e 100644
--- a/src/cpu_map/x86_IvyBridge-IBRS.xml
+++ b/src/cpu_map/x86_IvyBridge-IBRS.xml
@@ -1,11 +1,19 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '9'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon E3-12xx v2 (Ivy Bridge)'
+ 'version.version': '2'
+ 'property.model-id': 'Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS)'
+-->
<cpus>
<model name='IvyBridge-IBRS'>
<decode host='on' guest='on'/>
- <signature family='6' model='58'/> <!-- 0306a0 -->
- <signature family='6' model='62'/> <!-- 0306e0 -->
+ <signature family='6' model='58'/>
<vendor name='Intel'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='clflush'/>
<feature name='cmov'/>
@@ -49,5 +57,6 @@
<feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_IvyBridge.xml b/src/cpu_map/x86_IvyBridge.xml
index eaf5d02e82..e4edad09b0 100644
--- a/src/cpu_map/x86_IvyBridge.xml
+++ b/src/cpu_map/x86_IvyBridge.xml
@@ -1,11 +1,18 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '9'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon E3-12xx v2 (Ivy Bridge)'
+ 'version.version': '1'
+-->
<cpus>
<model name='IvyBridge'>
<decode host='on' guest='on'/>
- <signature family='6' model='58'/> <!-- 0306a0 -->
- <signature family='6' model='62'/> <!-- 0306e0 -->
+ <signature family='6' model='58'/>
<vendor name='Intel'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='clflush'/>
<feature name='cmov'/>
@@ -48,5 +55,6 @@
<feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_KnightsMill.xml b/src/cpu_map/x86_KnightsMill.xml
new file mode 100644
index 0000000000..df81bdf715
--- /dev/null
+++ b/src/cpu_map/x86_KnightsMill.xml
@@ -0,0 +1,77 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '0'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon Phi Processor (Knights Mill)'
+-->
+<cpus>
+ <model name='KnightsMill'>
+ <decode host='on' guest='on'/>
+ <signature family='6' model='133'/>
+ <vendor name='Intel'/>
+ <feature name='3dnowprefetch'/>
+ <feature name='abm'/>
+ <feature name='adx'/>
+ <feature name='aes'/>
+ <feature name='apic'/>
+ <feature name='arat'/>
+ <feature name='avx'/>
+ <feature name='avx2'/>
+ <feature name='avx512-4fmaps'/>
+ <feature name='avx512-4vnniw'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512er'/>
+ <feature name='avx512f'/>
+ <feature name='avx512pf'/>
+ <feature name='bmi1'/>
+ <feature name='bmi2'/>
+ <feature name='clflush'/>
+ <feature name='cmov'/>
+ <feature name='cx16'/>
+ <feature name='cx8'/>
+ <feature name='de'/>
+ <feature name='erms'/>
+ <feature name='f16c'/>
+ <feature name='fma'/>
+ <feature name='fpu'/>
+ <feature name='fsgsbase'/>
+ <feature name='fxsr'/>
+ <feature name='lahf_lm'/>
+ <feature name='lm'/>
+ <feature name='mca'/>
+ <feature name='mce'/>
+ <feature name='mmx'/>
+ <feature name='movbe'/>
+ <feature name='msr'/>
+ <feature name='mtrr'/>
+ <feature name='nx'/>
+ <feature name='pae'/>
+ <feature name='pat'/>
+ <feature name='pclmuldq'/>
+ <feature name='pdpe1gb'/>
+ <feature name='pge'/>
+ <feature name='pni'/>
+ <feature name='popcnt'/>
+ <feature name='pse'/>
+ <feature name='pse36'/>
+ <feature name='rdrand'/>
+ <feature name='rdseed'/>
+ <feature name='rdtscp'/>
+ <feature name='sep'/>
+ <feature name='smep'/>
+ <feature name='ss'/>
+ <feature name='sse'/>
+ <feature name='sse2'/>
+ <feature name='sse4.1'/>
+ <feature name='sse4.2'/>
+ <feature name='ssse3'/>
+ <feature name='syscall'/>
+ <feature name='tsc'/>
+ <feature name='tsc-deadline'/>
+ <feature name='vme'/>
+ <feature name='x2apic'/>
+ <feature name='xsave'/>
+ <feature name='xsaveopt'/>
+ </model>
+</cpus>
diff --git a/src/cpu_map/x86_Nehalem-IBRS.xml b/src/cpu_map/x86_Nehalem-IBRS.xml
index 00d0d2fe51..3a5660454f 100644
--- a/src/cpu_map/x86_Nehalem-IBRS.xml
+++ b/src/cpu_map/x86_Nehalem-IBRS.xml
@@ -1,10 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '11'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core i7 9xx (Nehalem Class Core i7)'
+ 'version.version': '2'
+ 'property.model-id': 'Intel Core i7 9xx (Nehalem Core i7, IBRS
update)'
+-->
<cpus>
<model name='Nehalem-IBRS'>
<decode host='on' guest='on'/>
- <signature family='6' model='26'/> <!-- 0106a0 -->
- <signature family='6' model='30'/> <!-- 0106e0 -->
- <signature family='6' model='31'/> <!-- 0106f0 -->
- <signature family='6' model='46'/> <!-- 0206e0 -->
+ <signature family='6' model='26'/>
<vendor name='Intel'/>
<feature name='apic'/>
<feature name='clflush'/>
@@ -38,5 +43,6 @@
<feature name='ssse3'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Nehalem.xml b/src/cpu_map/x86_Nehalem.xml
index 9968001fe7..d5811d27ba 100644
--- a/src/cpu_map/x86_Nehalem.xml
+++ b/src/cpu_map/x86_Nehalem.xml
@@ -1,10 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '11'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core i7 9xx (Nehalem Class Core i7)'
+ 'version.version': '1'
+-->
<cpus>
<model name='Nehalem'>
<decode host='on' guest='on'/>
- <signature family='6' model='26'/> <!-- 0106a0 -->
- <signature family='6' model='30'/> <!-- 0106e0 -->
- <signature family='6' model='31'/> <!-- 0106f0 -->
- <signature family='6' model='46'/> <!-- 0206e0 -->
+ <signature family='6' model='26'/>
<vendor name='Intel'/>
<feature name='apic'/>
<feature name='clflush'/>
@@ -37,5 +41,6 @@
<feature name='ssse3'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Opteron_G1.xml b/src/cpu_map/x86_Opteron_G1.xml
index 57648ca93f..ad6cd87ca5 100644
--- a/src/cpu_map/x86_Opteron_G1.xml
+++ b/src/cpu_map/x86_Opteron_G1.xml
@@ -1,7 +1,13 @@
+<!-- extra info from qemu:
+ 'model.level': '5'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'AMD Opteron 240 (Gen 1 Class Opteron)'
+-->
<cpus>
<model name='Opteron_G1'>
<decode host='on' guest='on'/>
- <signature family='15' model='6'/> <!-- 100e60 -->
+ <signature family='15' model='6'/>
<vendor name='AMD'/>
<feature name='apic'/>
<feature name='clflush'/>
@@ -28,5 +34,6 @@
<feature name='sse2'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Opteron_G2.xml b/src/cpu_map/x86_Opteron_G2.xml
index db961b0067..6341f3f4ce 100644
--- a/src/cpu_map/x86_Opteron_G2.xml
+++ b/src/cpu_map/x86_Opteron_G2.xml
@@ -1,7 +1,13 @@
+<!-- extra info from qemu:
+ 'model.level': '5'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'AMD Opteron 22xx (Gen 2 Class Opteron)'
+-->
<cpus>
<model name='Opteron_G2'>
<decode host='on' guest='on'/>
- <signature family='15' model='6'/> <!-- 100e60 -->
+ <signature family='15' model='6'/>
<vendor name='AMD'/>
<feature name='apic'/>
<feature name='clflush'/>
@@ -25,12 +31,12 @@
<feature name='pni'/>
<feature name='pse'/>
<feature name='pse36'/>
- <feature name='rdtscp'/>
<feature name='sep'/>
<feature name='sse'/>
<feature name='sse2'/>
<feature name='svm'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Opteron_G3.xml b/src/cpu_map/x86_Opteron_G3.xml
index dab59d4f82..3085e180e8 100644
--- a/src/cpu_map/x86_Opteron_G3.xml
+++ b/src/cpu_map/x86_Opteron_G3.xml
@@ -1,7 +1,13 @@
+<!-- extra info from qemu:
+ 'model.level': '5'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'AMD Opteron 23xx (Gen 3 Class Opteron)'
+-->
<cpus>
<model name='Opteron_G3'>
<decode host='on' guest='on'/>
- <signature family='15' model='6'/> <!-- 100e60 -->
+ <signature family='16' model='2'/>
<vendor name='AMD'/>
<feature name='abm'/>
<feature name='apic'/>
@@ -18,7 +24,6 @@
<feature name='mce'/>
<feature name='misalignsse'/>
<feature name='mmx'/>
- <feature name='monitor'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
@@ -37,5 +42,6 @@
<feature name='svm'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Opteron_G4.xml b/src/cpu_map/x86_Opteron_G4.xml
index a7fc8d5828..30f8b7d33a 100644
--- a/src/cpu_map/x86_Opteron_G4.xml
+++ b/src/cpu_map/x86_Opteron_G4.xml
@@ -1,7 +1,13 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '2'
+ 'model.xlevel': '0x8000001A'
+ 'model.model_id': 'AMD Opteron 62xx class CPU'
+-->
<cpus>
<model name='Opteron_G4'>
<decode host='on' guest='on'/>
- <signature family='21' model='1'/> <!-- 600f10 -->
+ <signature family='21' model='1'/>
<vendor name='AMD'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -24,6 +30,8 @@
<feature name='mmx'/>
<feature name='msr'/>
<feature name='mtrr'/>
+ <feature name='npt'/>
+ <feature name='nrip-save'/>
<feature name='nx'/>
<feature name='pae'/>
<feature name='pat'/>
@@ -45,6 +53,7 @@
<feature name='svm'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
<feature name='xop'/>
<feature name='xsave'/>
</model>
diff --git a/src/cpu_map/x86_Opteron_G5.xml b/src/cpu_map/x86_Opteron_G5.xml
index ff775bdcef..148009a083 100644
--- a/src/cpu_map/x86_Opteron_G5.xml
+++ b/src/cpu_map/x86_Opteron_G5.xml
@@ -1,7 +1,13 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '0'
+ 'model.xlevel': '0x8000001A'
+ 'model.model_id': 'AMD Opteron 63xx class CPU'
+-->
<cpus>
<model name='Opteron_G5'>
<decode host='on' guest='on'/>
- <signature family='21' model='2'/> <!-- 600f20 -->
+ <signature family='21' model='2'/>
<vendor name='AMD'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -26,6 +32,8 @@
<feature name='mmx'/>
<feature name='msr'/>
<feature name='mtrr'/>
+ <feature name='npt'/>
+ <feature name='nrip-save'/>
<feature name='nx'/>
<feature name='pae'/>
<feature name='pat'/>
@@ -48,6 +56,7 @@
<feature name='syscall'/>
<feature name='tbm'/>
<feature name='tsc'/>
+ <feature name='vme'/>
<feature name='xop'/>
<feature name='xsave'/>
</model>
diff --git a/src/cpu_map/x86_Penryn.xml b/src/cpu_map/x86_Penryn.xml
index 29d4cd635b..f30aaf4682 100644
--- a/src/cpu_map/x86_Penryn.xml
+++ b/src/cpu_map/x86_Penryn.xml
@@ -1,8 +1,13 @@
+<!-- extra info from qemu:
+ 'model.level': '10'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core 2 Duo P9xxx (Penryn Class Core 2)'
+-->
<cpus>
<model name='Penryn'>
<decode host='on' guest='on'/>
- <signature family='6' model='23'/> <!-- 010670 -->
- <signature family='6' model='29'/> <!-- 0106d0 -->
+ <signature family='6' model='23'/>
<vendor name='Intel'/>
<feature name='apic'/>
<feature name='clflush'/>
@@ -33,5 +38,6 @@
<feature name='ssse3'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_SandyBridge-IBRS.xml b/src/cpu_map/x86_SandyBridge-IBRS.xml
index fbdb4f2bf6..a38c36763e 100644
--- a/src/cpu_map/x86_SandyBridge-IBRS.xml
+++ b/src/cpu_map/x86_SandyBridge-IBRS.xml
@@ -1,11 +1,19 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon E312xx (Sandy Bridge)'
+ 'version.version': '2'
+ 'property.model-id': 'Intel Xeon E312xx (Sandy Bridge, IBRS update)'
+-->
<cpus>
<model name='SandyBridge-IBRS'>
<decode host='on' guest='on'/>
- <signature family='6' model='42'/> <!-- 0206a0 -->
- <signature family='6' model='45'/> <!-- 0206d0 -->
+ <signature family='6' model='42'/>
<vendor name='Intel'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='clflush'/>
<feature name='cmov'/>
@@ -41,7 +49,9 @@
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
+ <feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_SandyBridge.xml b/src/cpu_map/x86_SandyBridge.xml
index 7c85ed42df..d67525e569 100644
--- a/src/cpu_map/x86_SandyBridge.xml
+++ b/src/cpu_map/x86_SandyBridge.xml
@@ -1,11 +1,18 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon E312xx (Sandy Bridge)'
+ 'version.version': '1'
+-->
<cpus>
<model name='SandyBridge'>
<decode host='on' guest='on'/>
- <signature family='6' model='42'/> <!-- 0206a0 -->
- <signature family='6' model='45'/> <!-- 0206d0 -->
+ <signature family='6' model='42'/>
<vendor name='Intel'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='avx'/>
<feature name='clflush'/>
<feature name='cmov'/>
@@ -40,7 +47,9 @@
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
+ <feature name='vme'/>
<feature name='x2apic'/>
<feature name='xsave'/>
+ <feature name='xsaveopt'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Skylake-Client-IBRS.xml
b/src/cpu_map/x86_Skylake-Client-IBRS.xml
index 5709e7c2f9..7e5c6d3c41 100644
--- a/src/cpu_map/x86_Skylake-Client-IBRS.xml
+++ b/src/cpu_map/x86_Skylake-Client-IBRS.xml
@@ -1,12 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Skylake)'
+ 'version.version': '2'
+ 'property.model-id': 'Intel Core Processor (Skylake, IBRS)'
+-->
<cpus>
<model name='Skylake-Client-IBRS'>
<decode host='on' guest='on'/>
- <signature family='6' model='94'/> <!-- 0506e0 -->
- <signature family='6' model='78'/> <!-- 0406e0 -->
- <!-- These are Kaby Lake and Coffee Lake successors to Skylake,
- but we don't have specific models for them. -->
- <signature family='6' model='142'/> <!-- 0806e0 -->
- <signature family='6' model='158'/> <!-- 0906e0 -->
+ <signature family='6' model='94'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -37,7 +40,6 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
b/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
index ffba34502a..1b8fd4c1a0 100644
--- a/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
+++ b/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
@@ -1,12 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Skylake)'
+ 'version.version': '3'
+ 'property.model-id': 'Intel Core Processor (Skylake, IBRS, no TSX)'
+-->
<cpus>
<model name='Skylake-Client-noTSX-IBRS'>
- <decode host='on' guest='off'/>
- <signature family='6' model='94'/> <!-- 0506e0 -->
- <signature family='6' model='78'/> <!-- 0406e0 -->
- <!-- These are Kaby Lake and Coffee Lake successors to Skylake,
- but we don't have specific models for them. -->
- <signature family='6' model='142'/> <!-- 0806e0 -->
- <signature family='6' model='158'/> <!-- 0906e0 -->
+ <decode host='on' guest='on'/>
+ <signature family='6' model='94'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -36,7 +39,6 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Skylake-Client.xml b/src/cpu_map/x86_Skylake-Client.xml
index 14cd57e176..aae96a8980 100644
--- a/src/cpu_map/x86_Skylake-Client.xml
+++ b/src/cpu_map/x86_Skylake-Client.xml
@@ -1,12 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Core Processor (Skylake)'
+ 'version.version': '1'
+-->
<cpus>
<model name='Skylake-Client'>
<decode host='on' guest='on'/>
- <signature family='6' model='94'/> <!-- 0506e0 -->
- <signature family='6' model='78'/> <!-- 0406e0 -->
- <!-- These are Kaby Lake and Coffee Lake successors to Skylake,
- but we don't have specific models for them. -->
- <signature family='6' model='142'/> <!-- 0806e0 -->
- <signature family='6' model='158'/> <!-- 0906e0 -->
+ <signature family='6' model='94'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -37,7 +39,6 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Skylake-Server-IBRS.xml
b/src/cpu_map/x86_Skylake-Server-IBRS.xml
index 9fb3488809..35d5d55083 100644
--- a/src/cpu_map/x86_Skylake-Server-IBRS.xml
+++ b/src/cpu_map/x86_Skylake-Server-IBRS.xml
@@ -1,7 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '4'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon Processor (Skylake)'
+ 'version.version': '2'
+ 'property.model-id': 'Intel Xeon Processor (Skylake, IBRS)'
+-->
<cpus>
<model name='Skylake-Server-IBRS'>
<decode host='on' guest='on'/>
- <signature family='6' model='85' stepping='0-4'/>
<!-- 050654 -->
+ <signature family='6' model='85'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -38,7 +46,6 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
@@ -48,6 +55,7 @@
<feature name='pclmuldq'/>
<feature name='pdpe1gb'/>
<feature name='pge'/>
+ <feature name='pku'/>
<feature name='pni'/>
<feature name='popcnt'/>
<feature name='pse'/>
diff --git a/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
b/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
index c162c0acc3..dc371cf83b 100644
--- a/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
+++ b/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
@@ -1,7 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '4'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon Processor (Skylake)'
+ 'version.version': '4'
+ 'property.model-id': 'Intel Xeon Processor (Skylake, IBRS, no TSX)'
+-->
<cpus>
<model name='Skylake-Server-noTSX-IBRS'>
- <decode host='on' guest='off'/>
- <signature family='6' model='85' stepping='0-4'/>
<!-- 050654 -->
+ <decode host='on' guest='on'/>
+ <signature family='6' model='85'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -37,7 +45,6 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
@@ -47,6 +54,7 @@
<feature name='pclmuldq'/>
<feature name='pdpe1gb'/>
<feature name='pge'/>
+ <feature name='pku'/>
<feature name='pni'/>
<feature name='popcnt'/>
<feature name='pse'/>
@@ -67,6 +75,7 @@
<feature name='tsc'/>
<feature name='tsc-deadline'/>
<feature name='vme'/>
+ <feature name='vmx-eptp-switching'/>
<feature name='x2apic'/>
<feature name='xgetbv1'/>
<feature name='xsave'/>
diff --git a/src/cpu_map/x86_Skylake-Server.xml b/src/cpu_map/x86_Skylake-Server.xml
index e022d94c84..c7735929d3 100644
--- a/src/cpu_map/x86_Skylake-Server.xml
+++ b/src/cpu_map/x86_Skylake-Server.xml
@@ -1,7 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '4'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Xeon Processor (Skylake)'
+ 'version.version': '1'
+-->
<cpus>
<model name='Skylake-Server'>
<decode host='on' guest='on'/>
- <signature family='6' model='85' stepping='0-4'/>
<!-- 050654 -->
+ <signature family='6' model='85'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='abm'/>
@@ -19,6 +26,7 @@
<feature name='bmi1'/>
<feature name='bmi2'/>
<feature name='clflush'/>
+ <feature name='clflushopt'/>
<feature name='clwb'/>
<feature name='cmov'/>
<feature name='cx16'/>
@@ -38,7 +46,6 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
@@ -48,6 +55,7 @@
<feature name='pclmuldq'/>
<feature name='pdpe1gb'/>
<feature name='pge'/>
+ <feature name='pku'/>
<feature name='pni'/>
<feature name='popcnt'/>
<feature name='pse'/>
diff --git a/src/cpu_map/x86_Snowridge.xml b/src/cpu_map/x86_Snowridge.xml
new file mode 100644
index 0000000000..ad3fdc6dad
--- /dev/null
+++ b/src/cpu_map/x86_Snowridge.xml
@@ -0,0 +1,79 @@
+<!-- extra info from qemu:
+ 'model.level': '27'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel Atom Processor (SnowRidge)'
+ 'version.version': '2'
+ 'property.model-id': 'Intel Atom Processor (Snowridge, no MPX)'
+-->
+<cpus>
+ <model name='Snowridge'>
+ <decode host='on' guest='on'/>
+ <signature family='6' model='134'/>
+ <vendor name='Intel'/>
+ <feature name='3dnowprefetch'/>
+ <feature name='aes'/>
+ <feature name='apic'/>
+ <feature name='arat'/>
+ <feature name='arch-capabilities'/>
+ <feature name='cldemote'/>
+ <feature name='clflush'/>
+ <feature name='clflushopt'/>
+ <feature name='clwb'/>
+ <feature name='cmov'/>
+ <feature name='core-capability'/>
+ <feature name='cx16'/>
+ <feature name='cx8'/>
+ <feature name='de'/>
+ <feature name='erms'/>
+ <feature name='fpu'/>
+ <feature name='fsgsbase'/>
+ <feature name='fxsr'/>
+ <feature name='gfni'/>
+ <feature name='lahf_lm'/>
+ <feature name='lm'/>
+ <feature name='mca'/>
+ <feature name='mce'/>
+ <feature name='mmx'/>
+ <feature name='movbe'/>
+ <feature name='movdir64b'/>
+ <feature name='movdiri'/>
+ <feature name='msr'/>
+ <feature name='mtrr'/>
+ <feature name='nx'/>
+ <feature name='pae'/>
+ <feature name='pat'/>
+ <feature name='pclmuldq'/>
+ <feature name='pdpe1gb'/>
+ <feature name='pge'/>
+ <feature name='pni'/>
+ <feature name='popcnt'/>
+ <feature name='pse'/>
+ <feature name='pse36'/>
+ <feature name='rdrand'/>
+ <feature name='rdseed'/>
+ <feature name='rdtscp'/>
+ <feature name='sep'/>
+ <feature name='sha-ni'/>
+ <feature name='smap'/>
+ <feature name='smep'/>
+ <feature name='spec-ctrl'/>
+ <feature name='split-lock-detect'/>
+ <feature name='ssbd'/>
+ <feature name='sse'/>
+ <feature name='sse2'/>
+ <feature name='sse4.1'/>
+ <feature name='sse4.2'/>
+ <feature name='ssse3'/>
+ <feature name='syscall'/>
+ <feature name='tsc'/>
+ <feature name='tsc-deadline'/>
+ <feature name='umip'/>
+ <feature name='vme'/>
+ <feature name='x2apic'/>
+ <feature name='xgetbv1'/>
+ <feature name='xsave'/>
+ <feature name='xsavec'/>
+ <feature name='xsaveopt'/>
+ </model>
+</cpus>
diff --git a/src/cpu_map/x86_Westmere-IBRS.xml b/src/cpu_map/x86_Westmere-IBRS.xml
index c7898f0c22..2372df2241 100644
--- a/src/cpu_map/x86_Westmere-IBRS.xml
+++ b/src/cpu_map/x86_Westmere-IBRS.xml
@@ -1,10 +1,19 @@
+<!-- extra info from qemu:
+ 'model.level': '11'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Westmere E56xx/L56xx/X56xx (Nehalem-C)'
+ 'version.version': '2'
+ 'property.model-id': 'Westmere E56xx/L56xx/X56xx (IBRS update)'
+-->
<cpus>
<model name='Westmere-IBRS'>
<decode host='on' guest='on'/>
- <signature family='6' model='44'/> <!-- 0206c0 -->
+ <signature family='6' model='44'/>
<vendor name='Intel'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='clflush'/>
<feature name='cmov'/>
<feature name='cx16'/>
@@ -22,6 +31,7 @@
<feature name='nx'/>
<feature name='pae'/>
<feature name='pat'/>
+ <feature name='pclmuldq'/>
<feature name='pge'/>
<feature name='pni'/>
<feature name='popcnt'/>
@@ -36,5 +46,6 @@
<feature name='ssse3'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_Westmere.xml b/src/cpu_map/x86_Westmere.xml
index 16e4ad6c30..3d51f0ae34 100644
--- a/src/cpu_map/x86_Westmere.xml
+++ b/src/cpu_map/x86_Westmere.xml
@@ -1,12 +1,18 @@
+<!-- extra info from qemu:
+ 'model.level': '11'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Westmere E56xx/L56xx/X56xx (Nehalem-C)'
+ 'version.version': '1'
+-->
<cpus>
<model name='Westmere'>
<decode host='on' guest='on'/>
- <signature family='6' model='44'/> <!-- 0206c0 -->
- <signature family='6' model='47'/> <!-- 0206f0 -->
- <signature family='6' model='37'/> <!-- 020650 -->
+ <signature family='6' model='44'/>
<vendor name='Intel'/>
<feature name='aes'/>
<feature name='apic'/>
+ <feature name='arat'/>
<feature name='clflush'/>
<feature name='cmov'/>
<feature name='cx16'/>
@@ -24,6 +30,7 @@
<feature name='nx'/>
<feature name='pae'/>
<feature name='pat'/>
+ <feature name='pclmuldq'/>
<feature name='pge'/>
<feature name='pni'/>
<feature name='popcnt'/>
@@ -37,5 +44,6 @@
<feature name='ssse3'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_athlon.xml b/src/cpu_map/x86_athlon.xml
index 81c43c81e8..2f762cfb14 100644
--- a/src/cpu_map/x86_athlon.xml
+++ b/src/cpu_map/x86_athlon.xml
@@ -1,6 +1,13 @@
+<!-- extra info from qemu:
+ 'model.level': '2'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'QEMU Virtual CPU version QEMU_HW_VERSION'
+-->
<cpus>
<model name='athlon'>
<decode host='on' guest='on'/>
+ <signature family='6' model='2'/>
<vendor name='AMD'/>
<feature name='3dnow'/>
<feature name='3dnowext'/>
@@ -10,6 +17,7 @@
<feature name='de'/>
<feature name='fpu'/>
<feature name='fxsr'/>
+ <feature name='mca'/>
<feature name='mce'/>
<feature name='mmx'/>
<feature name='mmxext'/>
diff --git a/src/cpu_map/x86_core2duo.xml b/src/cpu_map/x86_core2duo.xml
index 412039fe55..9b2f0bdf82 100644
--- a/src/cpu_map/x86_core2duo.xml
+++ b/src/cpu_map/x86_core2duo.xml
@@ -1,19 +1,28 @@
+<!-- extra info from qemu:
+ 'model.level': '10'
+ 'model.stepping': '11'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz'
+-->
<cpus>
<model name='core2duo'>
<decode host='on' guest='on'/>
+ <signature family='6' model='15'/>
<vendor name='Intel'/>
+ <feature name='acpi'/>
<feature name='apic'/>
<feature name='clflush'/>
<feature name='cmov'/>
+ <feature name='cx16'/>
<feature name='cx8'/>
<feature name='de'/>
<feature name='fpu'/>
<feature name='fxsr'/>
+ <feature name='lahf_lm'/>
<feature name='lm'/>
<feature name='mca'/>
<feature name='mce'/>
<feature name='mmx'/>
- <feature name='monitor'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
@@ -24,6 +33,7 @@
<feature name='pse'/>
<feature name='pse36'/>
<feature name='sep'/>
+ <feature name='ss'/>
<feature name='sse'/>
<feature name='sse2'/>
<feature name='ssse3'/>
diff --git a/src/cpu_map/x86_coreduo.xml b/src/cpu_map/x86_coreduo.xml
index e2fda9a1d4..439e13f21f 100644
--- a/src/cpu_map/x86_coreduo.xml
+++ b/src/cpu_map/x86_coreduo.xml
@@ -1,7 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '10'
+ 'model.stepping': '8'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Genuine Intel(R) CPU T2600 @ 2.16GHz'
+-->
<cpus>
<model name='coreduo'>
<decode host='on' guest='on'/>
+ <signature family='6' model='14'/>
<vendor name='Intel'/>
+ <feature name='acpi'/>
<feature name='apic'/>
<feature name='clflush'/>
<feature name='cmov'/>
@@ -12,7 +20,6 @@
<feature name='mca'/>
<feature name='mce'/>
<feature name='mmx'/>
- <feature name='monitor'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
@@ -22,6 +29,7 @@
<feature name='pni'/>
<feature name='pse'/>
<feature name='sep'/>
+ <feature name='ss'/>
<feature name='sse'/>
<feature name='sse2'/>
<feature name='tsc'/>
diff --git a/src/cpu_map/x86_kvm32.xml b/src/cpu_map/x86_kvm32.xml
index 9dd96d5b56..2b208b25eb 100644
--- a/src/cpu_map/x86_kvm32.xml
+++ b/src/cpu_map/x86_kvm32.xml
@@ -1,6 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '5'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Common 32-bit KVM processor'
+-->
<cpus>
<model name='kvm32'>
<decode host='on' guest='on'/>
+ <signature family='15' model='6'/>
+ <vendor name='Intel'/>
<feature name='apic'/>
<feature name='clflush'/>
<feature name='cmov'/>
@@ -23,5 +31,6 @@
<feature name='sse'/>
<feature name='sse2'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_kvm64.xml b/src/cpu_map/x86_kvm64.xml
index 185af06f78..6ebf590858 100644
--- a/src/cpu_map/x86_kvm64.xml
+++ b/src/cpu_map/x86_kvm64.xml
@@ -1,6 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Common KVM processor'
+-->
<cpus>
<model name='kvm64'>
<decode host='on' guest='on'/>
+ <signature family='15' model='6'/>
+ <vendor name='Intel'/>
<feature name='apic'/>
<feature name='clflush'/>
<feature name='cmov'/>
@@ -27,5 +35,6 @@
<feature name='sse2'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_n270.xml b/src/cpu_map/x86_n270.xml
index 5507d2ea3b..28c26e8535 100644
--- a/src/cpu_map/x86_n270.xml
+++ b/src/cpu_map/x86_n270.xml
@@ -1,7 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '10'
+ 'model.stepping': '2'
+ 'model.xlevel': '0x80000008'
+ 'model.model_id': 'Intel(R) Atom(TM) CPU N270 @ 1.60GHz'
+-->
<cpus>
<model name='n270'>
<decode host='on' guest='on'/>
+ <signature family='6' model='28'/>
<vendor name='Intel'/>
+ <feature name='acpi'/>
<feature name='apic'/>
<feature name='clflush'/>
<feature name='cmov'/>
@@ -9,10 +17,11 @@
<feature name='de'/>
<feature name='fpu'/>
<feature name='fxsr'/>
+ <feature name='lahf_lm'/>
<feature name='mca'/>
<feature name='mce'/>
<feature name='mmx'/>
- <feature name='monitor'/>
+ <feature name='movbe'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
@@ -22,6 +31,7 @@
<feature name='pni'/>
<feature name='pse'/>
<feature name='sep'/>
+ <feature name='ss'/>
<feature name='sse'/>
<feature name='sse2'/>
<feature name='ssse3'/>
diff --git a/src/cpu_map/x86_pentium.xml b/src/cpu_map/x86_pentium.xml
index f0a8982115..ce6cb1820d 100644
--- a/src/cpu_map/x86_pentium.xml
+++ b/src/cpu_map/x86_pentium.xml
@@ -1,6 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '1'
+ 'model.stepping': '3'
+ 'model.xlevel': '0'
+ 'model.model_id': ''
+-->
<cpus>
<model name='pentium'>
<decode host='on' guest='on'/>
+ <signature family='5' model='4'/>
+ <vendor name='Intel'/>
+ <feature name='apic'/>
<feature name='cx8'/>
<feature name='de'/>
<feature name='fpu'/>
diff --git a/src/cpu_map/x86_pentium2.xml b/src/cpu_map/x86_pentium2.xml
index aeba082297..def4a5c3c9 100644
--- a/src/cpu_map/x86_pentium2.xml
+++ b/src/cpu_map/x86_pentium2.xml
@@ -1,6 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '2'
+ 'model.stepping': '2'
+ 'model.xlevel': '0'
+ 'model.model_id': ''
+-->
<cpus>
<model name='pentium2'>
<decode host='on' guest='on'/>
+ <signature family='6' model='5'/>
+ <vendor name='Intel'/>
+ <feature name='apic'/>
<feature name='cmov'/>
<feature name='cx8'/>
<feature name='de'/>
diff --git a/src/cpu_map/x86_pentium3.xml b/src/cpu_map/x86_pentium3.xml
index ab85d2967f..715599b9a4 100644
--- a/src/cpu_map/x86_pentium3.xml
+++ b/src/cpu_map/x86_pentium3.xml
@@ -1,6 +1,15 @@
+<!-- extra info from qemu:
+ 'model.level': '3'
+ 'model.stepping': '3'
+ 'model.xlevel': '0'
+ 'model.model_id': ''
+-->
<cpus>
<model name='pentium3'>
<decode host='on' guest='on'/>
+ <signature family='6' model='7'/>
+ <vendor name='Intel'/>
+ <feature name='apic'/>
<feature name='cmov'/>
<feature name='cx8'/>
<feature name='de'/>
diff --git a/src/cpu_map/x86_phenom.xml b/src/cpu_map/x86_phenom.xml
index f0f8ece57a..57b77803d7 100644
--- a/src/cpu_map/x86_phenom.xml
+++ b/src/cpu_map/x86_phenom.xml
@@ -1,37 +1,52 @@
+<!-- extra info from qemu:
+ 'model.level': '5'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x8000001A'
+ 'model.model_id': 'AMD Phenom(tm) 9550 Quad-Core Processor'
+-->
<cpus>
<model name='phenom'>
<decode host='on' guest='on'/>
+ <signature family='16' model='2'/>
<vendor name='AMD'/>
<feature name='3dnow'/>
<feature name='3dnowext'/>
+ <feature name='abm'/>
<feature name='apic'/>
<feature name='clflush'/>
<feature name='cmov'/>
+ <feature name='cx16'/>
<feature name='cx8'/>
<feature name='de'/>
<feature name='fpu'/>
<feature name='fxsr'/>
<feature name='fxsr_opt'/>
+ <feature name='lahf_lm'/>
<feature name='lm'/>
<feature name='mca'/>
<feature name='mce'/>
<feature name='mmx'/>
<feature name='mmxext'/>
- <feature name='monitor'/>
<feature name='msr'/>
<feature name='mtrr'/>
+ <feature name='npt'/>
<feature name='nx'/>
<feature name='pae'/>
<feature name='pat'/>
+ <feature name='pdpe1gb'/>
<feature name='pge'/>
<feature name='pni'/>
+ <feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
+ <feature name='rdtscp'/>
<feature name='sep'/>
<feature name='sse'/>
<feature name='sse2'/>
+ <feature name='sse4a'/>
<feature name='svm'/>
<feature name='syscall'/>
<feature name='tsc'/>
+ <feature name='vme'/>
</model>
</cpus>
diff --git a/src/cpu_map/x86_qemu32.xml b/src/cpu_map/x86_qemu32.xml
index f3fb1959be..3d20add85e 100644
--- a/src/cpu_map/x86_qemu32.xml
+++ b/src/cpu_map/x86_qemu32.xml
@@ -1,6 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '4'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x80000004'
+ 'model.model_id': 'QEMU Virtual CPU version QEMU_HW_VERSION'
+-->
<cpus>
<model name='qemu32'>
<decode host='on' guest='on'/>
+ <signature family='6' model='6'/>
+ <vendor name='Intel'/>
<feature name='apic'/>
<feature name='cmov'/>
<feature name='cx8'/>
diff --git a/src/cpu_map/x86_qemu64.xml b/src/cpu_map/x86_qemu64.xml
index 0fe207a2b4..09c0c2a1f1 100644
--- a/src/cpu_map/x86_qemu64.xml
+++ b/src/cpu_map/x86_qemu64.xml
@@ -1,14 +1,14 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '3'
+ 'model.xlevel': '0x8000000A'
+ 'model.model_id': 'QEMU Virtual CPU version QEMU_HW_VERSION'
+-->
<cpus>
<model name='qemu64'>
<decode host='on' guest='on'/>
- <!-- These are supported only by TCG. KVM supports them only if the
- host does. So we leave them out:
-
- <feature name='abm'/>
- <feature name='lahf_lm'/>
- <feature name='popcnt'/>
- <feature name='sse4a'/>
- -->
+ <signature family='6' model='6'/>
+ <vendor name='AMD'/>
<feature name='apic'/>
<feature name='clflush'/>
<feature name='cmov'/>
@@ -17,6 +17,7 @@
<feature name='de'/>
<feature name='fpu'/>
<feature name='fxsr'/>
+ <feature name='lahf_lm'/>
<feature name='lm'/>
<feature name='mca'/>
<feature name='mce'/>
--
2.26.2