On Fri, Aug 19, 2022 at 1:26 PM Richard Henderson
wrote:
>
> From: Ilya Leoshkevich
>
> Introduce a function that checks whether a given address is on the same
> page as where disassembly started. Having it improves readability of
> the following patches.
>
> Signed-off-by: Ilya Leoshkevich
> Message-Id: <20220811095534.241224-3-...@linux.ibm.com>
> Reviewed-by: Richard Henderson
> [rth: Make the DisasContextBase parameter const.]
> Signed-off-by: Richard Henderson
Reviewed-by: Alistair Francis
Alistair
> ---
> include/exec/translator.h | 10 ++
> 1 file changed, 10 insertions(+)
>
> diff --git a/include/exec/translator.h b/include/exec/translator.h
> index 7db6845535..0d0bf3a31e 100644
> --- a/include/exec/translator.h
> +++ b/include/exec/translator.h
> @@ -187,4 +187,14 @@ FOR_EACH_TRANSLATOR_LD(GEN_TRANSLATOR_LD)
>
> #undef GEN_TRANSLATOR_LD
>
> +/*
> + * Return whether addr is on the same page as where disassembly started.
> + * Translators can use this to enforce the rule that only single-insn
> + * translation blocks are allowed to cross page boundaries.
> + */
> +static inline bool is_same_page(const DisasContextBase *db, target_ulong
> addr)
> +{
> +return ((addr ^ db->pc_first) & TARGET_PAGE_MASK) == 0;
> +}
> +
> #endif /* EXEC__TRANSLATOR_H */
> --
> 2.34.1
>
>