aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/emulate.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kvm/emulate.c')
-rw-r--r--arch/x86/kvm/emulate.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index a0606a408add..8bb74ea2b278 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -105,7 +105,7 @@
105#define X16(x) X8(x), X8(x) 105#define X16(x) X8(x), X8(x)
106 106
107enum { 107enum {
108 NoGrp, Group4, Group5, Group7, Group8, Group9, 108 NoGrp, Group5, Group7, Group8, Group9,
109}; 109};
110 110
111struct opcode { 111struct opcode {
@@ -140,10 +140,12 @@ static struct opcode group3[] = {
140 X4(D(Undefined)), 140 X4(D(Undefined)),
141}; 141};
142 142
143static struct opcode group_table[] = { 143static struct opcode group4[] = {
144 [Group4*8] =
145 D(ByteOp | DstMem | SrcNone | ModRM | Lock), D(ByteOp | DstMem | SrcNone | ModRM | Lock), 144 D(ByteOp | DstMem | SrcNone | ModRM | Lock), D(ByteOp | DstMem | SrcNone | ModRM | Lock),
146 N, N, N, N, N, N, 145 N, N, N, N, N, N,
146};
147
148static struct opcode group_table[] = {
147 [Group5*8] = 149 [Group5*8] =
148 D(DstMem | SrcNone | ModRM | Lock), D(DstMem | SrcNone | ModRM | Lock), 150 D(DstMem | SrcNone | ModRM | Lock), D(DstMem | SrcNone | ModRM | Lock),
149 D(SrcMem | ModRM | Stack), N, 151 D(SrcMem | ModRM | Stack), N,
@@ -281,7 +283,7 @@ static struct opcode opcode_table[256] = {
281 D(ImplicitOps | Priv), D(ImplicitOps), G(ByteOp, group3), G(0, group3), 283 D(ImplicitOps | Priv), D(ImplicitOps), G(ByteOp, group3), G(0, group3),
282 /* 0xF8 - 0xFF */ 284 /* 0xF8 - 0xFF */
283 D(ImplicitOps), N, D(ImplicitOps), D(ImplicitOps), 285 D(ImplicitOps), N, D(ImplicitOps), D(ImplicitOps),
284 D(ImplicitOps), D(ImplicitOps), D(Group | Group4), D(Group | Group5), 286 D(ImplicitOps), D(ImplicitOps), G(0, group4), D(Group | Group5),
285}; 287};
286 288
287static struct opcode twobyte_table[256] = { 289static struct opcode twobyte_table[256] = {