a3bc25
From 73e87a037ccd6d9fd02c3fd0a082f014412c7555 Mon Sep 17 00:00:00 2001
a3bc25
Message-Id: <73e87a037ccd6d9fd02c3fd0a082f014412c7555@dist-git>
a3bc25
From: Jiri Denemark <jdenemar@redhat.com>
a3bc25
Date: Mon, 19 Jun 2017 13:18:52 +0200
a3bc25
Subject: [PATCH] cpu_x86: Properly disable unknown CPU features
a3bc25
a3bc25
CPU features unknown to a hypervisor will not be present in dataDisabled
a3bc25
even though the features won't naturally be enabled because.
a3bc25
Thus any features we asked for which are not in dataEnabled should be
a3bc25
considered disabled.
a3bc25
a3bc25
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
a3bc25
(cherry picked from commit 83e081b8ab32dd990b4e4ccc7bf8a1a416fc51c2)
a3bc25
a3bc25
https://bugzilla.redhat.com/show_bug.cgi?id=1470582
a3bc25
a3bc25
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
a3bc25
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
a3bc25
---
a3bc25
 src/cpu/cpu_x86.c                                  |   9 +-
a3bc25
 tests/cputest.c                                    |   1 +
a3bc25
 .../x86_64-cpuid-Core-i7-5600U-arat-disabled.xml   |   5 +
a3bc25
 .../x86_64-cpuid-Core-i7-5600U-arat-enabled.xml    |   8 +
a3bc25
 .../x86_64-cpuid-Core-i7-5600U-arat-guest.xml      |  29 +++
a3bc25
 .../x86_64-cpuid-Core-i7-5600U-arat-host.xml       |  30 +++
a3bc25
 .../x86_64-cpuid-Core-i7-5600U-arat-json.xml       |  14 ++
a3bc25
 .../x86_64-cpuid-Core-i7-5600U-arat.json           | 202 +++++++++++++++++++++
a3bc25
 .../x86_64-cpuid-Core-i7-5600U-arat.xml            |  41 +++++
a3bc25
 9 files changed, 335 insertions(+), 4 deletions(-)
a3bc25
 create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-disabled.xml
a3bc25
 create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-enabled.xml
a3bc25
 create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-guest.xml
a3bc25
 create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-host.xml
a3bc25
 create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-json.xml
a3bc25
 create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat.json
a3bc25
 create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat.xml
a3bc25
a3bc25
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
a3bc25
index 53359ff9b6..2864454211 100644
a3bc25
--- a/src/cpu/cpu_x86.c
a3bc25
+++ b/src/cpu/cpu_x86.c
a3bc25
@@ -2664,12 +2664,11 @@ virCPUx86UpdateLive(virCPUDefPtr cpu,
a3bc25
         x86DataCopy(&disabled, &dataDisabled->data.x86) < 0)
a3bc25
         goto cleanup;
a3bc25
 
