From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55297) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wk9EE-0001aF-HM for qemu-devel@nongnu.org; Tue, 13 May 2014 05:42:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wk9E7-0001ei-Gy for qemu-devel@nongnu.org; Tue, 13 May 2014 05:42:30 -0400 Received: from static.88-198-71-155.clients.your-server.de ([88.198.71.155]:33050 helo=socrates.bennee.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wk9E7-0001eO-8t for qemu-devel@nongnu.org; Tue, 13 May 2014 05:42:23 -0400 References: <1399938424-6703-1-git-send-email-rth@twiddle.net> <1399938424-6703-11-git-send-email-rth@twiddle.net> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: <1399938424-6703-11-git-send-email-rth@twiddle.net> Date: Tue, 13 May 2014 10:42:31 +0100 Message-ID: <87wqdq6mm0.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 10/10] tcg: Move size effects out of dh_arg 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: > Tidying the initialization of the args arrays at the same time. > > Signed-off-by: Richard Henderson > --- > include/exec/helper-gen.h | 87 ++++++++++++++++++++-------------------------- > include/exec/helper-head.h | 2 +- > 2 files changed, 39 insertions(+), 50 deletions(-) > > diff --git a/include/exec/helper-gen.h b/include/exec/helper-gen.h > index 4d290b2..a04a034 100644 > --- a/include/exec/helper-gen.h > +++ b/include/exec/helper-gen.h > @@ -6,65 +6,54 @@ > > #include > > -#define DEF_HELPER_FLAGS_0(name, flags, ret) \ > -static inline void glue(gen_helper_, name)(dh_retvar_decl0(ret)) \ > -{ \ > - tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 0, NULL); \ > +#define DEF_HELPER_FLAGS_0(name, flags, ret) \ > +static inline void glue(gen_helper_, name)(dh_retvar_decl0(ret)) \ > +{ \ > + tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 0, NULL); \ > } > > -#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \ > -static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1)) \ > -{ \ > - TCGArg args[1]; \ > - dh_arg(t1, 1); \ > - tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 1, args); \ > +#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \ > +static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \ > + dh_arg_decl(t1, 1)) \ > +{ \ > + TCGArg args[1] = { dh_arg(t1, 1) }; \ > + tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 1, args); \ > } > > -#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \ > -static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1), \ > - dh_arg_decl(t2, 2)) \ > -{ \ > - TCGArg args[2]; \ > - dh_arg(t1, 1); \ > - dh_arg(t2, 2); \ > - tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 2, args); \ > +#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \ > +static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \ > + dh_arg_decl(t1, 1), dh_arg_decl(t2, 2)) \ > +{ \ > + TCGArg args[2] = { dh_arg(t1, 1), dh_arg(t2, 2) }; \ > + tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 2, args); \ > } > > -#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \ > -static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1), \ > - dh_arg_decl(t2, 2), dh_arg_decl(t3, 3)) \ > -{ \ > - TCGArg args[3]; \ > - dh_arg(t1, 1); \ > - dh_arg(t2, 2); \ > - dh_arg(t3, 3); \ > - tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 3, args); \ > +#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \ > +static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \ > + dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3)) \ > +{ \ > + TCGArg args[3] = { dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3) }; \ > + tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 3, args); \ > } > > -#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \ > -static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1), \ > - dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), dh_arg_decl(t4, 4)) \ > -{ \ > - TCGArg args[4]; \ > - dh_arg(t1, 1); \ > - dh_arg(t2, 2); \ > - dh_arg(t3, 3); \ > - dh_arg(t4, 4); \ > - tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 4, args); \ > +#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \ > +static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \ > + dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), \ > + dh_arg_decl(t3, 3), dh_arg_decl(t4, 4)) \ > +{ \ > + TCGArg args[4] = { dh_arg(t1, 1), dh_arg(t2, 2), \ > + dh_arg(t3, 3), dh_arg(t4, 4) }; \ > + tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 4, args); \ > } > > -#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \ > -static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \ > - dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), \ > - dh_arg_decl(t4, 4), dh_arg_decl(t5, 5)) \ > -{ \ > - TCGArg args[5]; \ > - dh_arg(t1, 1); \ > - dh_arg(t2, 2); \ > - dh_arg(t3, 3); \ > - dh_arg(t4, 4); \ > - dh_arg(t5, 5); \ > - tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 5, args); \ > +#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \ > +static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \ > + dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), \ > + dh_arg_decl(t4, 4), dh_arg_decl(t5, 5)) \ > +{ \ > + TCGArg args[5] = { dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3), \ > + dh_arg(t4, 4), dh_arg(t5, 5) }; \ > + tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 5, args); \ > } > > #include "helper.h" > diff --git a/include/exec/helper-head.h b/include/exec/helper-head.h > index 4c541ab..b009ccb 100644 > --- a/include/exec/helper-head.h > +++ b/include/exec/helper-head.h > @@ -112,7 +112,7 @@ > ((dh_is_64bit(t) << (n*2)) | (dh_is_signed(t) << (n*2+1))) > > #define dh_arg(t, n) \ > - (args[n - 1] = glue(GET_TCGV_, dh_alias(t))(glue(arg, n))) > + glue(GET_TCGV_, dh_alias(t))(glue(arg, n)) Yeah that's marginally cleaner. I'm going to have to work on better understanding the glue stuff. However based on superficial understanding: Reviewed-by: Alex Bennée > > #define dh_arg_decl(t, n) glue(TCGv_, dh_alias(t)) glue(arg, n) -- Alex Bennée