瀏覽代碼

KVM: x86 emulator: invd instruction

Emulate the 'invd' instruction (opcode 0f 08).

Signed-off-by: Avi Kivity <avi@qumranet.com>
Avi Kivity 17 年之前
父節點
當前提交
651a3e29b3
共有 1 個文件被更改,包括 3 次插入1 次删除
  1. 3 1
      drivers/kvm/x86_emulate.c

+ 3 - 1
drivers/kvm/x86_emulate.c

@@ -167,7 +167,7 @@ static u8 opcode_table[256] = {
 static u16 twobyte_table[256] = {
 static u16 twobyte_table[256] = {
 	/* 0x00 - 0x0F */
 	/* 0x00 - 0x0F */
 	0, SrcMem | ModRM | DstReg, 0, 0, 0, 0, ImplicitOps, 0,
 	0, SrcMem | ModRM | DstReg, 0, 0, 0, 0, ImplicitOps, 0,
-	0, ImplicitOps, 0, 0, 0, ImplicitOps | ModRM, 0, 0,
+	ImplicitOps, ImplicitOps, 0, 0, 0, ImplicitOps | ModRM, 0, 0,
 	/* 0x10 - 0x1F */
 	/* 0x10 - 0x1F */
 	0, 0, 0, 0, 0, 0, 0, 0, ImplicitOps | ModRM, 0, 0, 0, 0, 0, 0, 0,
 	0, 0, 0, 0, 0, 0, 0, 0, ImplicitOps | ModRM, 0, 0, 0, 0, 0, 0, 0,
 	/* 0x20 - 0x2F */
 	/* 0x20 - 0x2F */
@@ -1532,6 +1532,8 @@ twobyte_special_insn:
 	case 0x06:
 	case 0x06:
 		emulate_clts(ctxt->vcpu);
 		emulate_clts(ctxt->vcpu);
 		break;
 		break;
+	case 0x08:		/* invd */
+		break;
 	case 0x09:		/* wbinvd */
 	case 0x09:		/* wbinvd */
 		break;
 		break;
 	case 0x0d:		/* GrpP (prefetch) */
 	case 0x0d:		/* GrpP (prefetch) */