diff options
author | Richard Henderson <rth@twiddle.net> | 2013-07-30 18:26:04 -1000 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2013-09-25 07:46:32 -0700 |
commit | f8b84129073d600cef20d526814b9bdd15c2e1ba (patch) | |
tree | 9a5b2f9a47ac5131f4a7adc632eb91e91a47d370 | |
parent | 5e0f40cfedecfbc2a0608d75e8a8d22173f23431 (diff) | |
download | qemu-f8b84129073d600cef20d526814b9bdd15c2e1ba.zip qemu-f8b84129073d600cef20d526814b9bdd15c2e1ba.tar.gz qemu-f8b84129073d600cef20d526814b9bdd15c2e1ba.tar.bz2 |
tcg-ppc64: Avoid code for nop move
While these are rare from code that's been through the optimizer,
it's not uncommon within the tcg backend.
Signed-off-by: Richard Henderson <rth@twiddle.net>
-rw-r--r-- | tcg/ppc64/tcg-target.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tcg/ppc64/tcg-target.c b/tcg/ppc64/tcg-target.c index 27a955b..357f8c1 100644 --- a/tcg/ppc64/tcg-target.c +++ b/tcg/ppc64/tcg-target.c @@ -509,7 +509,9 @@ static const uint32_t tcg_to_isel[] = { static inline void tcg_out_mov(TCGContext *s, TCGType type, TCGReg ret, TCGReg arg) { - tcg_out32(s, OR | SAB(arg, ret, arg)); + if (ret != arg) { + tcg_out32(s, OR | SAB(arg, ret, arg)); + } } static inline void tcg_out_rld(TCGContext *s, int op, TCGReg ra, TCGReg rs, |