From: Takuya Yoshikawa <yoshikawa.tak...@oss.ntt.co.jp>

INSB       : 6C
INSW/INSD  : 6D
OUTSB      : 6E
OUTSW/OUTSD: 6F

The I/O port address is read from the DX register when we decode the
operand because we see the SrcDX/DstDX flag is set.

Signed-off-by: Takuya Yoshikawa <yoshikawa.tak...@oss.ntt.co.jp>
---
 arch/x86/kvm/emulate.c |   14 ++------------
 1 files changed, 2 insertions(+), 12 deletions(-)

diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 4cd3313..ac8e5ed 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -3321,8 +3321,8 @@ static struct opcode opcode_table[256] = {
        I(DstReg | SrcMem | ModRM | Src2Imm, em_imul_3op),
        I(SrcImmByte | Mov | Stack, em_push),
        I(DstReg | SrcMem | ModRM | Src2ImmByte, em_imul_3op),
-       D2bvIP(DstDI | SrcDX | Mov | String, ins, check_perm_in), /* insb, 
insw/insd */
-       D2bvIP(SrcSI | DstDX | String, outs, check_perm_out), /* outsb, 
outsw/outsd */
+       I2bvIP(DstDI | SrcDX | Mov | String, em_in, ins, check_perm_in), /* 
insb, insw/insd */
+       I2bvIP(SrcSI | DstDX | String, em_out, outs, check_perm_out), /* outsb, 
outsw/outsd */
        /* 0x70 - 0x7F */
        X16(D(SrcImmByte)),
        /* 0x80 - 0x87 */
@@ -4027,16 +4027,6 @@ special_insn:
                        goto cannot_emulate;
                ctxt->dst.val = (s32) ctxt->src.val;
                break;
-       case 0x6c:              /* insb */
-       case 0x6d:              /* insw/insd */
-               ctxt->src.val = ctxt->regs[VCPU_REGS_RDX];
-               rc = em_in(ctxt);
-               break;
-       case 0x6e:              /* outsb */
-       case 0x6f:              /* outsw/outsd */
-               ctxt->dst.val = ctxt->regs[VCPU_REGS_RDX];
-               rc = em_out(ctxt);
-               break;
        case 0x70 ... 0x7f: /* jcc (short) */
                if (test_cc(ctxt->b, ctxt->eflags))
                        jmp_rel(ctxt, ctxt->src.val);
-- 
1.7.5.4

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to