diff options
author | Magnus Lång <[email protected]> | 2016-08-22 15:20:42 +0200 |
---|---|---|
committer | Magnus Lång <[email protected]> | 2016-08-22 15:20:42 +0200 |
commit | e2cc919a4072db5f9b8f2c279075c34996f999e0 (patch) | |
tree | d55a96c163295c91b48e476baf32e4ae36d71d67 | |
parent | bbcfcb140c56324df1989fd9de440e76f0c74a25 (diff) | |
download | otp-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.erl | 3 |
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]); |