target/ppc: fix cpu_ov setting for 32-bit

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>
This commit is contained in:
Nikunj A Dadhania 2017-03-13 15:01:04 +05:30 committed by David Gibson
parent f244115cbd
commit 38a61d3487

View File

@ -818,7 +818,7 @@ static inline void gen_op_arith_compute_ov(DisasContext *ctx, TCGv arg0,
if (is_isa300(ctx)) { if (is_isa300(ctx)) {
tcg_gen_extract_tl(cpu_ov32, cpu_ov, 31, 1); 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); tcg_gen_or_tl(cpu_so, cpu_so, cpu_ov);
} }