aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/x86_emulate.c
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2008-11-27 17:14:07 -0500
committerAvi Kivity <avi@redhat.com>2008-12-31 09:55:05 -0500
commitcf5de4f886116871c2ae2eee53524edd741a68ae (patch)
treed9d4626a7a46086784ef1fad2c0960f00a353e59 /arch/x86/kvm/x86_emulate.c
parent8a09b6877f3100207b3572e7e12ea796493fe914 (diff)
KVM: x86 emulator: fix ret emulation
'ret' did not set the operand type or size for the destination, so writeback ignored it. Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86_emulate.c')
-rw-r--r--arch/x86/kvm/x86_emulate.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86_emulate.c b/arch/x86/kvm/x86_emulate.c
index 702de9869c19..72ae86b1b131 100644
--- a/arch/x86/kvm/x86_emulate.c
+++ b/arch/x86/kvm/x86_emulate.c
@@ -1650,7 +1650,9 @@ special_insn:
1650 emulate_grp2(ctxt); 1650 emulate_grp2(ctxt);
1651 break; 1651 break;
1652 case 0xc3: /* ret */ 1652 case 0xc3: /* ret */
1653 c->dst.type = OP_REG;
1653 c->dst.ptr = &c->eip; 1654 c->dst.ptr = &c->eip;
1655 c->dst.bytes = c->op_bytes;
1654 goto pop_instruction; 1656 goto pop_instruction;
1655 case 0xc6 ... 0xc7: /* mov (sole member of Grp11) */ 1657 case 0xc6 ... 0xc7: /* mov (sole member of Grp11) */
1656 mov: 1658 mov: