All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <rth@twiddle.net>
Cc: qemu-devel@nongnu.org, aurelien@aurel32.net
Subject: Re: [Qemu-devel] [PATCH 10/10] tcg: Move size effects out of dh_arg
Date: Tue, 13 May 2014 10:42:31 +0100	[thread overview]
Message-ID: <87wqdq6mm0.fsf@linaro.org> (raw)
In-Reply-To: <1399938424-6703-11-git-send-email-rth@twiddle.net>


Richard Henderson <rth@twiddle.net> writes:

> Tidying the initialization of the args arrays at the same time.
>
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
>  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 <alex.bennee@linaro.org>

>  
>  #define dh_arg_decl(t, n) glue(TCGv_, dh_alias(t)) glue(arg, n)

-- 
Alex Bennée

      reply	other threads:[~2014-05-13  9:42 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-12 23:46 [Qemu-devel] [PATCH 00/10] tcg cleanup and optimization Richard Henderson
2014-05-12 23:46 ` [Qemu-devel] [PATCH 01/10] tcg: Optimize brcond2 and setcond2 ne/eq Richard Henderson
2014-05-12 23:46 ` [Qemu-devel] [PATCH 02/10] tcg: Invert the inclusion of helper.h Richard Henderson
2014-05-13  9:10   ` Alex Bennée
2014-05-12 23:46 ` [Qemu-devel] [PATCH 03/10] tcg: Push tcg-runtime routines into exec/helper-* Richard Henderson
2014-05-13  9:20   ` Alex Bennée
2014-05-13 13:39     ` Richard Henderson
2014-05-12 23:46 ` [Qemu-devel] [PATCH 04/10] tcg: Use helper-gen.h in tcg-op.h Richard Henderson
2014-05-13  9:34   ` Alex Bennée
2014-05-13 13:44     ` Richard Henderson
2014-05-12 23:46 ` [Qemu-devel] [PATCH 05/10] tcg: Inline tcg_gen_helperN Richard Henderson
2014-05-13  9:34   ` Alex Bennée
2014-05-12 23:47 ` [Qemu-devel] [PATCH 06/10] tcg: Move side effects out of dh_sizemask Richard Henderson
2014-05-12 23:47 ` [Qemu-devel] [PATCH 07/10] tcg: Register the helper info struct rather than the name Richard Henderson
2014-05-13  9:36   ` Alex Bennée
2014-05-12 23:47 ` [Qemu-devel] [PATCH 08/10] tcg: Save flags and computed sizemask in TCGHelperInfo Richard Henderson
2014-05-13  9:38   ` Alex Bennée
2014-05-13 13:54     ` Richard Henderson
2014-05-12 23:47 ` [Qemu-devel] [PATCH 09/10] tcg: Remove sizemask and flags arguments to tcg_gen_callN Richard Henderson
2014-05-12 23:47 ` [Qemu-devel] [PATCH 10/10] tcg: Move size effects out of dh_arg Richard Henderson
2014-05-13  9:42   ` Alex Bennée [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87wqdq6mm0.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=aurelien@aurel32.net \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.