aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMagnus Lång <[email protected]>2016-08-22 15:20:42 +0200
committerMagnus Lång <[email protected]>2016-08-22 15:20:42 +0200
commite2cc919a4072db5f9b8f2c279075c34996f999e0 (patch)
treed55a96c163295c91b48e476baf32e4ae36d71d67
parentbbcfcb140c56324df1989fd9de440e76f0c74a25 (diff)
downloadotp-e2cc919a4072db5f9b8f2c279075c34996f999e0.tar.gz
otp-e2cc919a4072db5f9b8f2c279075c34996f999e0.tar.bz2
otp-e2cc919a4072db5f9b8f2c279075c34996f999e0.zip
hipe_x86: Fix illegal inst from peephole opt
-rw-r--r--lib/hipe/x86/hipe_x86_postpass.erl3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/hipe/x86/hipe_x86_postpass.erl b/lib/hipe/x86/hipe_x86_postpass.erl
index 939baeccec..4515822a34 100644
--- a/lib/hipe/x86/hipe_x86_postpass.erl
+++ b/lib/hipe/x86/hipe_x86_postpass.erl
@@ -95,7 +95,8 @@ peep([I=#move{src=#x86_temp{reg=Src}, dst=#x86_temp{reg=Dst}},
%% ElimBinALMDouble
%% ----------------
-peep([Move=#move{src=Src, dst=Dst}, Alu=#alu{src=Src, dst=Dst}|Insns], Res, Lst) ->
+peep([Move=#move{src=Src, dst=Dst}, Alu=#alu{src=Src, dst=Dst}|Insns], Res, Lst)
+ when not is_record(Dst, x86_mem) ->
peep([Alu#alu{src=Dst}|Insns], [Move|Res], [elimBinALMDouble|Lst]);