diff options
author | Avi Kivity <avi@redhat.com> | 2008-11-27 11:06:33 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2008-12-31 09:55:04 -0500 |
commit | 8a09b6877f3100207b3572e7e12ea796493fe914 (patch) | |
tree | 6feab30b0db09d445d9a1750ebef759a3bcb30d7 /arch | |
parent | 781d0edc5fc5cfe7491a0c5081734e62f6dc66ee (diff) |
KVM: x86 emulator: switch 'pop reg' instruction to emulate_pop()
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kvm/x86_emulate.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/x86/kvm/x86_emulate.c b/arch/x86/kvm/x86_emulate.c index 70242f5f0964..702de9869c19 100644 --- a/arch/x86/kvm/x86_emulate.c +++ b/arch/x86/kvm/x86_emulate.c | |||
@@ -1389,14 +1389,11 @@ special_insn: | |||
1389 | break; | 1389 | break; |
1390 | case 0x58 ... 0x5f: /* pop reg */ | 1390 | case 0x58 ... 0x5f: /* pop reg */ |
1391 | pop_instruction: | 1391 | pop_instruction: |
1392 | if ((rc = ops->read_std(register_address(c, ss_base(ctxt), | 1392 | c->src.bytes = c->op_bytes; |
1393 | c->regs[VCPU_REGS_RSP]), c->dst.ptr, | 1393 | rc = emulate_pop(ctxt, ops); |
1394 | c->op_bytes, ctxt->vcpu)) != 0) | 1394 | if (rc != 0) |
1395 | goto done; | 1395 | goto done; |
1396 | 1396 | c->dst.val = c->src.val; | |
1397 | register_address_increment(c, &c->regs[VCPU_REGS_RSP], | ||
1398 | c->op_bytes); | ||
1399 | c->dst.type = OP_NONE; /* Disable writeback. */ | ||
1400 | break; | 1397 | break; |
1401 | case 0x63: /* movsxd */ | 1398 | case 0x63: /* movsxd */ |
1402 | if (ctxt->mode != X86EMUL_MODE_PROT64) | 1399 | if (ctxt->mode != X86EMUL_MODE_PROT64) |