diff options
author | Avi Kivity <avi@redhat.com> | 2010-07-29 08:11:45 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-10-24 04:50:16 -0400 |
commit | 2f3a9bc9ebd42e00929f370e1a56e40028a8d651 (patch) | |
tree | 3e567d9f15e84baf39ea53e33934df5a0e706df2 /arch | |
parent | b67f9f0741e288c97f73cdc9e39e2c4943004332 (diff) |
KVM: x86 emulator: convert group 7 to new style
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kvm/emulate.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 9674d973b99d..5e7a02df18bb 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 | ||
107 | enum { | 107 | enum { |
108 | NoGrp, Group7, Group8, Group9, | 108 | NoGrp, Group8, Group9, |
109 | }; | 109 | }; |
110 | 110 | ||
111 | struct opcode { | 111 | struct opcode { |
@@ -152,11 +152,17 @@ static struct opcode group5[] = { | |||
152 | D(SrcMem | ModRM | Stack), N, | 152 | D(SrcMem | ModRM | Stack), N, |
153 | }; | 153 | }; |
154 | 154 | ||
155 | static struct opcode group_table[] = { | 155 | static struct group_dual group7 = { { |
156 | [Group7*8] = | ||
157 | N, N, D(ModRM | SrcMem | Priv), D(ModRM | SrcMem | Priv), | 156 | N, N, D(ModRM | SrcMem | Priv), D(ModRM | SrcMem | Priv), |
158 | D(SrcNone | ModRM | DstMem | Mov), N, | 157 | D(SrcNone | ModRM | DstMem | Mov), N, |
159 | D(SrcMem16 | ModRM | Mov | Priv), D(SrcMem | ModRM | ByteOp | Priv), | 158 | D(SrcMem16 | ModRM | Mov | Priv), D(SrcMem | ModRM | ByteOp | Priv), |
159 | }, { | ||
160 | D(SrcNone | ModRM | Priv), N, N, D(SrcNone | ModRM | Priv), | ||
161 | D(SrcNone | ModRM | DstMem | Mov), N, | ||
162 | D(SrcMem16 | ModRM | Mov | Priv), N, | ||
163 | } }; | ||
164 | |||
165 | static struct opcode group_table[] = { | ||
160 | [Group8*8] = | 166 | [Group8*8] = |
161 | N, N, N, N, | 167 | N, N, N, N, |
162 | D(DstMem | SrcImmByte | ModRM), D(DstMem | SrcImmByte | ModRM | Lock), | 168 | D(DstMem | SrcImmByte | ModRM), D(DstMem | SrcImmByte | ModRM | Lock), |
@@ -166,10 +172,6 @@ static struct opcode group_table[] = { | |||
166 | }; | 172 | }; |
167 | 173 | ||
168 | static struct opcode group2_table[] = { | 174 | static struct opcode group2_table[] = { |
169 | [Group7*8] = | ||
170 | D(SrcNone | ModRM | Priv), N, N, D(SrcNone | ModRM | Priv), | ||
171 | D(SrcNone | ModRM | DstMem | Mov), N, | ||
172 | D(SrcMem16 | ModRM | Mov | Priv), N, | ||
173 | [Group9*8] = | 175 | [Group9*8] = |
174 | N, N, N, N, N, N, N, N, | 176 | N, N, N, N, N, N, N, N, |
175 | }; | 177 | }; |
@@ -290,7 +292,7 @@ static struct opcode opcode_table[256] = { | |||
290 | 292 | ||
291 | static struct opcode twobyte_table[256] = { | 293 | static struct opcode twobyte_table[256] = { |
292 | /* 0x00 - 0x0F */ | 294 | /* 0x00 - 0x0F */ |
293 | N, D(Group | GroupDual | Group7), N, N, | 295 | N, GD(0, &group7), N, N, |
294 | N, D(ImplicitOps), D(ImplicitOps | Priv), N, | 296 | N, D(ImplicitOps), D(ImplicitOps | Priv), N, |
295 | D(ImplicitOps | Priv), D(ImplicitOps | Priv), N, N, | 297 | D(ImplicitOps | Priv), D(ImplicitOps | Priv), N, N, |
296 | N, D(ImplicitOps | ModRM), N, N, | 298 | N, D(ImplicitOps | ModRM), N, N, |