From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 1/2] KVM: x86 emulator: Move ModRM flags for groups to top level opcode tables Date: Mon, 30 Apr 2012 13:31:09 +0300 Message-ID: <4F9E69ED.7060601@redhat.com> References: <20120430174341.8a8cc2b9f9b613fdc51b7daf@gmail.com> <20120430174631.371b86aba2373acb05bc20cc@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: mtosatti@redhat.com, kvm@vger.kernel.org, yoshikawa.takuya@oss.ntt.co.jp To: Takuya Yoshikawa Return-path: Received: from mx1.redhat.com ([209.132.183.28]:11413 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756154Ab2D3LIN (ORCPT ); Mon, 30 Apr 2012 07:08:13 -0400 In-Reply-To: <20120430174631.371b86aba2373acb05bc20cc@gmail.com> Sender: kvm-owner@vger.kernel.org List-ID: On 04/30/2012 11:46 AM, Takuya Yoshikawa wrote: > From: Takuya Yoshikawa > > Needed for the following patch which simplifies ModRM fetching code. > > Signed-off-by: Takuya Yoshikawa > --- > arch/x86/kvm/emulate.c | 111 ++++++++++++++++++++++++------------------------ > 1 files changed, 56 insertions(+), 55 deletions(-) > > diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c > index 0d151e2..8d2c3d0 100644 > --- a/arch/x86/kvm/emulate.c > +++ b/arch/x86/kvm/emulate.c > @@ -3359,8 +3359,8 @@ static int check_perm_out(struct x86_emulate_ctxt *ctxt) > .check_perm = (_p) } > #define N D(0) > #define EXT(_f, _e) { .flags = ((_f) | RMExt), .u.group = (_e) } > -#define G(_f, _g) { .flags = ((_f) | Group), .u.group = (_g) } > -#define GD(_f, _g) { .flags = ((_f) | GroupDual), .u.gdual = (_g) } > +#define G(_f, _g) { .flags = ((_f) | Group | ModRM), .u.group = (_g) } > +#define GD(_f, _g) { .flags = ((_f) | GroupDual | ModRM), .u.gdual = (_g) } > #define I(_f, _e) { .flags = (_f), .u.execute = (_e) } > #define II(_f, _e, _i) \ > { .flags = (_f), .u.execute = (_e), .intercept = x86_intercept_##_i } > @@ -3380,25 +3380,25 @@ static int check_perm_out(struct x86_emulate_ctxt *ctxt) > I2bv(((_f) & ~Lock) | DstAcc | SrcImm, _e) > > static struct opcode group7_rm1[] = { > - DI(SrcNone | ModRM | Priv, monitor), > - DI(SrcNone | ModRM | Priv, mwait), > + DI(SrcNone | Priv, monitor), > + DI(SrcNone | Priv, mwait), > N, N, N, N, N, N, > }; > Removing ModRM everywhere isn't strictly necessary (but is okay). -- error compiling committee.c: too many arguments to function