diff --git a/target/e2k/translate.c b/target/e2k/translate.c index 7018816a62..7c3d46e452 100644 --- a/target/e2k/translate.c +++ b/target/e2k/translate.c @@ -441,7 +441,7 @@ static void e2k_tr_tb_start(DisasContextBase *db, CPUState *cs) { // DisasContext *ctx = container_of(db, DisasContext, base); - tcg_gen_movi_tl(e2k_cs.ct_cond, 1); + tcg_gen_movi_tl(e2k_cs.ct_cond, 0); } static void e2k_tr_insn_start(DisasContextBase *db, CPUState *cs) diff --git a/target/e2k/translate/control.c b/target/e2k/translate/control.c index 48f10b2bbc..c210b4c6d4 100644 --- a/target/e2k/translate/control.c +++ b/target/e2k/translate/control.c @@ -121,7 +121,6 @@ void e2k_commit_stubs(DisasContext *ctx) int abn = GET_FIELD(ss, 21, 2); int abg = GET_FIELD(ss, 23, 2); - if (alc) { TCGv_i64 t0 = tcg_temp_new_i64(); @@ -497,7 +496,9 @@ static void gen_jmp(DisasContext *dc) dc->ct.u.ctpr = e2k_cs.ctprs[ctpr - 1]; } - if (cond_type > 1) { + if (cond_type == 1) { + tcg_gen_movi_tl(e2k_cs.ct_cond, 1); + } else if (cond_type > 1) { /* TODO: single assign */ TCGv preg = tcg_temp_new(); TCGv loop_end = tcg_temp_new();