From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53433) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wk96G-0001we-JY for qemu-devel@nongnu.org; Tue, 13 May 2014 05:34:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wk96B-00071r-H7 for qemu-devel@nongnu.org; Tue, 13 May 2014 05:34:16 -0400 Received: from static.88-198-71-155.clients.your-server.de ([88.198.71.155]:32938 helo=socrates.bennee.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wk96B-00071j-BZ for qemu-devel@nongnu.org; Tue, 13 May 2014 05:34:11 -0400 References: <1399938424-6703-1-git-send-email-rth@twiddle.net> <1399938424-6703-5-git-send-email-rth@twiddle.net> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: <1399938424-6703-5-git-send-email-rth@twiddle.net> Date: Tue, 13 May 2014 10:34:19 +0100 Message-ID: <8738ge81k4.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 04/10] tcg: Use helper-gen.h in tcg-op.h List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson Cc: qemu-devel@nongnu.org, aurelien@aurel32.net Richard Henderson writes: > No need to open-code the setup of the builtin helpers. > > Signed-off-by: Richard Henderson > --- > tcg/tcg-op.h | 175 +++++++++-------------------------------------------------- > 1 file changed, 25 insertions(+), 150 deletions(-) > > diff --git a/tcg/tcg-op.h b/tcg/tcg-op.h > index 8560695..f4367a0 100644 > --- a/tcg/tcg-op.h > +++ b/tcg/tcg-op.h > @@ -24,6 +24,14 @@ > #include "tcg.h" > #include "exec/helper-proto.h" > > +static inline void tcg_gen_helperN(void *func, int flags, int sizemask, > + TCGArg ret, int nargs, TCGArg *args) > +{ > + tcg_gen_callN(&tcg_ctx, func, flags, sizemask, ret, nargs, args); > +} > + > +#include "exec/helper-gen.h" > + > > -/* A version of dh_sizemask from def-helper.h that doesn't rely on > - preprocessor magic. */ > -static inline int tcg_gen_sizemask(int n, int is_64bit, int is_signed) > -{ > - return (is_64bit << n*2) | (is_signed << (n*2 + 1)); > -} > - > -/* helper calls */ > -static inline void tcg_gen_helperN(void *func, int flags, int sizemask, > - TCGArg ret, int nargs, TCGArg *args) > -{ > - tcg_gen_callN(&tcg_ctx, func, flags, sizemask, ret, nargs, args); > -} > - > > static inline void tcg_gen_ld8u_i32(TCGv_i32 ret, TCGv_ptr arg2, tcg_target_long offset) > @@ -708,12 +675,7 @@ static inline void tcg_gen_div_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) > tcg_gen_op5_i32(INDEX_op_div2_i32, ret, t0, arg1, t0, arg2); > tcg_temp_free_i32(t0); > } else { > - int sizemask = 0; > - /* Return value and both arguments are 32-bit and signed. */ > - sizemask |= tcg_gen_sizemask(0, 0, 1); > - sizemask |= tcg_gen_sizemask(1, 0, 1); > - sizemask |= tcg_gen_sizemask(2, 0, 1); > - tcg_gen_helper32(helper_div_i32, sizemask, ret, arg1, arg2); > + gen_helper_div_i32(ret, arg1, arg2); > } > } I'm having trouble figuring out what the sizemask stuff was trying to achieve and if it's required/covered after the change. Is the final helper now the one defined as? DEF(div_i32, 1, 2, 0, IMPL(TCG_TARGET_HAS_div_i32)) it's hard to follow the parameters of this compared to the target helpers where the the argument sizes are a lot more explicit. -- Alex Bennée