a3bc25
-    x86DataSubtract(&enabled, &model->data);
a3bc25
-
a3bc25
     for (i = 0; i < map->nfeatures; i++) {
a3bc25
         virCPUx86FeaturePtr feature = map->features[i];
a3bc25
 
a3bc25
-        if (x86DataIsSubset(&enabled, &feature->data)) {
a3bc25
+        if (x86DataIsSubset(&enabled, &feature->data) &&
a3bc25
+            !x86DataIsSubset(&model->data, &feature->data)) {
a3bc25
             VIR_DEBUG("Feature '%s' enabled by the hypervisor", feature->name);
a3bc25
             if (cpu->check == VIR_CPU_CHECK_FULL)
a3bc25
                 virBufferAsprintf(&bufAdded, "%s,", feature->name);
a3bc25
@@ -2678,7 +2677,9 @@ virCPUx86UpdateLive(virCPUDefPtr cpu,
a3bc25
                 goto cleanup;
a3bc25
         }
a3bc25
 
a3bc25
-        if (x86DataIsSubset(&disabled, &feature->data)) {
a3bc25
+        if (x86DataIsSubset(&disabled, &feature->data) ||
a3bc25
+            (x86DataIsSubset(&model->data, &feature->data) &&
a3bc25
+             !x86DataIsSubset(&enabled, &feature->data))) {
a3bc25
             VIR_DEBUG("Feature '%s' disabled by the hypervisor", feature->name);
a3bc25
             if (cpu->check == VIR_CPU_CHECK_FULL)
a3bc25
                 virBufferAsprintf(&bufRemoved, "%s,", feature->name);
a3bc25
diff --git a/tests/cputest.c b/tests/cputest.c
a3bc25
index 97b34de9ed..5190a83467 100644
a3bc25
--- a/tests/cputest.c
a3bc25
+++ b/tests/cputest.c
a3bc25
@@ -991,6 +991,7 @@ mymain(void)
a3bc25
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-4600U", true);
a3bc25
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-4510U", true);
a3bc25
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-5600U", true);
a3bc25
+    DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-5600U-arat", true);
a3bc25
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core2-E6850", true);
a3bc25
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core2-Q9500", false);
a3bc25
     DO_TEST_CPUID(VIR_ARCH_X86_64, "FX-8150", false);
a3bc25
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-disabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-disabled.xml
a3bc25
new file mode 100644
a3bc25
index 0000000000..4a0477f788
a3bc25
--- /dev/null
a3bc25
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-disabled.xml
a3bc25
@@ -0,0 +1,5 @@
a3bc25
+
a3bc25
+<cpudata arch='x86'>
a3bc25
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1dc' edx='0xb0600000'/>
a3bc25
+  <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
a3bc25
+</cpudata>
a3bc25
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-enabled.xml
a3bc25
new file mode 100644
a3bc25
index 0000000000..5cffacef59
a3bc25
--- /dev/null
a3bc25
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-enabled.xml
a3bc25
@@ -0,0 +1,8 @@
a3bc25
+
a3bc25
+<cpudata arch='x86'>
a3bc25
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0xf7fa3223' edx='0x0f8bfbff'/>
a3bc25
+  <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x001c0fbb' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000001' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x40000001' ecx_in='0x00' eax='0x010000fa' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
a3bc25
+</cpudata>
a3bc25
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-guest.xml
a3bc25
new file mode 100644
a3bc25
index 0000000000..877895cf15
a3bc25
--- /dev/null
a3bc25
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-guest.xml
a3bc25
@@ -0,0 +1,29 @@
a3bc25
+<cpu mode='custom' match='exact'>
a3bc25
+  <model fallback='forbid'>Broadwell</model>
a3bc25
+  <vendor>Intel</vendor>
a3bc25
+  <feature policy='require' name='vme'/>
a3bc25
+  <feature policy='require' name='ds'/>
a3bc25
+  <feature policy='require' name='acpi'/>
a3bc25
+  <feature policy='require' name='ss'/>
a3bc25
+  <feature policy='require' name='ht'/>
a3bc25
+  <feature policy='require' name='tm'/>
a3bc25
+  <feature policy='require' name='pbe'/>
a3bc25
+  <feature policy='require' name='dtes64'/>
a3bc25
+  <feature policy='require' name='monitor'/>
a3bc25
+  <feature policy='require' name='ds_cpl'/>
a3bc25
+  <feature policy='require' name='vmx'/>
a3bc25
+  <feature policy='require' name='smx'/>
a3bc25
+  <feature policy='require' name='est'/>
a3bc25
+  <feature policy='require' name='tm2'/>
a3bc25
+  <feature policy='require' name='xtpr'/>
a3bc25
+  <feature policy='require' name='pdcm'/>
a3bc25
+  <feature policy='require' name='osxsave'/>
a3bc25
+  <feature policy='require' name='f16c'/>
a3bc25
+  <feature policy='require' name='rdrand'/>
a3bc25
+  <feature policy='require' name='arat'/>
a3bc25
+  <feature policy='require' name='tsc_adjust'/>
a3bc25
+  <feature policy='require' name='xsaveopt'/>
a3bc25
+  <feature policy='require' name='pdpe1gb'/>
a3bc25
+  <feature policy='require' name='abm'/>
a3bc25
+  <feature policy='require' name='invtsc'/>
a3bc25
+</cpu>
a3bc25
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-host.xml
a3bc25
new file mode 100644
a3bc25
index 0000000000..9b24941e0e
a3bc25
--- /dev/null
a3bc25
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-host.xml
a3bc25
@@ -0,0 +1,30 @@
a3bc25
+<cpu>
a3bc25
+  <arch>x86_64</arch>
a3bc25
+  <model>Broadwell</model>
a3bc25
+  <vendor>Intel</vendor>
a3bc25
+  <feature name='vme'/>
a3bc25
+  <feature name='ds'/>
a3bc25
+  <feature name='acpi'/>
a3bc25
+  <feature name='ss'/>
a3bc25
+  <feature name='ht'/>
a3bc25
+  <feature name='tm'/>
a3bc25
+  <feature name='pbe'/>
a3bc25
+  <feature name='dtes64'/>
a3bc25
+  <feature name='monitor'/>
a3bc25
+  <feature name='ds_cpl'/>
a3bc25
+  <feature name='vmx'/>
a3bc25
+  <feature name='smx'/>
a3bc25
+  <feature name='est'/>
a3bc25
+  <feature name='tm2'/>
a3bc25
+  <feature name='xtpr'/>
a3bc25
+  <feature name='pdcm'/>
a3bc25
+  <feature name='osxsave'/>
a3bc25
+  <feature name='f16c'/>
a3bc25
+  <feature name='rdrand'/>
a3bc25
+  <feature name='arat'/>
a3bc25
+  <feature name='tsc_adjust'/>
a3bc25
+  <feature name='xsaveopt'/>
a3bc25
+  <feature name='pdpe1gb'/>
a3bc25
+  <feature name='abm'/>
a3bc25
+  <feature name='invtsc'/>
a3bc25
+</cpu>
a3bc25
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-json.xml
a3bc25
new file mode 100644
a3bc25
index 0000000000..4f253fc08a
a3bc25
--- /dev/null
a3bc25
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat-json.xml
a3bc25
@@ -0,0 +1,14 @@
a3bc25
+<cpu mode='custom' match='exact'>
a3bc25
+  <model fallback='forbid'>Broadwell</model>
a3bc25
+  <vendor>Intel</vendor>
a3bc25
+  <feature policy='require' name='vme'/>
a3bc25
+  <feature policy='require' name='ss'/>
a3bc25
+  <feature policy='require' name='vmx'/>
a3bc25
+  <feature policy='require' name='f16c'/>
a3bc25
+  <feature policy='require' name='rdrand'/>
a3bc25
+  <feature policy='require' name='hypervisor'/>
a3bc25
+  <feature policy='require' name='tsc_adjust'/>
a3bc25
+  <feature policy='require' name='xsaveopt'/>
a3bc25
+  <feature policy='require' name='pdpe1gb'/>
a3bc25
+  <feature policy='require' name='abm'/>
a3bc25
+</cpu>
a3bc25
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat.json b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat.json
a3bc25
new file mode 100644
a3bc25
index 0000000000..f2aa7f3185
a3bc25
--- /dev/null
a3bc25
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat.json
a3bc25
@@ -0,0 +1,202 @@
a3bc25
+{
a3bc25
+  "return": {
a3bc25
+    "model": {
a3bc25
+      "name": "base",
a3bc25
+      "props": {
a3bc25
+        "pfthreshold": false,
a3bc25
+        "pku": false,
a3bc25
+        "rtm": true,
a3bc25
+        "tsc_adjust": true,
a3bc25
+        "tsc-deadline": true,
a3bc25
+        "xstore-en": false,
a3bc25
+        "tsc-scale": false,
a3bc25
+        "sse": true,
a3bc25
+        "smap": true,
a3bc25
+        "stepping": 4,
a3bc25
+        "tce": false,
a3bc25
+        "kvm_steal_time": true,
a3bc25
+        "smep": true,
a3bc25
+        "rdpid": false,
a3bc25
+        "xcrypt": false,
a3bc25
+        "sse4_2": true,
a3bc25
+        "monitor": false,
a3bc25
+        "sse4_1": true,
a3bc25
+        "kvm-mmu": false,
a3bc25
+        "flushbyasid": false,
a3bc25
+        "kvm-steal-time": true,
a3bc25
+        "lm": true,
a3bc25
+        "tsc": true,
a3bc25
+        "adx": true,
a3bc25
+        "fxsr": true,
a3bc25
+        "sha-ni": false,
a3bc25
+        "tm": false,
a3bc25
+        "pclmuldq": true,
a3bc25
+        "xgetbv1": false,
a3bc25
+        "xstore": false,
a3bc25
+        "vmcb_clean": false,
a3bc25
+        "vme": true,
a3bc25
+        "vendor": "GenuineIntel",
a3bc25
+        "ffxsr": false,
a3bc25
+        "de": true,
a3bc25
+        "avx512f": false,
a3bc25
+        "pse": true,
a3bc25
+        "ds-cpl": false,
a3bc25
+        "tbm": false,
a3bc25
+        "ia64": false,
a3bc25
+        "phe-en": false,
a3bc25
+        "f16c": true,
a3bc25
+        "ds": false,
a3bc25
+        "mpx": false,
a3bc25
+        "tsc-adjust": true,
a3bc25
+        "aes": true,
a3bc25
+        "avx2": true,
a3bc25
+        "pbe": false,
a3bc25
+        "cx16": true,
a3bc25
+        "ds_cpl": false,
a3bc25
+        "movbe": true,
a3bc25
+        "perfctr-nb": false,
a3bc25
+        "nrip_save": false,
a3bc25
+        "kvm_mmu": false,
a3bc25
+        "ospke": false,
a3bc25
+        "avx512ifma": false,
a3bc25
+        "vmx": true,
a3bc25
+        "sep": true,
a3bc25
+        "xsaveopt": true,
a3bc25
+        "sse4a": false,
a3bc25
+        "avx512dq": false,
a3bc25
+        "i64": true,
a3bc25
+        "avx512-4vnniw": false,
a3bc25
+        "xsave": true,
a3bc25
+        "erms": true,
a3bc25
+        "hle": true,
a3bc25
+        "nodeid_msr": false,
a3bc25
+        "est": false,
a3bc25
+        "svm_lock": false,
a3bc25
+        "xop": false,
a3bc25
+        "model-id": "Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz",
a3bc25
+        "abm": true,
a3bc25
+        "avx512er": false,
a3bc25
+        "sse4.1": true,
a3bc25
+        "sse4.2": true,
a3bc25
+        "pause-filter": false,
a3bc25
+        "lahf-lm": true,
a3bc25
+        "kvm-nopiodelay": true,
a3bc25
+        "cmp_legacy": false,
a3bc25
+        "acpi": false,
a3bc25
+        "fma4": false,
a3bc25
+        "popcnt": true,
a3bc25
+        "mmx": true,
a3bc25
+        "osxsave": false,
a3bc25
+        "pcommit": false,
a3bc25
+        "avx512pf": false,
a3bc25
+        "clwb": false,
a3bc25
+        "dca": false,
a3bc25
+        "pdcm": false,
a3bc25
+        "xcrypt-en": false,
a3bc25
+        "3dnow": false,
a3bc25
+        "invtsc": false,
a3bc25
+        "tm2": false,
a3bc25
+        "hypervisor": true,
a3bc25
+        "kvmclock-stable-bit": true,
a3bc25
+        "fxsr-opt": false,
a3bc25
+        "pcid": true,
a3bc25
+        "sse4-1": true,
a3bc25
+        "sse4-2": true,
a3bc25
+        "avx512-vpopcntdq": false,
a3bc25
+        "avx512-4fmaps": false,
a3bc25
+        "pause_filter": false,
a3bc25
+        "svm-lock": false,
a3bc25
+        "rdrand": true,
a3bc25
+        "nrip-save": false,
a3bc25
+        "avx512vl": false,
a3bc25
+        "x2apic": true,
a3bc25
+        "kvmclock": true,
a3bc25
+        "pge": true,
a3bc25
+        "family": 6,
a3bc25
+        "dtes64": false,
a3bc25
+        "xd": true,
a3bc25
+        "kvm_pv_eoi": true,
a3bc25
+        "ace2": false,
a3bc25
+        "kvm_pv_unhalt": true,
a3bc25
+        "xtpr": false,
a3bc25
+        "perfctr_nb": false,
a3bc25
+        "avx512bw": false,
a3bc25
+        "nx": true,
a3bc25
+        "lwp": false,
a3bc25
+        "msr": true,
a3bc25
+        "ace2-en": false,
a3bc25
+        "decodeassists": false,
a3bc25
+        "perfctr-core": false,
a3bc25
+        "pn": false,
a3bc25
+        "fma": true,
a3bc25
+        "nodeid-msr": false,
a3bc25
+        "kvm_asyncpf": true,
a3bc25
+        "clflush": true,
a3bc25
+        "cx8": true,
a3bc25
+        "mce": true,
a3bc25
+        "avx512cd": false,
a3bc25
+        "cr8legacy": false,
a3bc25
+        "mca": true,
a3bc25
+        "pni": true,
a3bc25
+        "rdseed": true,
a3bc25
+        "apic": true,
a3bc25
+        "fsgsbase": true,
a3bc25
+        "cmp-legacy": false,
a3bc25
+        "kvm-pv-unhalt": true,
a3bc25
+        "rdtscp": true,
a3bc25
+        "mmxext": false,
a3bc25
+        "cid": false,
a3bc25
+        "ssse3": true,
a3bc25
+        "extapic": false,
a3bc25
+        "pse36": true,
a3bc25
+        "mtrr": true,
a3bc25
+        "ibs": false,
a3bc25
+        "la57": false,
a3bc25
+        "avx": true,
a3bc25
+        "syscall": true,
a3bc25
+        "umip": false,
a3bc25
+        "invpcid": true,
a3bc25
+        "avx512vbmi": false,
a3bc25
+        "kvm-asyncpf": true,
a3bc25
+        "vmcb-clean": false,
a3bc25
+        "pmm": false,
a3bc25
+        "cmov": true,
a3bc25
+        "perfctr_core": false,
a3bc25
+        "misalignsse": false,
a3bc25
+        "clflushopt": false,
a3bc25
+        "pat": true,
a3bc25
+        "lbrv": false,
a3bc25
+        "3dnowprefetch": true,
a3bc25
+        "fpu": true,
a3bc25
+        "pae": true,
a3bc25
+        "wdt": false,
a3bc25
+        "tsc_scale": false,
a3bc25
+        "skinit": false,
a3bc25
+        "fxsr_opt": false,
a3bc25
+        "kvm_nopiodelay": true,
a3bc25
+        "pmm-en": false,
a3bc25
+        "phe": false,
a3bc25
+        "3dnowext": false,
a3bc25
+        "osvw": false,
a3bc25
+        "ht": false,
a3bc25
+        "pdpe1gb": true,
a3bc25
+        "kvm-pv-eoi": true,
a3bc25
+        "npt": false,
a3bc25
+        "xsavec": false,
a3bc25
+        "lahf_lm": true,
a3bc25
+        "pclmulqdq": true,
a3bc25
+        "svm": false,
a3bc25
+        "sse3": true,
a3bc25
+        "sse2": true,
a3bc25
+        "ss": true,
a3bc25
+        "topoext": false,
a3bc25
+        "smx": false,
a3bc25
+        "bmi1": true,
a3bc25
+        "bmi2": true,
a3bc25
+        "xsaves": false,
a3bc25
+        "model": 61
a3bc25
+      }
a3bc25
+    }
a3bc25
+  },
a3bc25
+  "id": "model-expansion"
a3bc25
+}
a3bc25
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat.xml
a3bc25
new file mode 100644
a3bc25
index 0000000000..ecb4a6e15c
a3bc25
--- /dev/null
a3bc25
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat.xml
a3bc25
@@ -0,0 +1,41 @@
a3bc25
+
a3bc25
+<cpudata arch='x86'>
a3bc25
+  <cpuid eax_in='0x00000000' ecx_in='0x00' eax='0x00000014' ebx='0x756e6547' ecx='0x6c65746e' edx='0x49656e69'/>
a3bc25
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x000306d4' ebx='0x00100800' ecx='0x7ffafbff' edx='0xbfebfbff'/>
a3bc25
+  <cpuid eax_in='0x00000002' ecx_in='0x00' eax='0x76036301' ebx='0x00f0b5ff' ecx='0x00000000' edx='0x00c30000'/>
a3bc25
+  <cpuid eax_in='0x00000003' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000004' ecx_in='0x00' eax='0x1c004121' ebx='0x01c0003f' ecx='0x0000003f' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000004' ecx_in='0x01' eax='0x1c004122' ebx='0x01c0003f' ecx='0x0000003f' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000004' ecx_in='0x02' eax='0x1c004143' ebx='0x01c0003f' ecx='0x000001ff' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000004' ecx_in='0x03' eax='0x1c03c163' ebx='0x03c0003f' ecx='0x00000fff' edx='0x00000006'/>
a3bc25
+  <cpuid eax_in='0x00000005' ecx_in='0x00' eax='0x00000040' ebx='0x00000040' ecx='0x00000003' edx='0x11142120'/>
a3bc25
+  <cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x00000077' ebx='0x00000002' ecx='0x00000009' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x021c2fbb' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000009' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x0000000a' ecx_in='0x00' eax='0x07300403' ebx='0x00000000' ecx='0x00000000' edx='0x00000603'/>
a3bc25
+  <cpuid eax_in='0x0000000b' ecx_in='0x00' eax='0x00000001' ebx='0x00000002' ecx='0x00000100' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x0000000b' ecx_in='0x01' eax='0x00000004' ebx='0x00000004' ecx='0x00000201' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x0000000c' ecx_in='0x00' eax='0x00000000' ebx='0x00000001' ecx='0x00000001' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x0000000d' ecx_in='0x00' eax='0x00000007' ebx='0x00000340' ecx='0x00000340' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000001' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x0000000d' ecx_in='0x02' eax='0x00000100' ebx='0x00000240' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x0000000e' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x0000000f' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000010' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000011' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000012' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000013' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x00000014' ecx_in='0x00' eax='0x00000000' ebx='0x00000001' ecx='0x00000001' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x80000000' ecx_in='0x00' eax='0x80000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
a3bc25
+  <cpuid eax_in='0x80000002' ecx_in='0x00' eax='0x65746e49' ebx='0x2952286c' ecx='0x726f4320' edx='0x4d542865'/>
a3bc25
+  <cpuid eax_in='0x80000003' ecx_in='0x00' eax='0x37692029' ebx='0x3036352d' ecx='0x43205530' edx='0x40205550'/>
a3bc25
+  <cpuid eax_in='0x80000004' ecx_in='0x00' eax='0x362e3220' ebx='0x7a484730' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x80000005' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x80000006' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01006040' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
a3bc25
+  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00003027' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0x80860000' ecx_in='0x00' eax='0x00000000' ebx='0x00000001' ecx='0x00000001' edx='0x00000000'/>
a3bc25
+  <cpuid eax_in='0xc0000000' ecx_in='0x00' eax='0x00000000' ebx='0x00000001' ecx='0x00000001' edx='0x00000000'/>
a3bc25
+</cpudata>
a3bc25
-- 
a3bc25
2.13.2
a3bc25