aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMagnus Lång <[email protected]>2016-11-10 12:20:21 +0100
committerMagnus Lång <[email protected]>2016-11-15 14:58:59 +0100
commit5ae8d51f97600116f47f0160b4eac331acf5b7ca (patch)
tree5077ddffa1c94cd54c4a83dee28e0b819722d02e
parentc91c523f1ca58644267402325b6fb59d65049829 (diff)
downloadotp-5ae8d51f97600116f47f0160b4eac331acf5b7ca.tar.gz
otp-5ae8d51f97600116f47f0160b4eac331acf5b7ca.tar.bz2
otp-5ae8d51f97600116f47f0160b4eac331acf5b7ca.zip
hipe_ppc: move coalescing
-rw-r--r--lib/hipe/ppc/hipe_ppc_frame.erl5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/hipe/ppc/hipe_ppc_frame.erl b/lib/hipe/ppc/hipe_ppc_frame.erl
index 8d37159ad8..58924409a8 100644
--- a/lib/hipe/ppc/hipe_ppc_frame.erl
+++ b/lib/hipe/ppc/hipe_ppc_frame.erl
@@ -98,7 +98,10 @@ do_pseudo_move(I, Context, FPoff) ->
Offset = pseudo_offset(Src, FPoff, Context),
mk_load(hipe_ppc:ldop_word(), Dst, Offset, mk_sp(), []);
_ ->
- [hipe_ppc:mk_alu('or', Dst, Src, Src)]
+ case hipe_ppc:temp_reg(Dst) =:= hipe_ppc:temp_reg(Src) of
+ true -> [];
+ false -> [hipe_ppc:mk_alu('or', Dst, Src, Src)]
+ end
end
end.