Richard Henderson <[email protected]> writes: > Tidying the initialization of the args arrays at the same time. > > Signed-off-by: Richard Henderson <[email protected]> > --- > 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 <exec/helper-head.h> > > -#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 <[email protected]> > > #define dh_arg_decl(t, n) glue(TCGv_, dh_alias(t)) glue(arg, n) -- Alex Bennée
