From b19e4e7977d76e52ec77ce9d938a893456cec417 Mon Sep 17 00:00:00 2001 From: fridtjof Date: Wed, 13 May 2026 15:05:14 +0200 Subject: [PATCH] CR16C: fix incorrect condition for BRhs (higher or same) "Z or L flag is 1", according to programmer's reference --- target/cr16c/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/cr16c/translate.c b/target/cr16c/translate.c index ad654a4546..7c8a948687 100644 --- a/target/cr16c/translate.c +++ b/target/cr16c/translate.c @@ -1298,7 +1298,7 @@ static void gen_br_cond(DisasContext* ctx, int cond, TCGLabel* l) { break; case CR16C_COND_HS: temp = tcg_temp_new_i32(); - tcg_gen_and_i32(temp, psr_z, psr_l); + tcg_gen_or_i32(temp, psr_z, psr_l); tcg_gen_brcondi_i32(TCG_COND_NE, temp, 1, l); break; case CR16C_COND_LT: