qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 5/9] target/i386: Preserve DisasContextBase.insn_start across


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 5/9] target/i386: Preserve DisasContextBase.insn_start across rewind
Date: Tue, 9 Apr 2024 17:23:27 +0200
User-agent: Mozilla Thunderbird

On 7/4/24 00:32, Richard Henderson wrote:
When aborting translation of the current insn, restore the
previous value of insn_start.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
  target/i386/tcg/translate.c | 3 +++
  1 file changed, 3 insertions(+)


@@ -3123,6 +3124,7 @@ static bool disas_insn(DisasContext *s, CPUState *cpu)
          /* END TODO */
          s->base.num_insns--;
          tcg_remove_ops_after(s->prev_insn_end);
+        s->base.insn_start = s->prev_insn_start;
          s->base.is_jmp = DISAS_TOO_MANY;
          return false;
      default:
@@ -6995,6 +6997,7 @@ static void i386_tr_insn_start(DisasContextBase *dcbase, 
CPUState *cpu)
      DisasContext *dc = container_of(dcbase, DisasContext, base);
      target_ulong pc_arg = dc->base.pc_next;
+ dc->prev_insn_start = dc->base.insn_start;
      dc->prev_insn_end = tcg_last_op();
      if (tb_cflags(dcbase->tb) & CF_PCREL) {
          pc_arg &= ~TARGET_PAGE_MASK;

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>




reply via email to

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