aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/x86_emulate.c
diff options
context:
space:
mode:
authorGuillaume Thouvenin <guillaume.thouvenin@ext.bull.net>2008-12-04 08:25:38 -0500
committerAvi Kivity <avi@redhat.com>2008-12-31 09:55:41 -0500
commit45ed60b371aeae6ed80f7e9d594a5e6412edc176 (patch)
treedab9504386e9f34eb2cc06fb7c35a6f9bc55c911 /arch/x86/kvm/x86_emulate.c
parent6f89724829cfd4ad6771a92fd4b8d59c90c7220c (diff)
KVM: x86 emulator: Extend the opcode descriptor
Extend the opcode descriptor to 32 bits. This is needed by the introduction of a new Src2 operand type. Signed-off-by: Guillaume Thouvenin <guillaume.thouvenin@ext.bull.net> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86_emulate.c')
-rw-r--r--arch/x86/kvm/x86_emulate.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/kvm/x86_emulate.c b/arch/x86/kvm/x86_emulate.c
index 69b330ba0ad..7a07ca46c8a 100644
--- a/arch/x86/kvm/x86_emulate.c
+++ b/arch/x86/kvm/x86_emulate.c
@@ -76,7 +76,7 @@ enum {
76 Group1A, Group3_Byte, Group3, Group4, Group5, Group7, 76 Group1A, Group3_Byte, Group3, Group4, Group5, Group7,
77}; 77};
78 78
79static u16 opcode_table[256] = { 79static u32 opcode_table[256] = {
80 /* 0x00 - 0x07 */ 80 /* 0x00 - 0x07 */
81 ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, 81 ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM,
82 ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, 82 ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM,
@@ -195,7 +195,7 @@ static u16 opcode_table[256] = {
195 ImplicitOps, ImplicitOps, Group | Group4, Group | Group5, 195 ImplicitOps, ImplicitOps, Group | Group4, Group | Group5,
196}; 196};
197 197
198static u16 twobyte_table[256] = { 198static u32 twobyte_table[256] = {
199 /* 0x00 - 0x0F */ 199 /* 0x00 - 0x0F */
200 0, Group | GroupDual | Group7, 0, 0, 0, 0, ImplicitOps, 0, 200 0, Group | GroupDual | Group7, 0, 0, 0, 0, ImplicitOps, 0,
201 ImplicitOps, ImplicitOps, 0, 0, 0, ImplicitOps | ModRM, 0, 0, 201 ImplicitOps, ImplicitOps, 0, 0, 0, ImplicitOps | ModRM, 0, 0,
@@ -253,7 +253,7 @@ static u16 twobyte_table[256] = {
253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
254}; 254};
255 255
256static u16 group_table[] = { 256static u32 group_table[] = {
257 [Group1_80*8] = 257 [Group1_80*8] =
258 ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, 258 ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM,
259 ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, 259 ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM,
@@ -297,7 +297,7 @@ static u16 group_table[] = {
297 SrcMem16 | ModRM | Mov, SrcMem | ModRM | ByteOp, 297 SrcMem16 | ModRM | Mov, SrcMem | ModRM | ByteOp,
298}; 298};
299 299
300static u16 group2_table[] = { 300static u32 group2_table[] = {
301 [Group7*8] = 301 [Group7*8] =
302 SrcNone | ModRM, 0, 0, 0, 302 SrcNone | ModRM, 0, 0, 0,
303 SrcNone | ModRM | DstMem | Mov, 0, 303 SrcNone | ModRM | DstMem | Mov, 0,