[PATCH] target/sh4: Update DisasContextBase.insn_start

Richard Henderson posted 1 patch 6 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240506195506.385921-1-richard.henderson@linaro.org
Maintainers: Yoshinori Sato <ysato@users.sourceforge.jp>
target/sh4/translate.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] target/sh4: Update DisasContextBase.insn_start
Posted by Richard Henderson 6 months, 3 weeks ago
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
Re: [PATCH] target/sh4: Update DisasContextBase.insn_start
Posted by Yoshinori Sato 6 months, 3 weeks ago
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>

-- 
Yosinori Sato
Re: [PATCH] target/sh4: Update DisasContextBase.insn_start
Posted by Philippe Mathieu-Daudé 6 months, 3 weeks ago
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>