a41c76
From 8efc803f2180f53f935275a88f5709b80022c1b2 Mon Sep 17 00:00:00 2001
a41c76
Message-Id: <8efc803f2180f53f935275a88f5709b80022c1b2@dist-git>
a41c76
From: Jiri Denemark <jdenemar@redhat.com>
a41c76
Date: Tue, 26 May 2020 10:59:38 +0200
a41c76
Subject: [PATCH] cputest: Add data for Cooperlake CPU
a41c76
MIME-Version: 1.0
a41c76
Content-Type: text/plain; charset=UTF-8
a41c76
Content-Transfer-Encoding: 8bit
a41c76
a41c76
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
a41c76
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
a41c76
(cherry picked from commit 58691208e2063285d981a620873d48ddf8df8be5)
a41c76
a41c76
https://bugzilla.redhat.com/show_bug.cgi?id=1781878
a41c76
a41c76
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
a41c76
Message-Id: <c74a7ac270b786983feaff1712fc49629b461fdc.1590483392.git.jdenemar@redhat.com>
a41c76
Reviewed-by: Ján Tomko <jtomko@redhat.com>
a41c76
---
a41c76
 tests/cputest.c                               |    1 +
a41c76
 .../x86_64-cpuid-Cooperlake-disabled.xml      |    7 +
a41c76
 .../x86_64-cpuid-Cooperlake-enabled.xml       |   11 +
a41c76
 .../x86_64-cpuid-Cooperlake-guest.xml         |   40 +
a41c76
 .../x86_64-cpuid-Cooperlake-host.xml          |   41 +
a41c76
 .../x86_64-cpuid-Cooperlake-json.xml          |   23 +
a41c76
 .../cputestdata/x86_64-cpuid-Cooperlake.json  | 1574 +++++++++++++++++
a41c76
 tests/cputestdata/x86_64-cpuid-Cooperlake.sig |    4 +
a41c76
 tests/cputestdata/x86_64-cpuid-Cooperlake.xml |   68 +
a41c76
 9 files changed, 1769 insertions(+)
a41c76
 create mode 100644 tests/cputestdata/x86_64-cpuid-Cooperlake-disabled.xml
a41c76
 create mode 100644 tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml
a41c76
 create mode 100644 tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml
a41c76
 create mode 100644 tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml
a41c76
 create mode 100644 tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
a41c76
 create mode 100644 tests/cputestdata/x86_64-cpuid-Cooperlake.json
a41c76
 create mode 100644 tests/cputestdata/x86_64-cpuid-Cooperlake.sig
a41c76
 create mode 100644 tests/cputestdata/x86_64-cpuid-Cooperlake.xml
a41c76
a41c76
diff --git a/tests/cputest.c b/tests/cputest.c
a41c76
index 869d016ffc..68e8eb0290 100644
a41c76
--- a/tests/cputest.c
a41c76
+++ b/tests/cputest.c
a41c76
@@ -1272,6 +1272,7 @@ mymain(void)
a41c76
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-W3520", JSON_HOST);
a41c76
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-X5460", JSON_NONE);
a41c76
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Ice-Lake-Server", JSON_MODELS);
a41c76
+    DO_TEST_CPUID(VIR_ARCH_X86_64, "Cooperlake", JSON_MODELS);
a41c76
 
a41c76
  cleanup:
