qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 10/10] tcg: Move size effects out of dh_arg


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH 10/10] tcg: Move size effects out of dh_arg
Date: Tue, 13 May 2014 10:42:31 +0100
User-agent: mu4e 0.9.9.6pre3; emacs 24.3.91.1

Richard Henderson <address@hidden> writes:

> Tidying the initialization of the args arrays at the same time.
>
> Signed-off-by: Richard Henderson <address@hidden>
> ---
>  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 <address@hidden>

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

-- 
Alex Bennée




reply via email to

[Prev in Thread] Current Thread [Next in Thread]