diff options
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r-- | arch/x86/kvm/emulate.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index cd49774f2d0e..5b78785de41b 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c | |||
@@ -3213,16 +3213,19 @@ static struct opcode group3[] = { | |||
3213 | }; | 3213 | }; |
3214 | 3214 | ||
3215 | static struct opcode group4[] = { | 3215 | static struct opcode group4[] = { |
3216 | D(ByteOp | DstMem | SrcNone | ModRM | Lock), D(ByteOp | DstMem | SrcNone | ModRM | Lock), | 3216 | I(ByteOp | DstMem | SrcNone | ModRM | Lock, em_grp45), |
3217 | I(ByteOp | DstMem | SrcNone | ModRM | Lock, em_grp45), | ||
3217 | N, N, N, N, N, N, | 3218 | N, N, N, N, N, N, |
3218 | }; | 3219 | }; |
3219 | 3220 | ||
3220 | static struct opcode group5[] = { | 3221 | static struct opcode group5[] = { |
3221 | D(DstMem | SrcNone | ModRM | Lock), D(DstMem | SrcNone | ModRM | Lock), | 3222 | I(DstMem | SrcNone | ModRM | Lock, em_grp45), |
3222 | D(SrcMem | ModRM | Stack), | 3223 | I(DstMem | SrcNone | ModRM | Lock, em_grp45), |
3224 | I(SrcMem | ModRM | Stack, em_grp45), | ||
3223 | I(SrcMemFAddr | ModRM | ImplicitOps | Stack, em_call_far), | 3225 | I(SrcMemFAddr | ModRM | ImplicitOps | Stack, em_call_far), |
3224 | D(SrcMem | ModRM | Stack), D(SrcMemFAddr | ModRM | ImplicitOps), | 3226 | I(SrcMem | ModRM | Stack, em_grp45), |
3225 | D(SrcMem | ModRM | Stack), N, | 3227 | I(SrcMemFAddr | ModRM | ImplicitOps, em_grp45), |
3228 | I(SrcMem | ModRM | Stack, em_grp45), N, | ||
3226 | }; | 3229 | }; |
3227 | 3230 | ||
3228 | static struct opcode group6[] = { | 3231 | static struct opcode group6[] = { |
@@ -4082,12 +4085,6 @@ special_insn: | |||
4082 | case 0xfd: /* std */ | 4085 | case 0xfd: /* std */ |
4083 | ctxt->eflags |= EFLG_DF; | 4086 | ctxt->eflags |= EFLG_DF; |
4084 | break; | 4087 | break; |
4085 | case 0xfe: /* Grp4 */ | ||
4086 | rc = em_grp45(ctxt); | ||
4087 | break; | ||
4088 | case 0xff: /* Grp5 */ | ||
4089 | rc = em_grp45(ctxt); | ||
4090 | break; | ||
4091 | default: | 4088 | default: |
4092 | goto cannot_emulate; | 4089 | goto cannot_emulate; |
4093 | } | 4090 | } |