KVM: x86 emulator: fix group 11 decoding for reg != 0
authorAvi Kivity <avi@redhat.com>
Tue, 3 Aug 2010 12:05:46 +0000 (15:05 +0300)
committerAvi Kivity <avi@redhat.com>
Sun, 24 Oct 2010 08:51:53 +0000 (10:51 +0200)
These are all undefined.

Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/emulate.c

index c0715ae05a54747fdec4e021091251c1fc9b837a..9940d16615441ad60adcb7b3b0e85d9f40d3fc83 100644 (file)
@@ -2449,6 +2449,10 @@ static struct group_dual group9 = { {
        N, N, N, N, N, N, N, N,
 } };
 
+static struct opcode group11[] = {
+       I(DstMem | SrcImm | ModRM | Mov, em_mov), X7(D(Undefined)),
+};
+
 static struct opcode opcode_table[256] = {
        /* 0x00 - 0x07 */
        D6ALU(Lock),
@@ -2525,7 +2529,7 @@ static struct opcode opcode_table[256] = {
        I(ImplicitOps | Stack | SrcImmU16, em_ret_near_imm),
        D(ImplicitOps | Stack),
        D(DstReg | SrcMemFAddr | ModRM | No64), D(DstReg | SrcMemFAddr | ModRM | No64),
-       I2bv(DstMem | SrcImm | ModRM | Mov, em_mov),
+       G(ByteOp, group11), G(0, group11),
        /* 0xC8 - 0xCF */
        N, N, N, D(ImplicitOps | Stack),
        D(ImplicitOps), D(SrcImmByte), D(ImplicitOps | No64), D(ImplicitOps),