Revision 558fa836

b/target-i386/cpu.h
298 298
#define CPUID_PBE (1 << 31)
299 299

  
300 300
#define CPUID_EXT_SSE3     (1 << 0)
301
#define CPUID_EXT_DTES64   (1 << 2)
301 302
#define CPUID_EXT_MONITOR  (1 << 3)
302 303
#define CPUID_EXT_DSCPL    (1 << 4)
303 304
#define CPUID_EXT_VMX      (1 << 5)
......
308 309
#define CPUID_EXT_CID      (1 << 10)
309 310
#define CPUID_EXT_CX16     (1 << 13)
310 311
#define CPUID_EXT_XTPR     (1 << 14)
311
#define CPUID_EXT_DCA      (1 << 17)
312
#define CPUID_EXT_POPCNT   (1 << 22)
312
#define CPUID_EXT_PDCM     (1 << 15)
313
#define CPUID_EXT_DCA      (1 << 18)
314
#define CPUID_EXT_SSE41    (1 << 19)
315
#define CPUID_EXT_SSE42    (1 << 20)
316
#define CPUID_EXT_X2APIC   (1 << 21)
317
#define CPUID_EXT_MOVBE    (1 << 22)
318
#define CPUID_EXT_POPCNT   (1 << 23)
319
#define CPUID_EXT_XSAVE    (1 << 26)
320
#define CPUID_EXT_OSXSAVE  (1 << 27)
313 321

  
314 322
#define CPUID_EXT2_SYSCALL (1 << 11)
315 323
#define CPUID_EXT2_MP      (1 << 19)
b/target-i386/helper.c
167 167
    },
168 168
    {
169 169
        .name = "core2duo",
170
        /* original is on level 10 */
171
        .level = 5,
170
        .level = 10,
172 171
        .family = 6,
173 172
        .model = 15,
174 173
        .stepping = 11,
175
        /* the original CPU does have many more features that are
176
         * not implemented yet */
174
	/* The original CPU also implements these features:
175
               CPUID_VME, CPUID_DTS, CPUID_ACPI, CPUID_SS, CPUID_HT,
176
               CPUID_TM, CPUID_PBE */
177 177
        .features = PPRO_FEATURES |
178 178
            CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA |
179 179
            CPUID_PSE36,
180
	/* The original CPU also implements these ext features:
181
               CPUID_EXT_DTES64, CPUID_EXT_DSCPL, CPUID_EXT_VMX, CPUID_EXT_EST,
182
               CPUID_EXT_TM2, CPUID_EXT_CX16, CPUID_EXT_XTPR, CPUID_EXT_PDCM */
180 183
        .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_MONITOR | CPUID_EXT_SSSE3,
181
        .ext2_features = (PPRO_FEATURES & 0x0183F3FF) |
182
            CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
184
        .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
185
        /* Missing: .ext3_features = CPUID_EXT3_LAHF_LM */
183 186
        .xlevel = 0x8000000A,
184 187
        .model_id = "Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz",
185 188
    },
......
240 243
        .family = 6,
241 244
        .model = 2,
242 245
        .stepping = 3,
243
        .features = PPRO_FEATURES | PPRO_FEATURES | CPUID_PSE36 | CPUID_VME | CPUID_MTRR | CPUID_MCA,
246
        .features = PPRO_FEATURES | CPUID_PSE36 | CPUID_VME | CPUID_MTRR | CPUID_MCA,
244 247
        .ext2_features = (PPRO_FEATURES & 0x0183F3FF) | CPUID_EXT2_MMXEXT | CPUID_EXT2_3DNOW | CPUID_EXT2_3DNOWEXT,
245 248
        .xlevel = 0x80000008,
246 249
        /* XXX: put another string ? */
b/target-i386/op_helper.c
1956 1956
        ECX = CPUID_MWAIT_EMX | CPUID_MWAIT_IBE;
1957 1957
        EDX = 0;
1958 1958
        break;
1959
    case 6:
1960
        /* Thermal and Power Leaf */
1961
        EAX = 0;
1962
        EBX = 0;
1963
        ECX = 0;
1964
        EDX = 0;
1965
        break;
1966
    case 9:
1967
        /* Direct Cache Access Information Leaf */
1968
        EAX = 0; /* Bits 0-31 in DCA_CAP MSR */
1969
        EBX = 0;
1970
        ECX = 0;
1971
        EDX = 0;
1972
        break;
1973
    case 0xA:
1974
        /* Architectural Performance Monitoring Leaf */
1975
        EAX = 0;
1976
        EBX = 0;
1977
        ECX = 0;
1978
        EDX = 0;
1979
        break;
1959 1980
    case 0x80000000:
1960 1981
        EAX = env->cpuid_xlevel;
1961 1982
        EBX = env->cpuid_vendor1;

Also available in: Unified diff