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 - 2024 Red Hat, Inc.