diff options
author | Guillaume Thouvenin <guillaume.thouvenin@ext.bull.net> | 2008-05-27 10:22:20 +0200 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-07-20 12:42:27 +0300 |
commit | 89c696383d6eb493351a89d450d8ad7a55cbe1da (patch) | |
tree | 52ba8d5e28a957e04817acca1d419c3641ffd9db /arch/x86 | |
parent | 3e6e0aab1ba1e8b354ce01f5659336f9aee69437 (diff) |
KVM: x86 emulator: Update c->dst.bytes in decode instruction
Update c->dst.bytes in decode instruction instead of instruction
itself. It's needed because if c->dst.bytes is equal to 0, the
instruction is not emulated.
Signed-off-by: Guillaume Thouvenin <guillaume.thouvenin@ext.bull.net>
Signed-off-by: Laurent Vivier <laurent.vivier@bull.net>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kvm/x86_emulate.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86_emulate.c b/arch/x86/kvm/x86_emulate.c index 932f216d890..a928aa6cdad 100644 --- a/arch/x86/kvm/x86_emulate.c +++ b/arch/x86/kvm/x86_emulate.c @@ -1049,6 +1049,7 @@ done_prefixes: break; case DstMem: if ((c->d & ModRM) && c->modrm_mod == 3) { + c->dst.bytes = (c->d & ByteOp) ? 1 : c->op_bytes; c->dst.type = OP_REG; c->dst.val = c->dst.orig_val = c->modrm_val; c->dst.ptr = c->modrm_ptr; |