@@ -1475,6 +1475,7 @@ static X86CPUDefinition builtin_x86_defs[] = {
CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE |
CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | CPUID_EXT3_SVM |
CPUID_EXT3_LAHF_LM,
+ .features[FEAT_7_0_EBX] = CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2,
/* no xsaveopt! */
.xlevel = 0x8000001A,
.model_id = "AMD Opteron 63xx class CPU",
@@ -38,6 +38,7 @@
#define PREFIX_DATA 0x08
#define PREFIX_ADR 0x10
#define PREFIX_VEX 0x20
+#define PREFIX_XOP 0x40
#ifdef TARGET_X86_64
#define CODE64(s) ((s)->code64)
@@ -3580,7 +3581,8 @@ static void gen_sse(CPUX86State *env,
DisasContext *s, int b,
case 0x138:
case 0x038:
b = modrm;
- if ((b & 0xf0) == 0xf0) {
+ if (((b & 0xf0) == 0xf0) || (b == 0x10)) {
+ fprintf(stderr, "%s:%d modrm %x\n",__FILE__,__LINE__, modrm);
goto do_0f_38_fx;
}