]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
target/ppc: fix cpu_ov setting for 32-bit
authorNikunj A Dadhania <nikunj@linux.vnet.ibm.com>
Mon, 13 Mar 2017 09:31:04 +0000 (15:01 +0530)
committerDavid Gibson <david@gibson.dropbear.id.au>
Tue, 14 Mar 2017 00:27:23 +0000 (11:27 +1100)
A bug was introduced in following commit:

    dc0ad84 target/ppc: update overflow flags for add/sub

As for 32-bit ppc target extracting bit 63 for overflow is not correct.
Made it dependent on TARGET_LOG_BITS. This had broken booting MacOS
9.2.1 image

Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
target/ppc/translate.c

index b6abc60a00b1aaa40818228e31e4140114bb1230..f40b5a1abf7338a6e092ea7307ab189a8124a8b4 100644 (file)
@@ -818,7 +818,7 @@ static inline void gen_op_arith_compute_ov(DisasContext *ctx, TCGv arg0,
         if (is_isa300(ctx)) {
             tcg_gen_extract_tl(cpu_ov32, cpu_ov, 31, 1);
         }
-        tcg_gen_extract_tl(cpu_ov, cpu_ov, 63, 1);
+        tcg_gen_extract_tl(cpu_ov, cpu_ov, TARGET_LONG_BITS - 1, 1);
     }
     tcg_gen_or_tl(cpu_so, cpu_so, cpu_ov);
 }