a41c76
 #if WITH_QEMU
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-disabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-disabled.xml
a41c76
new file mode 100644
a41c76
index 0000000000..e7c59cef1e
a41c76
--- /dev/null
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-disabled.xml
a41c76
@@ -0,0 +1,7 @@
a41c76
+
a41c76
+<cpudata arch='x86'>
a41c76
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0804c1dc' edx='0xb0600000'/>
a41c76
+  <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001000' ecx='0x00000010' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000f' ecx_in='0x01' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000006'/>
a41c76
+  <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
a41c76
+</cpudata>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml
a41c76
new file mode 100644
a41c76
index 0000000000..2d7f83c80f
a41c76
--- /dev/null
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml
a41c76
@@ -0,0 +1,11 @@
a41c76
+
a41c76
+<cpudata arch='x86'>
a41c76
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0xf7fa3223' edx='0x0f8bfbff'/>
a41c76
+  <cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x00000004' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0xd19f4fbb' ecx='0x0000080c' edx='0xac000400'/>
a41c76
+  <cpuid eax_in='0x00000007' ecx_in='0x01' eax='0x00000020' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x0000000f' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
a41c76
+  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x01001000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <msr index='0x10a' edx='0x00000000' eax='0x000001eb'/>
a41c76
+</cpudata>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml
a41c76
new file mode 100644
a41c76
index 0000000000..b5137e3c03
a41c76
--- /dev/null
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml
a41c76
@@ -0,0 +1,40 @@
a41c76
+<cpu mode='custom' match='exact'>
a41c76
+  <model fallback='forbid'>Cascadelake-Server</model>
a41c76
+  <vendor>Intel</vendor>
a41c76
+  <feature policy='require' name='ds'/>
a41c76
+  <feature policy='require' name='acpi'/>
a41c76
+  <feature policy='require' name='ss'/>
a41c76
+  <feature policy='require' name='ht'/>
a41c76
+  <feature policy='require' name='tm'/>
a41c76
+  <feature policy='require' name='pbe'/>
a41c76
+  <feature policy='require' name='dtes64'/>
a41c76
+  <feature policy='require' name='monitor'/>
a41c76
+  <feature policy='require' name='ds_cpl'/>
a41c76
+  <feature policy='require' name='vmx'/>
a41c76
+  <feature policy='require' name='smx'/>
a41c76
+  <feature policy='require' name='est'/>
a41c76
+  <feature policy='require' name='tm2'/>
a41c76
+  <feature policy='require' name='xtpr'/>
a41c76
+  <feature policy='require' name='pdcm'/>
a41c76
+  <feature policy='require' name='dca'/>
a41c76
+  <feature policy='require' name='osxsave'/>
a41c76
+  <feature policy='require' name='tsc_adjust'/>
a41c76
+  <feature policy='require' name='cmt'/>
a41c76
+  <feature policy='require' name='intel-pt'/>
a41c76
+  <feature policy='require' name='pku'/>
a41c76
+  <feature policy='require' name='ospke'/>
a41c76
+  <feature policy='require' name='md-clear'/>
a41c76
+  <feature policy='require' name='stibp'/>
a41c76
+  <feature policy='require' name='arch-capabilities'/>
a41c76
+  <feature policy='require' name='avx512-bf16'/>
a41c76
+  <feature policy='require' name='xsaves'/>
a41c76
+  <feature policy='require' name='mbm_total'/>
a41c76
+  <feature policy='require' name='mbm_local'/>
a41c76
+  <feature policy='require' name='invtsc'/>
a41c76
+  <feature policy='require' name='rdctl-no'/>
a41c76
+  <feature policy='require' name='ibrs-all'/>
a41c76
+  <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
+  <feature policy='require' name='mds-no'/>
a41c76
+  <feature policy='require' name='tsx-ctrl'/>
a41c76
+  <feature policy='require' name='taa-no'/>
a41c76
+</cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml
a41c76
new file mode 100644
a41c76
index 0000000000..52b352f4f1
a41c76
--- /dev/null
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml
a41c76
@@ -0,0 +1,41 @@
a41c76
+<cpu>
a41c76
+  <arch>x86_64</arch>
a41c76
+  <model>Cascadelake-Server</model>
a41c76
+  <vendor>Intel</vendor>
a41c76
+  <feature name='ds'/>
a41c76
+  <feature name='acpi'/>
a41c76
+  <feature name='ss'/>
a41c76
+  <feature name='ht'/>
a41c76
+  <feature name='tm'/>
a41c76
+  <feature name='pbe'/>
a41c76
+  <feature name='dtes64'/>
a41c76
+  <feature name='monitor'/>
a41c76
+  <feature name='ds_cpl'/>
a41c76
+  <feature name='vmx'/>
a41c76
+  <feature name='smx'/>
a41c76
+  <feature name='est'/>
a41c76
+  <feature name='tm2'/>
a41c76
+  <feature name='xtpr'/>
a41c76
+  <feature name='pdcm'/>
a41c76
+  <feature name='dca'/>
a41c76
+  <feature name='osxsave'/>
a41c76
+  <feature name='tsc_adjust'/>
a41c76
+  <feature name='cmt'/>
a41c76
+  <feature name='intel-pt'/>
a41c76
+  <feature name='pku'/>
a41c76
+  <feature name='ospke'/>
a41c76
+  <feature name='md-clear'/>
a41c76
+  <feature name='stibp'/>
a41c76
+  <feature name='arch-capabilities'/>
a41c76
+  <feature name='avx512-bf16'/>
a41c76
+  <feature name='xsaves'/>
a41c76
+  <feature name='mbm_total'/>
a41c76
+  <feature name='mbm_local'/>
a41c76
+  <feature name='invtsc'/>
a41c76
+  <feature name='rdctl-no'/>
a41c76
+  <feature name='ibrs-all'/>
a41c76
+  <feature name='skip-l1dfl-vmentry'/>
a41c76
+  <feature name='mds-no'/>
a41c76
+  <feature name='tsx-ctrl'/>
a41c76
+  <feature name='taa-no'/>
a41c76
+</cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
a41c76
new file mode 100644
a41c76
index 0000000000..e323d6205e
a41c76
--- /dev/null
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
a41c76
@@ -0,0 +1,23 @@
a41c76
+<cpu mode='custom' match='exact'>
a41c76
+  <model fallback='forbid'>Cascadelake-Server</model>
a41c76
+  <vendor>Intel</vendor>
a41c76
+  <feature policy='require' name='ss'/>
a41c76
+  <feature policy='require' name='vmx'/>
a41c76
+  <feature policy='require' name='hypervisor'/>
a41c76
+  <feature policy='require' name='tsc_adjust'/>
a41c76
+  <feature policy='require' name='umip'/>
a41c76
+  <feature policy='require' name='pku'/>
a41c76
+  <feature policy='require' name='md-clear'/>
a41c76
+  <feature policy='require' name='stibp'/>
a41c76
+  <feature policy='require' name='arch-capabilities'/>
a41c76
+  <feature policy='require' name='avx512-bf16'/>
a41c76
+  <feature policy='require' name='xsaves'/>
a41c76
+  <feature policy='require' name='ibpb'/>
a41c76
+  <feature policy='require' name='amd-ssbd'/>
a41c76
+  <feature policy='require' name='rdctl-no'/>
a41c76
+  <feature policy='require' name='ibrs-all'/>
a41c76
+  <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
+  <feature policy='require' name='mds-no'/>
a41c76
+  <feature policy='require' name='tsx-ctrl'/>
a41c76
+  <feature policy='require' name='taa-no'/>
a41c76
+</cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake.json b/tests/cputestdata/x86_64-cpuid-Cooperlake.json
a41c76
new file mode 100644
a41c76
index 0000000000..fd407affb6
a41c76
--- /dev/null
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake.json
a41c76
@@ -0,0 +1,1574 @@
a41c76
+{
a41c76
+  "return": {
a41c76
+    "model": {
a41c76
+      "name": "base",
a41c76
+      "props": {
a41c76
+        "phys-bits": 0,
a41c76
+        "vmx-entry-load-rtit-ctl": false,
a41c76
+        "core-id": -1,
a41c76
+        "xlevel": 2147483656,
a41c76
+        "cmov": true,
a41c76
+        "ia64": false,
a41c76
+        "ssb-no": false,
a41c76
+        "aes": true,
a41c76
+        "vmx-apicv-xapic": true,
a41c76
+        "mmx": true,
a41c76
+        "rdpid": false,
a41c76
+        "vmx-page-walk-5": false,
a41c76
+        "vmx-page-walk-4": true,
a41c76
+        "arat": true,
a41c76
+        "gfni": false,
a41c76
+        "vmx-desc-exit": true,
a41c76
+        "ibrs-all": true,
a41c76
+        "pause-filter": false,
a41c76
+        "xsavec": true,
a41c76
+        "intel-pt": false,
a41c76
+        "vmx-cr8-store-exit": true,
a41c76
+        "hv-frequencies": false,
a41c76
+        "tsc-frequency": 0,
a41c76
+        "vmx-rdseed-exit": true,
a41c76
+        "xd": true,
a41c76
+        "x-intel-pt-auto-level": true,
a41c76
+        "hv-vendor-id": "",
a41c76
+        "vmx-eptp-switching": true,
a41c76
+        "kvm-asyncpf": true,
a41c76
+        "kvm_asyncpf": true,
a41c76
+        "perfctr_core": false,
a41c76
+        "perfctr-core": false,
a41c76
+        "mpx": true,
a41c76
+        "pbe": false,
a41c76
+        "decodeassists": false,
a41c76
+        "avx512cd": true,
a41c76
+        "vmx-exit-load-efer": true,
a41c76
+        "vmx-exit-clear-bndcfgs": false,
a41c76
+        "sse4_1": true,
a41c76
+        "sse4.1": true,
a41c76
+        "sse4-1": true,
a41c76
+        "legacy-cache": true,
a41c76
+        "family": 6,
a41c76
+        "vmx-vmwrite-vmexit-fields": true,
a41c76
+        "vmx-vnmi": true,
a41c76
+        "vmx-true-ctls": true,
a41c76
+        "host-phys-bits-limit": 0,
a41c76
+        "vmx-ept-execonly": true,
a41c76
+        "vmx-exit-save-efer": true,
a41c76
+        "vmx-invept-all-context": true,
a41c76
+        "vmware-cpuid-freq": true,
a41c76
+        "wbnoinvd": false,
a41c76
+        "avx512f": true,
a41c76
+        "hv-runtime": false,
a41c76
+        "hv-stimer-direct": false,
a41c76
+        "msr": true,
a41c76
+        "mce": true,
a41c76
+        "mca": true,
a41c76
+        "xcrypt": false,
a41c76
+        "thread-id": -1,
a41c76
+        "vmx-exit-load-pat": true,
a41c76
+        "vmx-intr-exit": true,
a41c76
+        "min-level": 31,
a41c76
+        "vmx-flexpriority": true,
a41c76
+        "xgetbv1": true,
a41c76
+        "cid": false,
a41c76
+        "hv-relaxed": false,
a41c76
+        "hv-crash": false,
a41c76
+        "ds": false,
a41c76
+        "fxsr": true,
a41c76
+        "avx512-bf16": true,
a41c76
+        "vmx-cr8-load-exit": true,
a41c76
+        "xsaveopt": true,
a41c76
+        "vmx-apicv-vid": true,
a41c76
+        "vmx-exit-save-pat": true,
a41c76
+        "xtpr": false,
a41c76
+        "tsx-ctrl": true,
a41c76
+        "vmx-ple": false,
a41c76
+        "hv-evmcs": false,
a41c76
+        "avx512vl": true,
a41c76
+        "avx512-vpopcntdq": false,
a41c76
+        "phe": false,
a41c76
+        "extapic": false,
a41c76
+        "3dnowprefetch": true,
a41c76
+        "vmx-vmfunc": true,
a41c76
+        "vmx-activity-shutdown": false,
a41c76
+        "avx512vbmi2": false,
a41c76
+        "vmx-encls-exit": false,
a41c76
+        "cr8legacy": false,
a41c76
+        "vmx-msr-bitmap": true,
a41c76
+        "stibp": true,
a41c76
+        "cpuid-0xb": true,
a41c76
+        "xcrypt-en": false,
a41c76
+        "vmx-mwait-exit": true,
a41c76
+        "kvm_pv_eoi": true,
a41c76
+        "vmx-pml": true,
a41c76
+        "apic-id": 4294967295,
a41c76
+        "vmx-nmi-exit": true,
a41c76
+        "vmx-invept-single-context-noglobals": true,
a41c76
+        "rsba": false,
a41c76
+        "pn": false,
a41c76
+        "dca": false,
a41c76
+        "hv-ipi": false,
a41c76
+        "vendor": "GenuineIntel",
a41c76
+        "vmx-unrestricted-guest": true,
a41c76
+        "vmx-cr3-store-noexit": true,
a41c76
+        "pku": true,
a41c76
+        "smx": false,
a41c76
+        "cmp_legacy": false,
a41c76
+        "cmp-legacy": false,
a41c76
+        "node-id": -1,
a41c76
+        "avx512-4fmaps": false,
a41c76
+        "vmcb_clean": false,
a41c76
+        "vmcb-clean": false,
a41c76
+        "3dnowext": false,
a41c76
+        "amd-no-ssb": false,
a41c76
+        "hle": true,
a41c76
+        "npt": false,
a41c76
+        "rdctl-no": true,
a41c76
+        "vmx-invvpid": true,
a41c76
+        "memory": "/machine/unattached/system[0]",
a41c76
+        "clwb": true,
a41c76
+        "lbrv": false,
a41c76
+        "adx": true,
a41c76
+        "ss": true,
a41c76
+        "pni": true,
a41c76
+        "svm_lock": false,
a41c76
+        "svm-lock": false,
a41c76
+        "pfthreshold": false,
a41c76
+        "smep": true,
a41c76
+        "smap": true,
a41c76
+        "vmx-invpcid-exit": true,
a41c76
+        "x2apic": true,
a41c76
+        "avx512vbmi": false,
a41c76
+        "avx512vnni": true,
a41c76
+        "vmx-apicv-x2apic": true,
a41c76
+        "hv-stimer": false,
a41c76
+        "kvm-pv-sched-yield": true,
a41c76
+        "x-hv-synic-kvm-only": false,
a41c76
+        "vmx-invlpg-exit": true,
a41c76
+        "vmx-invvpid-all-context": true,
a41c76
+        "i64": true,
a41c76
+        "vmx-activity-hlt": true,
a41c76
+        "flushbyasid": false,
a41c76
+        "f16c": true,
a41c76
+        "vmx-exit-ack-intr": true,
a41c76
+        "ace2-en": false,
a41c76
+        "pat": true,
a41c76
+        "pae": true,
a41c76
+        "sse": true,
a41c76
+        "die-id": -1,
a41c76
+        "vmx-tsc-offset": true,
a41c76
+        "phe-en": false,
a41c76
+        "kvm_nopiodelay": true,
a41c76
+        "kvm-nopiodelay": true,
a41c76
+        "tm": false,
a41c76
+        "kvmclock-stable-bit": true,
a41c76
+        "vmx-rdtsc-exit": true,
a41c76
+        "hypervisor": true,
a41c76
+        "vmx-rdtscp-exit": true,
a41c76
+        "socket-id": -1,
a41c76
+        "mds-no": true,
a41c76
+        "pcommit": false,
a41c76
+        "vmx-vpid": true,
a41c76
+        "syscall": true,
a41c76
+        "level": 31,
a41c76
+        "x-migrate-smi-count": true,
a41c76
+        "avx512dq": true,
a41c76
+        "svm": false,
a41c76
+        "full-cpuid-auto-level": true,
a41c76
+        "hv-reset": false,
a41c76
+        "invtsc": false,
a41c76
+        "vmx-monitor-exit": true,
a41c76
+        "sse3": true,
a41c76
+        "sse2": true,
a41c76
+        "vmx-wbinvd-exit": true,
a41c76
+        "ssbd": true,
a41c76
+        "est": false,
a41c76
+        "kvm-poll-control": true,
a41c76
+        "kvm_poll_control": true,
a41c76
+        "avx512ifma": false,
a41c76
+        "tm2": false,
a41c76
+        "kvm-pv-ipi": true,
a41c76
+        "kvm-pv-eoi": true,
a41c76
+        "cx8": true,
a41c76
+        "vmx-invvpid-single-addr": true,
a41c76
+        "waitpkg": false,
a41c76
+        "cldemote": false,
a41c76
+        "vmx-ept": true,
a41c76
+        "hv-reenlightenment": false,
a41c76
+        "kvm_mmu": false,
a41c76
+        "kvm-mmu": false,
a41c76
+        "sse4_2": true,
a41c76
+        "sse4.2": true,
a41c76
+        "sse4-2": true,
a41c76
+        "pge": true,
a41c76
+        "fill-mtrr-mask": true,
a41c76
+        "avx512bitalg": false,
a41c76
+        "nodeid_msr": false,
a41c76
+        "vmx-entry-load-bndcfgs": false,
a41c76
+        "pdcm": false,
a41c76
+        "vmx-exit-clear-rtit-ctl": false,
a41c76
+        "movbe": true,
a41c76
+        "model": 85,
a41c76
+        "nrip_save": false,
a41c76
+        "nrip-save": false,
a41c76
+        "kvm_pv_unhalt": true,
a41c76
+        "ssse3": true,
a41c76
+        "sse4a": false,
a41c76
+        "vmx-pause-exit": true,
a41c76
+        "invpcid": true,
a41c76
+        "pdpe1gb": true,
a41c76
+        "tsc-deadline": true,
a41c76
+        "skip-l1dfl-vmentry": true,
a41c76
+        "vmx-exit-load-perf-global-ctrl": false,
a41c76
+        "fma": true,
a41c76
+        "cx16": true,
a41c76
+        "de": true,
a41c76
+        "enforce": false,
a41c76
+        "stepping": 11,
a41c76
+        "xsave": true,
a41c76
+        "clflush": true,
a41c76
+        "skinit": false,
a41c76
+        "tce": false,
a41c76
+        "tsc": true,
a41c76
+        "fpu": true,
a41c76
+        "ibs": false,
a41c76
+        "ds_cpl": false,
a41c76
+        "ds-cpl": false,
a41c76
+        "host-phys-bits": false,
a41c76
+        "vmx-exit-nosave-debugctl": true,
a41c76
+        "fma4": false,
a41c76
+        "vmx-invept": true,
a41c76
+        "la57": false,
a41c76
+        "osvw": false,
a41c76
+        "check": true,
a41c76
+        "hv-spinlocks": 4294967295,
a41c76
+        "pmu": false,
a41c76
+        "vmx-eptad": true,
a41c76
+        "pmm": false,
a41c76
+        "apic": true,
a41c76
+        "vmx-entry-noload-debugctl": true,
a41c76
+        "spec-ctrl": true,
a41c76
+        "vmx-posted-intr": true,
a41c76
+        "vmx-apicv-register": true,
a41c76
+        "min-xlevel2": 0,
a41c76
+        "tsc-adjust": true,
a41c76
+        "tsc_adjust": true,
a41c76
+        "kvm-steal-time": true,
a41c76
+        "kvm_steal_time": true,
a41c76
+        "vmx-zero-len-inject": false,
a41c76
+        "kvmclock": true,
a41c76
+        "l3-cache": true,
a41c76
+        "pschange-mc-no": true,
a41c76
+        "vmx-rdrand-exit": true,
a41c76
+        "lwp": false,
a41c76
+        "hv-passthrough": false,
a41c76
+        "amd-ssbd": true,
a41c76
+        "ibpb": true,
a41c76
+        "xop": false,
a41c76
+        "avx": true,
a41c76
+        "core-capability": false,
a41c76
+        "vmx-invept-single-context": true,
a41c76
+        "movdiri": false,
a41c76
+        "ace2": false,
a41c76
+        "avx512bw": true,
a41c76
+        "acpi": false,
a41c76
+        "hv-vapic": false,
a41c76
+        "fsgsbase": true,
a41c76
+        "vmx-ept-1gb": true,
a41c76
+        "vmx-ept-2mb": true,
a41c76
+        "ht": false,
a41c76
+        "vmx-io-exit": true,
a41c76
+        "nx": true,
a41c76
+        "pclmulqdq": true,
a41c76
+        "mmxext": false,
a41c76
+        "vaes": false,
a41c76
+        "popcnt": true,
a41c76
+        "xsaves": true,
a41c76
+        "movdir64b": false,
a41c76
+        "tcg-cpuid": true,
a41c76
+        "vmx-shadow-vmcs": true,
a41c76
+        "lm": true,
a41c76
+        "vmx-exit-save-preemption-timer": true,
a41c76
+        "vmx-entry-load-pat": true,
a41c76
+        "vmx-entry-load-perf-global-ctrl": false,
a41c76
+        "vmx-io-bitmap": true,
a41c76
+        "umip": true,
a41c76
+        "vmx-store-lma": true,
a41c76
+        "vmx-movdr-exit": true,
a41c76
+        "pse": true,
a41c76
+        "avx2": true,
a41c76
+        "sep": true,
a41c76
+        "pclmuldq": true,
a41c76
+        "virt-ssbd": false,
a41c76
+        "vmx-cr3-load-noexit": true,
a41c76
+        "x-hv-max-vps": -1,
a41c76
+        "nodeid-msr": false,
a41c76
+        "md-clear": true,
a41c76
+        "kvm": true,
a41c76
+        "split-lock-detect": false,
a41c76
+        "misalignsse": false,
a41c76
+        "min-xlevel": 2147483656,
a41c76
+        "realized": false,
a41c76
+        "kvm-pv-unhalt": true,
a41c76
+        "bmi2": true,
a41c76
+        "bmi1": true,
a41c76
+        "tsc_scale": false,
a41c76
+        "tsc-scale": false,
a41c76
+        "topoext": false,
a41c76
+        "hv-no-nonarch-coresharing": "off",
a41c76
+        "hv-vpindex": false,
a41c76
+        "amd-stibp": true,
a41c76
+        "ucode-rev": 0,
a41c76
+        "vmx-preemption-timer": true,
a41c76
+        "xlevel2": 0,
a41c76
+        "clflushopt": true,
a41c76
+        "vmx-vnmi-pending": true,
a41c76
+        "kvm-no-smi-migration": false,
a41c76
+        "monitor": false,
a41c76
+        "vmx-vintr-pending": true,
a41c76
+        "avx512er": false,
a41c76
+        "pmm-en": false,
a41c76
+        "pcid": true,
a41c76
+        "taa-no": true,
a41c76
+        "vmx-secondary-ctls": true,
a41c76
+        "arch-capabilities": true,
a41c76
+        "vmx-xsaves": true,
a41c76
+        "clzero": false,
a41c76
+        "3dnow": false,
a41c76
+        "erms": true,
a41c76
+        "x-force-features": false,
a41c76
+        "vmx-entry-ia32e-mode": true,
a41c76
+        "lahf-lm": true,
a41c76
+        "lahf_lm": true,
a41c76
+        "vpclmulqdq": false,
a41c76
+        "vmx-ins-outs": true,
a41c76
+        "hv-synic": false,
a41c76
+        "fxsr-opt": false,
a41c76
+        "xstore": false,
a41c76
+        "fxsr_opt": false,
a41c76
+        "kvm-hint-dedicated": false,
a41c76
+        "rtm": true,
a41c76
+        "lmce": true,
a41c76
+        "hv-time": false,
a41c76
+        "perfctr-nb": false,
a41c76
+        "perfctr_nb": false,
a41c76
+        "hv-tlbflush": false,
a41c76
+        "ffxsr": false,
a41c76
+        "rdrand": true,
a41c76
+        "rdseed": true,
a41c76
+        "avx512-4vnniw": false,
a41c76
+        "vmx": true,
a41c76
+        "vme": true,
a41c76
+        "dtes64": false,
a41c76
+        "mtrr": true,
a41c76
+        "rdtscp": true,
a41c76
+        "xsaveerptr": false,
a41c76
+        "pse36": true,
a41c76
+        "kvm-pv-tlb-flush": true,
a41c76
+        "vmx-activity-wait-sipi": false,
a41c76
+        "tbm": false,
a41c76
+        "wdt": false,
a41c76
+        "vmx-rdpmc-exit": true,
a41c76
+        "level-func7": 1,
a41c76
+        "vmx-entry-load-efer": true,
a41c76
+        "vmx-mtf": true,
a41c76
+        "pause_filter": false,
a41c76
+        "sha-ni": false,
a41c76
+        "model-id": "Genuine Intel(R) CPU 0000%@",
a41c76
+        "abm": true,
a41c76
+        "vmx-ept-advanced-exitinfo": false,
a41c76
+        "avx512pf": false,
a41c76
+        "vmx-hlt-exit": true,
a41c76
+        "xstore-en": false
a41c76
+      }
a41c76
+    }
a41c76
+  },
a41c76
+  "id": "model-expansion"
a41c76
+}
a41c76
+
a41c76
+{
a41c76
+  "return": [
a41c76
+    {
a41c76
+      "name": "max",
a41c76
+      "typename": "max-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": false
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "host",
a41c76
+      "typename": "host-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": false
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "base",
a41c76
+      "typename": "base-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": true,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "qemu64-v1",
a41c76
+      "typename": "qemu64-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "qemu64",
a41c76
+      "typename": "qemu64-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "qemu64-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "qemu32-v1",
a41c76
+      "typename": "qemu32-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "qemu32",
a41c76
+      "typename": "qemu32-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "qemu32-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "phenom-v1",
a41c76
+      "typename": "phenom-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "3dnowext",
a41c76
+        "3dnow",
a41c76
+        "sse4a",
a41c76
+        "npt"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "phenom",
a41c76
+      "typename": "phenom-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "3dnowext",
a41c76
+        "3dnow",
a41c76
+        "sse4a",
a41c76
+        "npt"
a41c76
+      ],
a41c76
+      "alias-of": "phenom-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "pentium3-v1",
a41c76
+      "typename": "pentium3-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "pentium3",
a41c76
+      "typename": "pentium3-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "pentium3-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "pentium2-v1",
a41c76
+      "typename": "pentium2-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "pentium2",
a41c76
+      "typename": "pentium2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "pentium2-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "pentium-v1",
a41c76
+      "typename": "pentium-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "pentium",
a41c76
+      "typename": "pentium-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "pentium-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "n270-v1",
a41c76
+      "typename": "n270-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "n270",
a41c76
+      "typename": "n270-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "n270-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "kvm64-v1",
a41c76
+      "typename": "kvm64-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "kvm64",
a41c76
+      "typename": "kvm64-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "kvm64-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "kvm32-v1",
a41c76
+      "typename": "kvm32-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "kvm32",
a41c76
+      "typename": "kvm32-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "kvm32-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "coreduo-v1",
a41c76
+      "typename": "coreduo-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "coreduo",
a41c76
+      "typename": "coreduo-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "coreduo-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "core2duo-v1",
a41c76
+      "typename": "core2duo-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "core2duo",
a41c76
+      "typename": "core2duo-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "core2duo-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "athlon-v1",
a41c76
+      "typename": "athlon-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "mmxext",
a41c76
+        "3dnowext",
a41c76
+        "3dnow"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "athlon",
a41c76
+      "typename": "athlon-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "mmxext",
a41c76
+        "3dnowext",
a41c76
+        "3dnow"
a41c76
+      ],
a41c76
+      "alias-of": "athlon-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Westmere-v2",
a41c76
+      "typename": "Westmere-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Westmere-v1",
a41c76
+      "typename": "Westmere-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Westmere-IBRS",
a41c76
+      "typename": "Westmere-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Westmere-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Westmere",
a41c76
+      "typename": "Westmere-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Westmere-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Snowridge-v2",
a41c76
+      "typename": "Snowridge-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni",
a41c76
+        "gfni",
a41c76
+        "cldemote",
a41c76
+        "movdiri",
a41c76
+        "movdir64b",
a41c76
+        "core-capability",
a41c76
+        "split-lock-detect"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Snowridge-v1",
a41c76
+      "typename": "Snowridge-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni",
a41c76
+        "gfni",
a41c76
+        "cldemote",
a41c76
+        "movdiri",
a41c76
+        "movdir64b",
a41c76
+        "core-capability",
a41c76
+        "split-lock-detect"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Snowridge",
a41c76
+      "typename": "Snowridge-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni",
a41c76
+        "gfni",
a41c76
+        "cldemote",
a41c76
+        "movdiri",
a41c76
+        "movdir64b",
a41c76
+        "core-capability",
a41c76
+        "split-lock-detect"
a41c76
+      ],
a41c76
+      "alias-of": "Snowridge-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Server-v3",
a41c76
+      "typename": "Skylake-Server-v3-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Server-v2",
a41c76
+      "typename": "Skylake-Server-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Server-v1",
a41c76
+      "typename": "Skylake-Server-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Server-noTSX-IBRS",
a41c76
+      "typename": "Skylake-Server-noTSX-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Skylake-Server-v3",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Server-IBRS",
a41c76
+      "typename": "Skylake-Server-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Skylake-Server-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Server",
a41c76
+      "typename": "Skylake-Server-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Skylake-Server-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Client-v3",
a41c76
+      "typename": "Skylake-Client-v3-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Client-v2",
a41c76
+      "typename": "Skylake-Client-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Client-v1",
a41c76
+      "typename": "Skylake-Client-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Client-noTSX-IBRS",
a41c76
+      "typename": "Skylake-Client-noTSX-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Skylake-Client-v3",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Client-IBRS",
a41c76
+      "typename": "Skylake-Client-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Skylake-Client-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Skylake-Client",
a41c76
+      "typename": "Skylake-Client-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Skylake-Client-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "SandyBridge-v2",
a41c76
+      "typename": "SandyBridge-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "SandyBridge-v1",
a41c76
+      "typename": "SandyBridge-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "SandyBridge-IBRS",
a41c76
+      "typename": "SandyBridge-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "SandyBridge-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "SandyBridge",
a41c76
+      "typename": "SandyBridge-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "SandyBridge-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Penryn-v1",
a41c76
+      "typename": "Penryn-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Penryn",
a41c76
+      "typename": "Penryn-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Penryn-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Opteron_G5-v1",
a41c76
+      "typename": "Opteron_G5-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "xop",
a41c76
+        "fma4",
a41c76
+        "tbm",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Opteron_G5",
a41c76
+      "typename": "Opteron_G5-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "xop",
a41c76
+        "fma4",
a41c76
+        "tbm",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "alias-of": "Opteron_G5-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Opteron_G4-v1",
a41c76
+      "typename": "Opteron_G4-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "xop",
a41c76
+        "fma4",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Opteron_G4",
a41c76
+      "typename": "Opteron_G4-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "xop",
a41c76
+        "fma4",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "alias-of": "Opteron_G4-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Opteron_G3-v1",
a41c76
+      "typename": "Opteron_G3-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sse4a",
a41c76
+        "misalignsse"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Opteron_G3",
a41c76
+      "typename": "Opteron_G3-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sse4a",
a41c76
+        "misalignsse"
a41c76
+      ],
a41c76
+      "alias-of": "Opteron_G3-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Opteron_G2-v1",
a41c76
+      "typename": "Opteron_G2-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Opteron_G2",
a41c76
+      "typename": "Opteron_G2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Opteron_G2-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Opteron_G1-v1",
a41c76
+      "typename": "Opteron_G1-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Opteron_G1",
a41c76
+      "typename": "Opteron_G1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Opteron_G1-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Nehalem-v2",
a41c76
+      "typename": "Nehalem-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Nehalem-v1",
a41c76
+      "typename": "Nehalem-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Nehalem-IBRS",
a41c76
+      "typename": "Nehalem-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Nehalem-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Nehalem",
a41c76
+      "typename": "Nehalem-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Nehalem-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "KnightsMill-v1",
a41c76
+      "typename": "KnightsMill-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512pf",
a41c76
+        "avx512er",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "avx512-4vnniw",
a41c76
+        "avx512-4fmaps"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "KnightsMill",
a41c76
+      "typename": "KnightsMill-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512pf",
a41c76
+        "avx512er",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "avx512-4vnniw",
a41c76
+        "avx512-4fmaps"
a41c76
+      ],
a41c76
+      "alias-of": "KnightsMill-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "IvyBridge-v2",
a41c76
+      "typename": "IvyBridge-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "IvyBridge-v1",
a41c76
+      "typename": "IvyBridge-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "IvyBridge-IBRS",
a41c76
+      "typename": "IvyBridge-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "IvyBridge-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "IvyBridge",
a41c76
+      "typename": "IvyBridge-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "IvyBridge-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Icelake-Server-v3",
a41c76
+      "typename": "Icelake-Server-v3-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512vbmi",
a41c76
+        "avx512vbmi2",
a41c76
+        "gfni",
a41c76
+        "vaes",
a41c76
+        "vpclmulqdq",
a41c76
+        "avx512bitalg",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "la57",
a41c76
+        "wbnoinvd"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Icelake-Server-v2",
a41c76
+      "typename": "Icelake-Server-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512vbmi",
a41c76
+        "avx512vbmi2",
a41c76
+        "gfni",
a41c76
+        "vaes",
a41c76
+        "vpclmulqdq",
a41c76
+        "avx512bitalg",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "la57",
a41c76
+        "wbnoinvd"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Icelake-Server-v1",
a41c76
+      "typename": "Icelake-Server-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512vbmi",
a41c76
+        "avx512vbmi2",
a41c76
+        "gfni",
a41c76
+        "vaes",
a41c76
+        "vpclmulqdq",
a41c76
+        "avx512bitalg",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "la57",
a41c76
+        "wbnoinvd"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Icelake-Server-noTSX",
a41c76
+      "typename": "Icelake-Server-noTSX-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512vbmi",
a41c76
+        "avx512vbmi2",
a41c76
+        "gfni",
a41c76
+        "vaes",
a41c76
+        "vpclmulqdq",
a41c76
+        "avx512bitalg",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "la57",
a41c76
+        "wbnoinvd"
a41c76
+      ],
a41c76
+      "alias-of": "Icelake-Server-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Icelake-Server",
a41c76
+      "typename": "Icelake-Server-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512vbmi",
a41c76
+        "avx512vbmi2",
a41c76
+        "gfni",
a41c76
+        "vaes",
a41c76
+        "vpclmulqdq",
a41c76
+        "avx512bitalg",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "la57",
a41c76
+        "wbnoinvd"
a41c76
+      ],
a41c76
+      "alias-of": "Icelake-Server-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Icelake-Client-v2",
a41c76
+      "typename": "Icelake-Client-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512vbmi",
a41c76
+        "avx512vbmi2",
a41c76
+        "gfni",
a41c76
+        "vaes",
a41c76
+        "vpclmulqdq",
a41c76
+        "avx512bitalg",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "wbnoinvd"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Icelake-Client-v1",
a41c76
+      "typename": "Icelake-Client-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512vbmi",
a41c76
+        "avx512vbmi2",
a41c76
+        "gfni",
a41c76
+        "vaes",
a41c76
+        "vpclmulqdq",
a41c76
+        "avx512bitalg",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "wbnoinvd"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Icelake-Client-noTSX",
a41c76
+      "typename": "Icelake-Client-noTSX-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512vbmi",
a41c76
+        "avx512vbmi2",
a41c76
+        "gfni",
a41c76
+        "vaes",
a41c76
+        "vpclmulqdq",
a41c76
+        "avx512bitalg",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "wbnoinvd"
a41c76
+      ],
a41c76
+      "alias-of": "Icelake-Client-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Icelake-Client",
a41c76
+      "typename": "Icelake-Client-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "avx512vbmi",
a41c76
+        "avx512vbmi2",
a41c76
+        "gfni",
a41c76
+        "vaes",
a41c76
+        "vpclmulqdq",
a41c76
+        "avx512bitalg",
a41c76
+        "avx512-vpopcntdq",
a41c76
+        "wbnoinvd"
a41c76
+      ],
a41c76
+      "alias-of": "Icelake-Client-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Haswell-v4",
a41c76
+      "typename": "Haswell-v4-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Haswell-v3",
a41c76
+      "typename": "Haswell-v3-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Haswell-v2",
a41c76
+      "typename": "Haswell-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Haswell-v1",
a41c76
+      "typename": "Haswell-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Haswell-noTSX-IBRS",
a41c76
+      "typename": "Haswell-noTSX-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Haswell-v4",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Haswell-noTSX",
a41c76
+      "typename": "Haswell-noTSX-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Haswell-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Haswell-IBRS",
a41c76
+      "typename": "Haswell-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Haswell-v3",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Haswell",
a41c76
+      "typename": "Haswell-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Haswell-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "EPYC-v3",
a41c76
+      "typename": "EPYC-v3-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni",
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "cr8legacy",
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "osvw",
a41c76
+        "perfctr-core",
a41c76
+        "clzero",
a41c76
+        "xsaveerptr",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "EPYC-v2",
a41c76
+      "typename": "EPYC-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni",
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "cr8legacy",
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "osvw",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "EPYC-v1",
a41c76
+      "typename": "EPYC-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni",
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "cr8legacy",
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "osvw",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "EPYC-Rome-v1",
a41c76
+      "typename": "EPYC-Rome-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni",
a41c76
+        "rdpid",
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "cr8legacy",
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "osvw",
a41c76
+        "perfctr-core",
a41c76
+        "clzero",
a41c76
+        "xsaveerptr",
a41c76
+        "wbnoinvd",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "EPYC-Rome",
a41c76
+      "typename": "EPYC-Rome-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni",
a41c76
+        "rdpid",
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "cr8legacy",
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "osvw",
a41c76
+        "perfctr-core",
a41c76
+        "clzero",
a41c76
+        "xsaveerptr",
a41c76
+        "wbnoinvd",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "alias-of": "EPYC-Rome-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "EPYC-IBPB",
a41c76
+      "typename": "EPYC-IBPB-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni",
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "cr8legacy",
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "osvw",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "alias-of": "EPYC-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "EPYC",
a41c76
+      "typename": "EPYC-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni",
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "cr8legacy",
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "osvw",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "alias-of": "EPYC-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Dhyana-v1",
a41c76
+      "typename": "Dhyana-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "cr8legacy",
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "osvw",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Dhyana",
a41c76
+      "typename": "Dhyana-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "mmxext",
a41c76
+        "fxsr-opt",
a41c76
+        "cr8legacy",
a41c76
+        "sse4a",
a41c76
+        "misalignsse",
a41c76
+        "osvw",
a41c76
+        "npt",
a41c76
+        "nrip-save"
a41c76
+      ],
a41c76
+      "alias-of": "Dhyana-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Denverton-v2",
a41c76
+      "typename": "Denverton-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Denverton-v1",
a41c76
+      "typename": "Denverton-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni"
a41c76
+      ],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Denverton",
a41c76
+      "typename": "Denverton-x86_64-cpu",
a41c76
+      "unavailable-features": [
a41c76
+        "sha-ni"
a41c76
+      ],
a41c76
+      "alias-of": "Denverton-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Cooperlake-v1",
a41c76
+      "typename": "Cooperlake-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Cooperlake",
a41c76
+      "typename": "Cooperlake-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Cooperlake-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Conroe-v1",
a41c76
+      "typename": "Conroe-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Conroe",
a41c76
+      "typename": "Conroe-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Conroe-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Cascadelake-Server-v3",
a41c76
+      "typename": "Cascadelake-Server-v3-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Cascadelake-Server-v2",
a41c76
+      "typename": "Cascadelake-Server-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Cascadelake-Server-v1",
a41c76
+      "typename": "Cascadelake-Server-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Cascadelake-Server-noTSX",
a41c76
+      "typename": "Cascadelake-Server-noTSX-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Cascadelake-Server-v3",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Cascadelake-Server",
a41c76
+      "typename": "Cascadelake-Server-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Cascadelake-Server-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Broadwell-v4",
a41c76
+      "typename": "Broadwell-v4-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Broadwell-v3",
a41c76
+      "typename": "Broadwell-v3-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Broadwell-v2",
a41c76
+      "typename": "Broadwell-v2-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Broadwell-v1",
a41c76
+      "typename": "Broadwell-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Broadwell-noTSX-IBRS",
a41c76
+      "typename": "Broadwell-noTSX-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Broadwell-v4",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Broadwell-noTSX",
a41c76
+      "typename": "Broadwell-noTSX-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Broadwell-v2",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Broadwell-IBRS",
a41c76
+      "typename": "Broadwell-IBRS-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Broadwell-v3",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "Broadwell",
a41c76
+      "typename": "Broadwell-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "Broadwell-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "486-v1",
a41c76
+      "typename": "486-v1-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    },
a41c76
+    {
a41c76
+      "name": "486",
a41c76
+      "typename": "486-x86_64-cpu",
a41c76
+      "unavailable-features": [],
a41c76
+      "alias-of": "486-v1",
a41c76
+      "static": false,
a41c76
+      "migration-safe": true
a41c76
+    }
a41c76
+  ],
a41c76
+  "id": "definitions"
a41c76
+}
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake.sig b/tests/cputestdata/x86_64-cpuid-Cooperlake.sig
a41c76
new file mode 100644
a41c76
index 0000000000..72a8da4132
a41c76
--- /dev/null
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake.sig
a41c76
@@ -0,0 +1,4 @@
a41c76
+05065b
a41c76
+family:     6 (0x06)
a41c76
+model:     85 (0x55)
a41c76
+stepping:  11 (0x0b)
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake.xml
a41c76
new file mode 100644
a41c76
index 0000000000..96d364b303
a41c76
--- /dev/null
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake.xml
a41c76
@@ -0,0 +1,68 @@
a41c76
+
a41c76
+<cpudata arch='x86'>
a41c76
+  <cpuid eax_in='0x00000000' ecx_in='0x00' eax='0x0000001f' ebx='0x756e6547' ecx='0x6c65746e' edx='0x49656e69'/>
a41c76
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x0005065b' ebx='0x73400800' ecx='0x7ffefbff' edx='0xbfebfbff'/>
a41c76
+  <cpuid eax_in='0x00000002' ecx_in='0x00' eax='0x76036301' ebx='0x00f0b5ff' ecx='0x00000000' edx='0x00c30000'/>
a41c76
+  <cpuid eax_in='0x00000003' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000004' ecx_in='0x00' eax='0x7c004121' ebx='0x01c0003f' ecx='0x0000003f' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000004' ecx_in='0x01' eax='0x7c004122' ebx='0x01c0003f' ecx='0x0000003f' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000004' ecx_in='0x02' eax='0x7c004143' ebx='0x03c0003f' ecx='0x000003ff' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000004' ecx_in='0x03' eax='0x7c0fc163' ebx='0x0280003f' ecx='0x00008fff' edx='0x00000005'/>
a41c76
+  <cpuid eax_in='0x00000005' ecx_in='0x00' eax='0x00000040' ebx='0x00000040' ecx='0x00000003' edx='0x00002020'/>
a41c76
+  <cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x00000ef7' ebx='0x00000002' ecx='0x00000009' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000001' ebx='0xd39ffffb' ecx='0x00000818' edx='0xbc000400'/>
a41c76
+  <cpuid eax_in='0x00000007' ecx_in='0x01' eax='0x00000020' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000009' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000a' ecx_in='0x00' eax='0x07300404' ebx='0x00000000' ecx='0x00000000' edx='0x00000603'/>
a41c76
+  <cpuid eax_in='0x0000000b' ecx_in='0x00' eax='0x00000001' ebx='0x00000002' ecx='0x00000100' edx='0x00000073'/>
a41c76
+  <cpuid eax_in='0x0000000b' ecx_in='0x01' eax='0x00000006' ebx='0x00000024' ecx='0x00000201' edx='0x00000073'/>
a41c76
+  <cpuid eax_in='0x0000000c' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x00' eax='0x000002ff' ebx='0x00000a88' ecx='0x00000a88' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x0000000f' ebx='0x00000a08' ecx='0x00000100' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x02' eax='0x00000100' ebx='0x00000240' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x03' eax='0x00000040' ebx='0x000003c0' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x04' eax='0x00000040' ebx='0x00000400' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x05' eax='0x00000040' ebx='0x00000440' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x06' eax='0x00000200' ebx='0x00000480' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x07' eax='0x00000400' ebx='0x00000680' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x08' eax='0x00000080' ebx='0x00000000' ecx='0x00000001' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000d' ecx_in='0x09' eax='0x00000008' ebx='0x00000a80' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000e' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000000f' ecx_in='0x00' eax='0x00000000' ebx='0x0000008f' ecx='0x00000000' edx='0x00000002'/>
a41c76
+  <cpuid eax_in='0x0000000f' ecx_in='0x01' eax='0x00000000' ebx='0x00012000' ecx='0x0000008f' edx='0x00000007'/>
a41c76
+  <cpuid eax_in='0x00000010' ecx_in='0x00' eax='0x00000000' ebx='0x0000000a' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000010' ecx_in='0x01' eax='0x0000000a' ebx='0x00000600' ecx='0x00000004' edx='0x0000000f'/>
a41c76
+  <cpuid eax_in='0x00000010' ecx_in='0x03' eax='0x00000059' ebx='0x00000000' ecx='0x00000004' edx='0x00000007'/>
a41c76
+  <cpuid eax_in='0x00000011' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000012' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000013' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000014' ecx_in='0x00' eax='0x00000001' ebx='0x0000000f' ecx='0x00000007' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000014' ecx_in='0x01' eax='0x02490002' ebx='0x003f3fff' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000015' ecx_in='0x00' eax='0x00000002' ebx='0x000000c8' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000016' ecx_in='0x00' eax='0x000009c4' ebx='0x00000ed8' ecx='0x00000064' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000017' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000018' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x00000019' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000001a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000001b' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000001c' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000001d' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000001e' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x0000001f' ecx_in='0x00' eax='0x00000001' ebx='0x00000002' ecx='0x00000100' edx='0x00000073'/>
a41c76
+  <cpuid eax_in='0x0000001f' ecx_in='0x01' eax='0x00000006' ebx='0x00000024' ecx='0x00000201' edx='0x00000073'/>
a41c76
+  <cpuid eax_in='0x0000001f' ecx_in='0x02' eax='0x00000000' ebx='0x00000000' ecx='0x00000002' edx='0x00000073'/>
a41c76
+  <cpuid eax_in='0x20000000' ecx_in='0x00' eax='0x00000001' ebx='0x00000002' ecx='0x00000100' edx='0x00000073'/>
a41c76
+  <cpuid eax_in='0x80000000' ecx_in='0x00' eax='0x80000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
a41c76
+  <cpuid eax_in='0x80000002' ecx_in='0x00' eax='0x756e6547' ebx='0x20656e69' ecx='0x65746e49' edx='0x2952286c'/>
a41c76
+  <cpuid eax_in='0x80000003' ecx_in='0x00' eax='0x55504320' ebx='0x30303020' ecx='0x00402530' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x80000004' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x80000005' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x80000006' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01006040' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
a41c76
+  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x0000302e' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
+  <cpuid eax_in='0x80860000' ecx_in='0x00' eax='0x00000001' ebx='0x00000002' ecx='0x00000100' edx='0x00000073'/>
a41c76
+  <cpuid eax_in='0xc0000000' ecx_in='0x00' eax='0x00000001' ebx='0x00000002' ecx='0x00000100' edx='0x00000073'/>
a41c76
+  <msr index='0x10a' edx='0x00000000' eax='0x000001eb'/>
a41c76
+</cpudata>
a41c76
-- 
a41c76
2.26.2
a41c76