[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);
>
- [PATCH v6 01/26] tcg: Combine dh_is_64bit and dh_is_signed to dh_typecode, (continued)
- [PATCH v6 01/26] tcg: Combine dh_is_64bit and dh_is_signed to dh_typecode, Richard Henderson, 2021/05/02
- [PATCH v6 04/26] plugins: Drop tcg_flags from struct qemu_plugin_dyn_cb, Richard Henderson, 2021/05/02
- [PATCH v6 06/26] tcg: Store the TCGHelperInfo in the TCGOp for call, Richard Henderson, 2021/05/02
- [PATCH v6 05/26] accel/tcg: Add tcg call flags to plugins helpers, Richard Henderson, 2021/05/02
- [PATCH v6 07/26] tcg: Add tcg_call_func, Richard Henderson, 2021/05/02
- Re: [PATCH v6 07/26] tcg: Add tcg_call_func,
Philippe Mathieu-Daudé <=
- [PATCH v6 08/26] tcg: Build ffi data structures for helpers, Richard Henderson, 2021/05/02
- [PATCH v6 10/26] tcg/tci: Move call-return regs to end of tcg_target_reg_alloc_order, Richard Henderson, 2021/05/02
- [PATCH v6 13/26] tcg/tci: Emit setcond before brcond, Richard Henderson, 2021/05/02
- [PATCH v6 11/26] tcg/tci: Use ffi for calls, Richard Henderson, 2021/05/02
- [PATCH v6 14/26] tcg/tci: Remove tci_write_reg, Richard Henderson, 2021/05/02