KVM: x86: Mark VEX-prefix instructions emulation as unimplemented
Currently the emulator does not recognize vex-prefix instructions. However, it may incorrectly decode lgdt/lidt instructions and try to execute them. This patch returns unhandlable error on their emulation. Signed-off-by: Nadav Amit <namit@cs.technion.ac.il> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
7171511eae
commit
7fe864dc94
@ -4314,6 +4314,13 @@ done_prefixes:
|
|||||||
if (ctxt->d & ModRM)
|
if (ctxt->d & ModRM)
|
||||||
ctxt->modrm = insn_fetch(u8, ctxt);
|
ctxt->modrm = insn_fetch(u8, ctxt);
|
||||||
|
|
||||||
|
/* vex-prefix instructions are not implemented */
|
||||||
|
if (ctxt->opcode_len == 1 && (ctxt->b == 0xc5 || ctxt->b == 0xc4) &&
|
||||||
|
(mode == X86EMUL_MODE_PROT64 ||
|
||||||
|
(mode >= X86EMUL_MODE_PROT16 && (ctxt->modrm & 0x80)))) {
|
||||||
|
ctxt->d = NotImpl;
|
||||||
|
}
|
||||||
|
|
||||||
while (ctxt->d & GroupMask) {
|
while (ctxt->d & GroupMask) {
|
||||||
switch (ctxt->d & GroupMask) {
|
switch (ctxt->d & GroupMask) {
|
||||||
case Group:
|
case Group:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user