qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v6 07/26] tcg: Add tcg_call_func


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v6 07/26] tcg: Add tcg_call_func
Date: Mon, 3 May 2021 23:50:19 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1

Hi Richard,

On 5/3/21 1:57 AM, Richard Henderson wrote:
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>  tcg/internal.h | 5 +++++
>  tcg/tcg.c      | 5 ++---
>  2 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/tcg/internal.h b/tcg/internal.h
> index c2d5e9c42f..cd128e2a83 100644
> --- a/tcg/internal.h
> +++ b/tcg/internal.h
> @@ -32,6 +32,11 @@ typedef struct TCGHelperInfo {
>      unsigned typemask;
>  } TCGHelperInfo;
>  
> +static inline void *tcg_call_func(TCGOp *op)
> +{
> +    return (void *)(uintptr_t)op->args[TCGOP_CALLO(op) + TCGOP_CALLI(op)];

Why not return tcg_insn_unit* type?

> +}
> +
>  static inline const TCGHelperInfo *tcg_call_info(TCGOp *op)
>  {
>      return (void *)(uintptr_t)op->args[TCGOP_CALLO(op) + TCGOP_CALLI(op) + 
> 1];
> diff --git a/tcg/tcg.c b/tcg/tcg.c
> index d42fa6c956..1e5e165bff 100644
> --- a/tcg/tcg.c
> +++ b/tcg/tcg.c
> @@ -2310,7 +2310,7 @@ static void tcg_dump_ops(TCGContext *s, bool have_prefs)
>              }
>          } else if (c == INDEX_op_call) {
>              const TCGHelperInfo *info = tcg_call_info(op);
> -            void *func;
> +            void *func = tcg_call_func(op);
>  
>              /* variable number of arguments */
>              nb_oargs = TCGOP_CALLO(op);
> @@ -2324,7 +2324,6 @@ static void tcg_dump_ops(TCGContext *s, bool have_prefs)
>               * Note that plugins have a template function for the info,
>               * but the actual function pointer comes from the plugin.
>               */
> -            func = (void *)(uintptr_t)op->args[nb_oargs + nb_iargs];
>              if (func == info->func) {
>                  col += qemu_log("%s", info->name);
>              } else {
> @@ -4346,7 +4345,7 @@ static void tcg_reg_alloc_call(TCGContext *s, TCGOp *op)
>      int allocate_args;
>      TCGRegSet allocated_regs;
>  
> -    func_addr = (tcg_insn_unit *)(intptr_t)op->args[nb_oargs + nb_iargs];
> +    func_addr = tcg_call_func(op);
>      flags = tcg_call_flags(op);
>  
>      nb_regs = ARRAY_SIZE(tcg_target_call_iarg_regs);
> 




reply via email to

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