From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH non-atomic-injection] x86 emulator: Add 2 operand imul instruction (opcode 0x0f 0xaf) Date: Wed, 18 Aug 2010 20:56:18 +0300 Message-ID: <4C6C1EC2.9030106@redhat.com> References: <1282153210-4309-1-git-send-email-m.gamal005@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Mohammed Gamal Return-path: Received: from mx1.redhat.com ([209.132.183.28]:61399 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751201Ab0HRR4X (ORCPT ); Wed, 18 Aug 2010 13:56:23 -0400 In-Reply-To: <1282153210-4309-1-git-send-email-m.gamal005@gmail.com> Sender: kvm-owner@vger.kernel.org List-ID: On 08/18/2010 08:40 PM, Mohammed Gamal wrote: > Signed-off-by: Mohammed Gamal > --- > arch/x86/kvm/emulate.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c > index cb3282c..3311c68 100644 > --- a/arch/x86/kvm/emulate.c > +++ b/arch/x86/kvm/emulate.c > @@ -2474,7 +2474,7 @@ static struct opcode twobyte_table[256] = { > N, D(DstMem | SrcReg | ModRM | BitOp | Lock), > D(DstMem | SrcReg | Src2ImmByte | ModRM), > D(DstMem | SrcReg | Src2CL | ModRM), > - D(ModRM), N, > + D(ModRM), D(DstReg | SrcMem | ModRM), > /* 0xB0 - 0xB7 */ > D(ByteOp | DstMem | SrcReg | ModRM | Lock), D(DstMem | SrcReg | ModRM | Lock), > N, D(DstMem | SrcReg | ModRM | BitOp | Lock), > @@ -3567,6 +3567,9 @@ twobyte_insn: > break; > case 0xae: /* clflush */ > break; > + case 0xaf: > + emulate_2op_SrcV_nobyte("imul", c->src, c->dst, ctxt->eflags); > + break; > case 0xb0 ... 0xb1: /* cmpxchg */ > /* > * Save real source value, then compare EAX against I already added this, please look at the non-atomic-injection branch. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.