target/ppc: optimize gen_write_xer()

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:
Nikunj A Dadhania 2017-02-22 17:14:35 +05:30 committed by David Gibson
parent 00b7078831
commit 1bd33d0d7c
1 changed files with 3 additions and 6 deletions

View File

@ -3724,12 +3724,9 @@ static void gen_write_xer(TCGv src)
{ {
tcg_gen_andi_tl(cpu_xer, src, tcg_gen_andi_tl(cpu_xer, src,
~((1u << XER_SO) | (1u << XER_OV) | (1u << XER_CA))); ~((1u << XER_SO) | (1u << XER_OV) | (1u << XER_CA)));
tcg_gen_shri_tl(cpu_so, src, XER_SO); tcg_gen_extract_tl(cpu_so, src, XER_SO, 1);
tcg_gen_shri_tl(cpu_ov, src, XER_OV); tcg_gen_extract_tl(cpu_ov, src, XER_OV, 1);
tcg_gen_shri_tl(cpu_ca, src, XER_CA); tcg_gen_extract_tl(cpu_ca, src, XER_CA, 1);
tcg_gen_andi_tl(cpu_so, cpu_so, 1);
tcg_gen_andi_tl(cpu_ov, cpu_ov, 1);
tcg_gen_andi_tl(cpu_ca, cpu_ca, 1);
} }
/* mcrxr */ /* mcrxr */