diff options
author | Avi Kivity <avi@redhat.com> | 2008-11-27 17:14:07 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2008-12-31 09:55:05 -0500 |
commit | cf5de4f886116871c2ae2eee53524edd741a68ae (patch) | |
tree | d9d4626a7a46086784ef1fad2c0960f00a353e59 /arch/x86/kvm/x86_emulate.c | |
parent | 8a09b6877f3100207b3572e7e12ea796493fe914 (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.c | 2 |
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: |