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
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
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>
© 2016 - 2026 Red Hat, Inc.