summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--target/hppa/translate.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 62cc3c3117..b19d7c64fe 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -1006,9 +1006,8 @@ static DisasCond do_unit_zero_cond(unsigned cf, bool d, TCGv_i64 res)
     tmp = tcg_temp_new_i64();
     tcg_gen_subi_i64(tmp, res, ones);
     tcg_gen_andc_i64(tmp, tmp, res);
-    tcg_gen_andi_i64(tmp, tmp, sgns);
 
-    return cond_make_ti(cf & 1 ? TCG_COND_EQ : TCG_COND_NE, tmp, 0);
+    return cond_make_ti(cf & 1 ? TCG_COND_TSTEQ : TCG_COND_TSTNE, tmp, sgns);
 }
 
 static TCGv_i64 get_carry(DisasContext *ctx, bool d,