diff options
author | Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> | 2017-02-22 17:14:35 +0530 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2017-03-01 11:23:38 +1100 |
commit | 1bd33d0d7cc47bed75e14f2cea3c7253f8017495 (patch) | |
tree | 4a89cf084ad5a01834d24b70a8a5aba44398baef /target/ppc | |
parent | 00b707883163de5c7daff2ab52fc39c7ecc05e92 (diff) |
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>
Diffstat (limited to 'target/ppc')
-rw-r--r-- | target/ppc/translate.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 3ba2616b8a..b09e16ff76 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -3724,12 +3724,9 @@ static void gen_write_xer(TCGv src) { tcg_gen_andi_tl(cpu_xer, src, ~((1u << XER_SO) | (1u << XER_OV) | (1u << XER_CA))); - tcg_gen_shri_tl(cpu_so, src, XER_SO); - tcg_gen_shri_tl(cpu_ov, src, XER_OV); - tcg_gen_shri_tl(cpu_ca, src, XER_CA); - 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); + tcg_gen_extract_tl(cpu_so, src, XER_SO, 1); + tcg_gen_extract_tl(cpu_ov, src, XER_OV, 1); + tcg_gen_extract_tl(cpu_ca, src, XER_CA, 1); } /* mcrxr */ |