KVM: x86 emulator: fix popf emulation
authorAvi Kivity <avi@redhat.com>
Sat, 29 Nov 2008 18:36:13 +0000 (20:36 +0200)
committerAvi Kivity <avi@redhat.com>
Wed, 31 Dec 2008 14:55:05 +0000 (16:55 +0200)
Set operand type and size to get correct writeback behavior.

Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/x86_emulate.c

index 72ae86b..e8c87cc 100644 (file)
@@ -1552,7 +1552,9 @@ special_insn:
                emulate_push(ctxt);
                break;
        case 0x9d: /* popf */
+               c->dst.type = OP_REG;
                c->dst.ptr = (unsigned long *) &ctxt->eflags;
+               c->dst.bytes = c->op_bytes;
                goto pop_instruction;
        case 0xa0 ... 0xa1:     /* mov */
                c->dst.ptr = (unsigned long *)&c->regs[VCPU_REGS_RAX];