[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2] target-arm: Set carry flag correctly for Thumb2
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH v2] target-arm: Set carry flag correctly for Thumb2 ORNS |
Date: |
Sun, 6 Mar 2011 20:32:09 +0000 |
The code for Thumb2 ORNS (or negated and set flags) was trashing
a TCG input register which was needed later for use in calculating
flags, with the effect that the carry flag was always set with
the wrong sense. Fix this by using the TCG orc op instead of
separate not and or ops.
Signed-off-by: Peter Maydell <address@hidden>
---
Change from v1: use orc as suggested by Aurelien
target-arm/translate.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/target-arm/translate.c b/target-arm/translate.c
index dbd958b..dd56ac6 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -7326,8 +7326,7 @@ gen_thumb2_data_op(DisasContext *s, int op, int conds,
uint32_t shifter_out, TCG
logic_cc = conds;
break;
case 3: /* orn */
- tcg_gen_not_i32(t1, t1);
- tcg_gen_or_i32(t0, t0, t1);
+ tcg_gen_orc_i32(t0, t0, t1);
logic_cc = conds;
break;
case 4: /* eor */
--
1.7.1
- [Qemu-devel] [PATCH v2] target-arm: Set carry flag correctly for Thumb2 ORNS,
Peter Maydell <=