From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 15/15] KVM: x86 emulator: Decode memory operands directly into a 'struct operand' Date: Mon, 02 Aug 2010 10:36:16 +0300 Message-ID: <4C567570.8080905@redhat.com> References: <1280672613-14026-1-git-send-email-avi@redhat.com> <1280672613-14026-16-git-send-email-avi@redhat.com> <4C5673B5.3000805@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, Marcelo Tosatti To: Paolo Bonzini Return-path: Received: from mx1.redhat.com ([209.132.183.28]:61295 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751410Ab0HBHgR (ORCPT ); Mon, 2 Aug 2010 03:36:17 -0400 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o727aH16020769 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 2 Aug 2010 03:36:17 -0400 Received: from cleopatra.tlv.redhat.com (cleopatra.tlv.redhat.com [10.35.255.11]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o727aGGu018052 for ; Mon, 2 Aug 2010 03:36:17 -0400 In-Reply-To: <4C5673B5.3000805@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 08/02/2010 10:28 AM, Paolo Bonzini wrote: > On 08/01/2010 04:23 PM, Avi Kivity wrote: >> if (c->src.type == OP_MEM) { >> + if (c->d & NoAccess) >> + goto no_fetch; >> rc = read_emulated(ctxt, ops, c->src.addr.mem, >> c->src.valptr, c->src.bytes); >> if (rc != X86EMUL_CONTINUE) >> goto done; >> c->src.orig_val = c->src.val; >> + no_fetch: >> + ; >> } > > Maybe remove the goto? > > if (c->src.type == OP_MEM && !(c->d & NoAccess)) { > rc = read_emulated(ctxt, ops, c->src.addr.mem, > c->src.valptr, c->src.bytes); > if (rc != X86EMUL_CONTINUE) > goto done; > c->src.orig_val = c->src.val; > } > > Or do you have other plans for it? :) > Mostly, keeping the patch as small as possible. I'll definitely do a cleanup pass later. -- error compiling committee.c: too many arguments to function