diff mbox series

target/sh4: Update DisasContextBase.insn_start

Message ID 20240506195506.385921-1-richard.henderson@linaro.org
State Superseded
Headers show
Series target/sh4: Update DisasContextBase.insn_start | expand

Commit Message

Richard Henderson May 6, 2024, 7:55 p.m. UTC
Match the extra inserts of INDEX_op_insn_start, fixing
the db->num_insns != 1 assert in translator_loop.

Fixes: dcd092a0636 ("accel/tcg: Improve can_do_io management")
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/sh4/translate.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Philippe Mathieu-Daudé May 7, 2024, 2:42 p.m. UTC | #1
On 6/5/24 21:55, Richard Henderson wrote:
> Match the extra inserts of INDEX_op_insn_start,

Maybe insert here:

(see commit e03291cd9a "Emit insn_start for each insn in gUSA region")

  fixing
> the db->num_insns != 1 assert in translator_loop.
> 
> Fixes: dcd092a0636 ("accel/tcg: Improve can_do_io management")
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>   target/sh4/translate.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/target/sh4/translate.c b/target/sh4/translate.c
> index e599ab9d1a..b3282f3ac7 100644
> --- a/target/sh4/translate.c
> +++ b/target/sh4/translate.c
> @@ -2189,6 +2189,7 @@ static void decode_gusa(DisasContext *ctx, CPUSH4State *env)
>        */
>       for (i = 1; i < max_insns; ++i) {
>           tcg_gen_insn_start(pc + i * 2, ctx->envflags);
> +        ctx->base.insn_start = tcg_last_op();
>       }
>   }
>   #endif

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Yoshinori Sato May 8, 2024, 6:49 a.m. UTC | #2
On Tue, 07 May 2024 04:55:06 +0900,
Richard Henderson wrote:
> 
> Match the extra inserts of INDEX_op_insn_start, fixing
> the db->num_insns != 1 assert in translator_loop.
> 
> Fixes: dcd092a0636 ("accel/tcg: Improve can_do_io management")
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>  target/sh4/translate.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/target/sh4/translate.c b/target/sh4/translate.c
> index e599ab9d1a..b3282f3ac7 100644
> --- a/target/sh4/translate.c
> +++ b/target/sh4/translate.c
> @@ -2189,6 +2189,7 @@ static void decode_gusa(DisasContext *ctx, CPUSH4State *env)
>       */
>      for (i = 1; i < max_insns; ++i) {
>          tcg_gen_insn_start(pc + i * 2, ctx->envflags);
> +        ctx->base.insn_start = tcg_last_op();
>      }
>  }
>  #endif
> -- 
> 2.34.1
> 

Reviewed-by: Yoshinori Sato <ysato@users.sourceforge.jp>
diff mbox series

Patch

diff --git a/target/sh4/translate.c b/target/sh4/translate.c
index e599ab9d1a..b3282f3ac7 100644
--- a/target/sh4/translate.c
+++ b/target/sh4/translate.c
@@ -2189,6 +2189,7 @@  static void decode_gusa(DisasContext *ctx, CPUSH4State *env)
      */
     for (i = 1; i < max_insns; ++i) {
         tcg_gen_insn_start(pc + i * 2, ctx->envflags);
+        ctx->base.insn_start = tcg_last_op();
     }
 }
 #endif