diff options
| author | Guillaume Thouvenin <guillaume.thouvenin@ext.bull.net> | 2008-12-04 08:25:38 -0500 |
|---|---|---|
| committer | Avi Kivity <avi@redhat.com> | 2008-12-31 09:55:41 -0500 |
| commit | 45ed60b371aeae6ed80f7e9d594a5e6412edc176 (patch) | |
| tree | dab9504386e9f34eb2cc06fb7c35a6f9bc55c911 | |
| parent | 6f89724829cfd4ad6771a92fd4b8d59c90c7220c (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>
| -rw-r--r-- | arch/x86/kvm/x86_emulate.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/kvm/x86_emulate.c b/arch/x86/kvm/x86_emulate.c index 69b330ba0ad0..7a07ca46c8ae 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 | ||
| 79 | static u16 opcode_table[256] = { | 79 | static 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 | ||
| 198 | static u16 twobyte_table[256] = { | 198 | static 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 | ||
| 256 | static u16 group_table[] = { | 256 | static 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 | ||
| 300 | static u16 group2_table[] = { | 300 | static 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, |
