projects
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0b1183e
)
target/sparc: optimize gen_op_mulscc() using deposit op
author
Philippe Mathieu-Daudé
<f4bug@amsat.org>
Tue, 18 Jul 2017 04:55:38 +0000
(
01:55
-0300)
committer
Richard Henderson
<rth@twiddle.net>
Wed, 19 Jul 2017 21:45:16 +0000
(14:45 -0700)
Suggested-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <
20170718045540
.16322-9-f4bug@amsat.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
target/sparc/translate.c
patch
|
blob
|
history
diff --git
a/target/sparc/translate.c
b/target/sparc/translate.c
index 67a83b77cca0ce5bda2fee3ee1d73bfdfd843ba5..d13173275f070abb98af4008faef66234ff3c1f2 100644
(file)
--- a/
target/sparc/translate.c
+++ b/
target/sparc/translate.c
@@
-632,11
+632,8
@@
static inline void gen_op_mulscc(TCGv dst, TCGv src1, TCGv src2)
// b2 = T0 & 1;
// env->y = (b2 << 31) | (env->y >> 1);
- tcg_gen_andi_tl(r_temp, cpu_cc_src, 0x1);
- tcg_gen_shli_tl(r_temp, r_temp, 31);
tcg_gen_extract_tl(t0, cpu_y, 1, 31);
- tcg_gen_or_tl(t0, t0, r_temp);
- tcg_gen_andi_tl(cpu_y, t0, 0xffffffff);
+ tcg_gen_deposit_tl(cpu_y, t0, cpu_cc_src, 31, 1);
// b1 = N ^ V;
gen_mov_reg_N(t0, cpu_psr);