qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH for-8.1] target/sparc: Use tcg_gen_lookup_and_goto_ptr


From: Mark Cave-Ayland
Subject: Re: [PATCH for-8.1] target/sparc: Use tcg_gen_lookup_and_goto_ptr
Date: Wed, 5 Apr 2023 22:09:12 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0

On 05/04/2023 19:59, Richard Henderson wrote:

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

diff --git a/target/sparc/translate.c b/target/sparc/translate.c
index 137bdc5159..47940fd85e 100644
--- a/target/sparc/translate.c
+++ b/target/sparc/translate.c
@@ -322,7 +322,7 @@ static void gen_goto_tb(DisasContext *s, int tb_num,
          /* jump to another page: currently not optimized */
          tcg_gen_movi_tl(cpu_pc, pc);
          tcg_gen_movi_tl(cpu_npc, npc);
-        tcg_gen_exit_tb(NULL, 0);
+        tcg_gen_lookup_and_goto_ptr();
      }
  }
@@ -4153,7 +4153,7 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn)
                                  /* End TB to notice changed ASI.  */
                                  save_state(dc);
                                  gen_op_next_insn();
-                                tcg_gen_exit_tb(NULL, 0);
+                                tcg_gen_lookup_and_goto_ptr();
                                  dc->base.is_jmp = DISAS_NORETURN;
                                  break;
                              case 0x6: /* V9 wrfprs */
@@ -4162,7 +4162,7 @@ static void disas_sparc_insn(DisasContext * dc, unsigned 
int insn)
                                  dc->fprs_dirty = 0;
                                  save_state(dc);
                                  gen_op_next_insn();
-                                tcg_gen_exit_tb(NULL, 0);
+                                tcg_gen_lookup_and_goto_ptr();
                                  dc->base.is_jmp = DISAS_NORETURN;
                                  break;
                              case 0xf: /* V9 sir, nop if user */
@@ -5661,7 +5661,7 @@ static void sparc_tr_tb_stop(DisasContextBase *dcbase, 
CPUState *cs)
                  tcg_gen_movi_tl(cpu_pc, dc->pc);
              }
              save_npc(dc);
-            tcg_gen_exit_tb(NULL, 0);
+            tcg_gen_lookup_and_goto_ptr();
          }
          break;

I can certainly give this an R-B, however I'm fairly sure I tried this a couple of years back and found that it introduced random hangs on qemu-system-sparc64 :/. Have you seen any issues in the relevant avocado tests with this patch applied?


ATB,

Mark.



reply via email to

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