target/ppc: add ov32 flag for multiply low insns
For Multiply Word: SO, OV, and OV32 bits reflects overflow of the 32-bit result For Multiply DoubleWord: SO, OV, and OV32 bits reflects overflow of the 64-bit result Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
1480d71cbe
commit
61aa9a697a
|
@ -1285,6 +1285,9 @@ static void gen_mullwo(DisasContext *ctx)
|
|||
tcg_gen_sari_i32(t0, t0, 31);
|
||||
tcg_gen_setcond_i32(TCG_COND_NE, t0, t0, t1);
|
||||
tcg_gen_extu_i32_tl(cpu_ov, t0);
|
||||
if (is_isa300(ctx)) {
|
||||
tcg_gen_mov_tl(cpu_ov32, cpu_ov);
|
||||
}
|
||||
tcg_gen_or_tl(cpu_so, cpu_so, cpu_ov);
|
||||
|
||||
tcg_temp_free_i32(t0);
|
||||
|
@ -1346,6 +1349,9 @@ static void gen_mulldo(DisasContext *ctx)
|
|||
|
||||
tcg_gen_sari_i64(t0, t0, 63);
|
||||
tcg_gen_setcond_i64(TCG_COND_NE, cpu_ov, t0, t1);
|
||||
if (is_isa300(ctx)) {
|
||||
tcg_gen_mov_tl(cpu_ov32, cpu_ov);
|
||||
}
|
||||
tcg_gen_or_tl(cpu_so, cpu_so, cpu_ov);
|
||||
|
||||
tcg_temp_free_i64(t0);
|
||||
|
|
Loading…
Reference in a new issue