[v2] target-ppc: fix nego and subf*o instructions

Submitted by Aurelien Jarno on April 1, 2013, 12:33 a.m.

Details

Message ID 1364776396-21581-1-git-send-email-aurelien@aurel32.net
State New
Headers show

Commit Message

Aurelien Jarno April 1, 2013, 12:33 a.m.
The overflow computation of nego and subf*o instructions has been broken
in commit ffe30937. Contrary to other targets, the instruction is subtract
from an not subtract on PowerPC.

This patch fixes the issue by using the correct argument in the xor
computation. Thanks to Peter Maydell for the hint.

With this change the PPC emulation passes the Gwenole Beauchesne
testsuite again.

Cc: Alexander Graf <agraf@suse.de>
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 target-ppc/translate.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Richard Henderson April 1, 2013, 1:15 a.m.
On 03/31/2013 05:33 PM, Aurelien Jarno wrote:
> The overflow computation of nego and subf*o instructions has been broken
> in commit ffe30937. Contrary to other targets, the instruction is subtract
> from an not subtract on PowerPC.
> 
> This patch fixes the issue by using the correct argument in the xor
> computation. Thanks to Peter Maydell for the hint.
> 
> With this change the PPC emulation passes the Gwenole Beauchesne
> testsuite again.
> 
> Cc: Alexander Graf <agraf@suse.de>
> Cc: Richard Henderson <rth@twiddle.net>
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> ---
>  target-ppc/translate.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Richard Henderson <rth@twiddle.net>


r~
Alexander Graf April 2, 2013, 8:18 a.m.
On 01.04.2013, at 02:33, Aurelien Jarno wrote:

> The overflow computation of nego and subf*o instructions has been broken
> in commit ffe30937. Contrary to other targets, the instruction is subtract
> from an not subtract on PowerPC.
> 
> This patch fixes the issue by using the correct argument in the xor
> computation. Thanks to Peter Maydell for the hint.
> 
> With this change the PPC emulation passes the Gwenole Beauchesne
> testsuite again.
> 
> Cc: Alexander Graf <agraf@suse.de>
> Cc: Richard Henderson <rth@twiddle.net>
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

Thanks, applied to ppc-next.

Alex

Patch hide | download patch | download mbox

diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index 5e741d1..294ab58 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -746,7 +746,7 @@  static inline void gen_op_arith_compute_ov(DisasContext *ctx, TCGv arg0,
 {
     TCGv t0 = tcg_temp_new();
 
-    tcg_gen_xor_tl(cpu_ov, arg0, arg1);
+    tcg_gen_xor_tl(cpu_ov, arg0, arg2);
     tcg_gen_xor_tl(t0, arg1, arg2);
     if (sub) {
         tcg_gen_and_tl(cpu_ov, cpu_ov, t0);