* [Qemu-devel] [PATCH v2] target-arm: Set carry flag correctly for Thumb2 ORNS
@ 2011-03-06 20:32 Peter Maydell
2011-03-06 22:32 ` [Qemu-devel] " Aurelien Jarno
0 siblings, 1 reply; 2+ messages in thread
From: Peter Maydell @ 2011-03-06 20:32 UTC (permalink / raw)
To: qemu-devel; +Cc: Aurelien Jarno, patches
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 <peter.maydell@linaro.org>
---
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
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Qemu-devel] Re: [PATCH v2] target-arm: Set carry flag correctly for Thumb2 ORNS
2011-03-06 20:32 [Qemu-devel] [PATCH v2] target-arm: Set carry flag correctly for Thumb2 ORNS Peter Maydell
@ 2011-03-06 22:32 ` Aurelien Jarno
0 siblings, 0 replies; 2+ messages in thread
From: Aurelien Jarno @ 2011-03-06 22:32 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-devel, patches
On Sun, Mar 06, 2011 at 08:32:09PM +0000, Peter Maydell wrote:
> 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 <peter.maydell@linaro.org>
> ---
> Change from v1: use orc as suggested by Aurelien
>
> target-arm/translate.c | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
Thanks, applied.
> 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
>
>
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-03-06 22:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-06 20:32 [Qemu-devel] [PATCH v2] target-arm: Set carry flag correctly for Thumb2 ORNS Peter Maydell
2011-03-06 22:32 ` [Qemu-devel] " Aurelien Jarno
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).