From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47935) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YJ7Ed-0007tU-HN for qemu-devel@nongnu.org; Wed, 04 Feb 2015 16:11:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YJ7EY-0005rg-UZ for qemu-devel@nongnu.org; Wed, 04 Feb 2015 16:11:43 -0500 Received: from mail.uni-paderborn.de ([131.234.142.9]:57979) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YJ7EY-0005rc-Ol for qemu-devel@nongnu.org; Wed, 04 Feb 2015 16:11:38 -0500 Message-ID: <54D2995B.7040205@mail.uni-paderborn.de> Date: Wed, 04 Feb 2015 22:12:43 +0000 From: Bastian Koppelmann MIME-Version: 1.0 References: <1422977710-22038-1-git-send-email-rth@twiddle.net> <1422977710-22038-2-git-send-email-rth@twiddle.net> In-Reply-To: <1422977710-22038-2-git-send-email-rth@twiddle.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3 1/8] tcg: Move some opcode generation functions out of line List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org On 02/03/2015 03:35 PM, Richard Henderson wrote: > Some of these functions are really quite large. We have a number of > things that ought to be circularly dependent, but we duplicated code > to break that chain for the inlines. > > This saved 25% of the code size of one of the translators I examined. > > Reviewed-by: Bastian Koppelmann > Signed-off-by: Richard Henderson > --- > Makefile.target | 2 +- > tcg/tcg-op.c | 1978 +++++++++++++++++++++++++++++++++++++++++++ > tcg/tcg-op.h | 2488 ++++++++----------------------------------------------- > tcg/tcg.c | 137 --- > tcg/tcg.h | 3 - > 5 files changed, 2339 insertions(+), 2269 deletions(-) > create mode 100644 tcg/tcg-op.c > > > +static inline TCGMemOp tcg_canonicalize_memop(TCGMemOp op, bool is64, bool st) > +{ > + switch (op & MO_SIZE) { > + case MO_8: > + op &= ~MO_BSWAP; > + break; > + case MO_16: > + break; > + case MO_32: > + if (!is64) { > + op &= ~MO_SIGN; > + } > + break; > + case MO_64: > + if (!is64) { > + tcg_abort(); > + } > + break; > + } > + if (st) { > + op &= ~MO_SIGN; > > + } I've got some weird trailing whitespace here, but maybe it's just my mail client. Cheers, Bastian