qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] target/i386: fix translation for icount mode


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] target/i386: fix translation for icount mode
Date: Thu, 20 Sep 2018 16:03:26 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

On 20/09/2018 09:17, Pavel Dovgalyuk wrote:
> This patch fixes the checking of boundary crossing instructions.
> In icount mode only first instruction of the block may cross
> the page boundary to keep the translation deterministic.
> These conditions already existed, but compared the wrong variable.
> 
> Signed-off-by: Pavel Dovgalyuk <address@hidden>
> ---
>  target/i386/translate.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/target/i386/translate.c b/target/i386/translate.c
> index 1f9d1d9..c946bc4 100644
> --- a/target/i386/translate.c
> +++ b/target/i386/translate.c
> @@ -8510,10 +8510,10 @@ static void i386_tr_translate_insn(DisasContextBase 
> *dcbase, CPUState *cpu)
>             chance to happen */
>          dc->base.is_jmp = DISAS_TOO_MANY;
>      } else if ((tb_cflags(dc->base.tb) & CF_USE_ICOUNT)
> -               && ((dc->base.pc_next & TARGET_PAGE_MASK)
> -                   != ((dc->base.pc_next + TARGET_MAX_INSN_SIZE - 1)
> +               && ((pc_next & TARGET_PAGE_MASK)
> +                   != ((pc_next + TARGET_MAX_INSN_SIZE - 1)
>                         & TARGET_PAGE_MASK)
> -                   || (dc->base.pc_next & ~TARGET_PAGE_MASK) == 0)) {
> +                   || (pc_next & ~TARGET_PAGE_MASK) == 0)) {
>          /* Do not cross the boundary of the pages in icount mode,
>             it can cause an exception. Do it only when boundary is
>             crossed by the first instruction in the block.
> 

Queued, but perhaps this check should be applied to the generic code?...

Paolo



reply via email to

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