KVM: x86: movnti minimum op size of 32-bit is not kept
If the operand-size prefix (0x66) is used in 64-bit mode, the emulator would assume the destination operand is 64-bit, when it should be 32-bit. Reminder: movnti does not support 16-bit operands and its default operand size is 32-bit. Signed-off-by: Nadav Amit <namit@cs.technion.ac.il> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
37c564f285
commit
3b32004a66
|
@ -4836,8 +4836,8 @@ twobyte_insn:
|
|||
break;
|
||||
case 0xc3: /* movnti */
|
||||
ctxt->dst.bytes = ctxt->op_bytes;
|
||||
ctxt->dst.val = (ctxt->op_bytes == 4) ? (u32) ctxt->src.val :
|
||||
(u64) ctxt->src.val;
|
||||
ctxt->dst.val = (ctxt->op_bytes == 8) ? (u64) ctxt->src.val :
|
||||
(u32) ctxt->src.val;
|
||||
break;
|
||||
default:
|
||||
goto cannot_emulate;
|
||||
|
|
Loading…
Reference in New Issue