aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/emulate.c
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2010-08-03 08:05:46 -0400
committerAvi Kivity <avi@redhat.com>2010-10-24 04:51:53 -0400
commita4d4a7c1880db98a521bc27c15348185fa30c256 (patch)
treed9af153679aa4a21e5d3170767e743974b2a42e1 /arch/x86/kvm/emulate.c
parentb9eac5f4d146dc6cb88c8e6d891f8abe60493338 (diff)
KVM: x86 emulator: fix group 11 decoding for reg != 0
These are all undefined. Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/emulate.c')
-rw-r--r--arch/x86/kvm/emulate.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index c0715ae05a54..9940d1661544 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2449,6 +2449,10 @@ static struct group_dual group9 = { {
2449 N, N, N, N, N, N, N, N, 2449 N, N, N, N, N, N, N, N,
2450} }; 2450} };
2451 2451
2452static struct opcode group11[] = {
2453 I(DstMem | SrcImm | ModRM | Mov, em_mov), X7(D(Undefined)),
2454};
2455
2452static struct opcode opcode_table[256] = { 2456static struct opcode opcode_table[256] = {
2453 /* 0x00 - 0x07 */ 2457 /* 0x00 - 0x07 */
2454 D6ALU(Lock), 2458 D6ALU(Lock),
@@ -2525,7 +2529,7 @@ static struct opcode opcode_table[256] = {
2525 I(ImplicitOps | Stack | SrcImmU16, em_ret_near_imm), 2529 I(ImplicitOps | Stack | SrcImmU16, em_ret_near_imm),
2526 D(ImplicitOps | Stack), 2530 D(ImplicitOps | Stack),
2527 D(DstReg | SrcMemFAddr | ModRM | No64), D(DstReg | SrcMemFAddr | ModRM | No64), 2531 D(DstReg | SrcMemFAddr | ModRM | No64), D(DstReg | SrcMemFAddr | ModRM | No64),
2528 I2bv(DstMem | SrcImm | ModRM | Mov, em_mov), 2532 G(ByteOp, group11), G(0, group11),
2529 /* 0xC8 - 0xCF */ 2533 /* 0xC8 - 0xCF */
2530 N, N, N, D(ImplicitOps | Stack), 2534 N, N, N, D(ImplicitOps | Stack),
2531 D(ImplicitOps), D(SrcImmByte), D(ImplicitOps | No64), D(ImplicitOps), 2535 D(ImplicitOps), D(SrcImmByte), D(ImplicitOps | No64), D(ImplicitOps),