diff --git a/qemu/target/i386/cpu.c b/qemu/target/i386/cpu.c index 418f8350..d1902668 100644 --- a/qemu/target/i386/cpu.c +++ b/qemu/target/i386/cpu.c @@ -435,7 +435,8 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = { TCG_EXT4_FEATURES, }, // FEAT_KVM - {{NULL}, + { + {NULL}, /* Unicorn: commented out { "kvmclock", "kvm-nopiodelay", "kvm-mmu", "kvmclock", @@ -452,6 +453,26 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = { R_EAX, TCG_KVM_FEATURES,*/ }, + // FEAT_KVM_HINTS + { + {NULL}, +/* Unicorn: commented out + { + "kvm-hint-dedicated", NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + }, + KVM_CPUID_FEATURES, + false, 0, + R_EDX, + TCG_KVM_FEATURES, +*/ + }, // FEAT_HYPERV_EAX { { @@ -970,6 +991,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1346,6 +1369,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1395,6 +1420,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1447,6 +1474,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1499,6 +1528,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1552,6 +1583,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1605,6 +1638,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1660,6 +1695,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1715,6 +1752,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1771,6 +1810,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1827,6 +1868,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1884,6 +1927,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1941,6 +1986,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -1998,6 +2045,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -2055,6 +2104,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -2112,6 +2163,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -2176,6 +2229,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -2245,6 +2300,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -2312,6 +2369,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -2526,6 +2585,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX @@ -2589,6 +2650,8 @@ static X86CPUDefinition builtin_x86_defs[] = { 0, // FEAT_KVM 0, + // FEAT_KVM_HINTS + 0, // FEAT_HYPERV_EAX 0, // FEAT_HYPERV_EBX diff --git a/qemu/target/i386/cpu.h b/qemu/target/i386/cpu.h index 6d0e5fab..1e92a34f 100644 --- a/qemu/target/i386/cpu.h +++ b/qemu/target/i386/cpu.h @@ -451,6 +451,7 @@ typedef enum FeatureWord { FEAT_8000_0008_EBX, /* CPUID[8000_0008].EBX */ FEAT_C000_0001_EDX, /* CPUID[C000_0001].EDX */ FEAT_KVM, /* CPUID[4000_0001].EAX (KVM_CPUID_FEATURES) */ + FEAT_KVM_HINTS, /* CPUID[4000_0001].EDX */ FEAT_HYPERV_EAX, /* CPUID[4000_0003].EAX */ FEAT_HYPERV_EBX, /* CPUID[4000_0003].EBX */ FEAT_HYPERV_EDX, /* CPUID[4000_0003].EDX */ @@ -645,6 +646,8 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS]; #define CPUID_7_0_EDX_AVX512_4FMAPS (1U << 3) /* AVX512 Multiply Accumulation Single Precision */ #define CPUID_7_0_EDX_SPEC_CTRL (1U << 26) /* Speculation Control */ +#define KVM_HINTS_DEDICATED (1U << 0) + #define CPUID_8000_0008_EBX_IBPB (1U << 12) /* Indirect Branch Prediction Barrier */ #define CPUID_XSAVE_XSAVEOPT (1U << 0)