Commit 394b6e59 authored by Avi Kivity's avatar Avi Kivity

KVM: x86 emulator: fix faulty check for two-byte opcode

Right now, the bug is harmless as we never emulate one-byte 0xb6 or 0xb7.
But things may change.

Noted by the mysterious Gabriel C.
Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent e3243452
...@@ -819,7 +819,7 @@ x86_emulate_memop(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops) ...@@ -819,7 +819,7 @@ x86_emulate_memop(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops)
case DstReg: case DstReg:
dst.type = OP_REG; dst.type = OP_REG;
if ((d & ByteOp) if ((d & ByteOp)
&& !(twobyte_table && (b == 0xb6 || b == 0xb7))) { && !(twobyte && (b == 0xb6 || b == 0xb7))) {
dst.ptr = decode_register(modrm_reg, _regs, dst.ptr = decode_register(modrm_reg, _regs,
(rex_prefix == 0)); (rex_prefix == 0));
dst.val = *(u8 *) dst.ptr; dst.val = *(u8 *) dst.ptr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment