From 1e4fb3fb09ced0aaf868a8b861fa1c302f901641 Mon Sep 17 00:00:00 2001 From: Takuya Yoshikawa Date: Sun, 29 May 2011 22:02:55 +0900 Subject: [PATCH] --- yaml --- r: 258021 b: refs/heads/master c: 5c5df76b8b32055956ee4cca338d29046016b13e h: refs/heads/master i: 258019: 80e95aa392d0b72deeb4c0e5fd2c4525d80463c3 v: v3 --- [refs] | 2 +- trunk/arch/x86/kvm/emulate.c | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 85aa103fdb5f..13e51b0a1abd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1bd5f469b2d54330ba41d9c4b857dc5051e8dcf7 +refs/heads/master: 5c5df76b8b32055956ee4cca338d29046016b13e diff --git a/trunk/arch/x86/kvm/emulate.c b/trunk/arch/x86/kvm/emulate.c index 5561680c1e9c..d7df7ba17b89 100644 --- a/trunk/arch/x86/kvm/emulate.c +++ b/trunk/arch/x86/kvm/emulate.c @@ -3769,7 +3769,6 @@ int x86_emulate_insn(struct x86_emulate_ctxt *ctxt) struct decode_cache *c = &ctxt->decode; int rc = X86EMUL_CONTINUE; int saved_dst_type = c->dst.type; - int irq; /* Used for int 3, int, and into */ c->mem_read.pos = 0; @@ -3963,18 +3962,14 @@ int x86_emulate_insn(struct x86_emulate_ctxt *ctxt) rc = emulate_load_segment(ctxt, VCPU_SREG_DS); break; case 0xcc: /* int3 */ - irq = 3; - goto do_interrupt; + rc = emulate_int(ctxt, 3); + break; case 0xcd: /* int n */ - irq = c->src.val; - do_interrupt: - rc = emulate_int(ctxt, irq); + rc = emulate_int(ctxt, c->src.val); break; case 0xce: /* into */ - if (ctxt->eflags & EFLG_OF) { - irq = 4; - goto do_interrupt; - } + if (ctxt->eflags & EFLG_OF) + rc = emulate_int(ctxt, 4); break; case 0xd0 ... 0xd1: /* Grp2 */ rc = em_grp2(ctxt);