mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 03:10:30 -04:00
KVM: x86 emulator: Use opcode::execute for Group 4/5 instructions
Group 4: FE Group 5: FF Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
committed by
Avi Kivity
parent
c15af35f54
commit
c04ec8393f
@@ -3213,16 +3213,19 @@ static struct opcode group3[] = {
|
||||
};
|
||||
|
||||
static struct opcode group4[] = {
|
||||
D(ByteOp | DstMem | SrcNone | ModRM | Lock), D(ByteOp | DstMem | SrcNone | ModRM | Lock),
|
||||
I(ByteOp | DstMem | SrcNone | ModRM | Lock, em_grp45),
|
||||
I(ByteOp | DstMem | SrcNone | ModRM | Lock, em_grp45),
|
||||
N, N, N, N, N, N,
|
||||
};
|
||||
|
||||
static struct opcode group5[] = {
|
||||
D(DstMem | SrcNone | ModRM | Lock), D(DstMem | SrcNone | ModRM | Lock),
|
||||
D(SrcMem | ModRM | Stack),
|
||||
I(DstMem | SrcNone | ModRM | Lock, em_grp45),
|
||||
I(DstMem | SrcNone | ModRM | Lock, em_grp45),
|
||||
I(SrcMem | ModRM | Stack, em_grp45),
|
||||
I(SrcMemFAddr | ModRM | ImplicitOps | Stack, em_call_far),
|
||||
D(SrcMem | ModRM | Stack), D(SrcMemFAddr | ModRM | ImplicitOps),
|
||||
D(SrcMem | ModRM | Stack), N,
|
||||
I(SrcMem | ModRM | Stack, em_grp45),
|
||||
I(SrcMemFAddr | ModRM | ImplicitOps, em_grp45),
|
||||
I(SrcMem | ModRM | Stack, em_grp45), N,
|
||||
};
|
||||
|
||||
static struct opcode group6[] = {
|
||||
@@ -4082,12 +4085,6 @@ int x86_emulate_insn(struct x86_emulate_ctxt *ctxt)
|
||||
case 0xfd: /* std */
|
||||
ctxt->eflags |= EFLG_DF;
|
||||
break;
|
||||
case 0xfe: /* Grp4 */
|
||||
rc = em_grp45(ctxt);
|
||||
break;
|
||||
case 0xff: /* Grp5 */
|
||||
rc = em_grp45(ctxt);
|
||||
break;
|
||||
default:
|
||||
goto cannot_emulate;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user