[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 01/26] accel/tcg: Introduce translator_use_goto_tb
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH 01/26] accel/tcg: Introduce translator_use_goto_tb |
Date: |
Mon, 21 Jun 2021 14:50:14 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 |
Hi Richard,
On 6/21/21 3:34 AM, Richard Henderson wrote:
> Add a generic version of the common use_goto_tb test.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> include/exec/translator.h | 10 ++++++++++
> accel/tcg/translator.c | 11 +++++++++++
> 2 files changed, 21 insertions(+)
>
> diff --git a/include/exec/translator.h b/include/exec/translator.h
> index 24232ead41..dd9c06d40d 100644
> --- a/include/exec/translator.h
> +++ b/include/exec/translator.h
> @@ -145,6 +145,16 @@ void translator_loop(const TranslatorOps *ops,
> DisasContextBase *db,
>
> void translator_loop_temp_check(DisasContextBase *db);
>
> +/**
> + * translator_use_goto_tb
> + * @db: Disassembly context
> + * @dest: target pc of the goto
> + *
> + * Return true if goto_tb is allowed between the current TB
> + * and the destination PC.
> + */
> +bool translator_use_goto_tb(DisasContextBase *db, target_ulong dest);
> +
> /*
> * Translator Load Functions
> *
> diff --git a/accel/tcg/translator.c b/accel/tcg/translator.c
> index 1d32732198..59804af37b 100644
> --- a/accel/tcg/translator.c
> +++ b/accel/tcg/translator.c
> @@ -31,6 +31,17 @@ void translator_loop_temp_check(DisasContextBase *db)
> }
> }
>
> +bool translator_use_goto_tb(DisasContextBase *db, target_ulong dest)
> +{
> + /* Suppress goto_tb in the case of single-steping. */
> + if (db->singlestep_enabled || singlestep) {
> + return false;
> + }
> +
I notice various targets do:
#ifdef CONFIG_USER_ONLY
return true;
#else
> + /* Check for the dest on the same page as the start of the TB. */
> + return ((db->pc_first ^ dest) & TARGET_PAGE_MASK) == 0;
#endif
> +}
Is that OK to remove this case? If so, it might be worth a comment
somewhere.
Regards,
Phil.
- [PATCH 00/26] accel/tcg: Introduce translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 04/26] target/alpha: Use translator_use_goto_tb, Richard Henderson, 2021/06/20
- [PATCH 02/26] target/alpha: Remove use_exit_tb, Richard Henderson, 2021/06/20
- [PATCH 07/26] target/avr: Mark some helpers noreturn, Richard Henderson, 2021/06/20
- [PATCH 05/26] target/arm: Use translator_use_goto_tb, Richard Henderson, 2021/06/20