[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
- [Qemu-devel] [PATCH 04/10] tcg: Use helper-gen.h in tcg-op.h, (continued)
- [Qemu-devel] [PATCH 04/10] tcg: Use helper-gen.h in tcg-op.h, Richard Henderson, 2014/05/12
- [Qemu-devel] [PATCH 08/10] tcg: Save flags and computed sizemask in TCGHelperInfo, Richard Henderson, 2014/05/12
- [Qemu-devel] [PATCH 07/10] tcg: Register the helper info struct rather than the name, Richard Henderson, 2014/05/12
- [Qemu-devel] [PATCH 09/10] tcg: Remove sizemask and flags arguments to tcg_gen_callN, Richard Henderson, 2014/05/12
- [Qemu-devel] [PATCH 10/10] tcg: Move size effects out of dh_arg, Richard Henderson, 2014/05/12
- Re: [Qemu-devel] [PATCH 10/10] tcg: Move size effects out of dh_arg,
Alex Bennée <=