diff options
author | Sverker Eriksson <[email protected]> | 2016-05-26 14:36:52 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-05-26 14:36:52 +0200 |
commit | 89adc0eec23c1a3ac552650004863de4cf82422e (patch) | |
tree | 141a582f3f52290cb07cfd797d8295fc2f094d58 /lib/hipe/llvm/hipe_rtl_to_llvm.erl | |
parent | 4d7b24dcb8f10ea8ddaa002601916fb389f0e87e (diff) | |
parent | 8914b835d26cc3b513eaef0a19cd9b39d1d2ccae (diff) | |
download | otp-89adc0eec23c1a3ac552650004863de4cf82422e.tar.gz otp-89adc0eec23c1a3ac552650004863de4cf82422e.tar.bz2 otp-89adc0eec23c1a3ac552650004863de4cf82422e.zip |
Merge branch 'margnus1/llvm-compatibility/PR-1057/OTP-13626'
Diffstat (limited to 'lib/hipe/llvm/hipe_rtl_to_llvm.erl')
-rw-r--r-- | lib/hipe/llvm/hipe_rtl_to_llvm.erl | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/lib/hipe/llvm/hipe_rtl_to_llvm.erl b/lib/hipe/llvm/hipe_rtl_to_llvm.erl index d7d8d1b049..b23d756d6c 100644 --- a/lib/hipe/llvm/hipe_rtl_to_llvm.erl +++ b/lib/hipe/llvm/hipe_rtl_to_llvm.erl @@ -266,17 +266,18 @@ trans_alub_overflow(I, Sign, Relocs) -> T2 = mk_temp(), %% T1{1}: Boolean variable indicating overflow I6 = hipe_llvm:mk_extractvalue(T2, ReturnType, T1, "1", []), - case hipe_rtl:alub_cond(I) of - Op when Op =:= overflow orelse Op =:= ltu -> - True_label = mk_jump_label(hipe_rtl:alub_true_label(I)), - False_label = mk_jump_label(hipe_rtl:alub_false_label(I)), - MetaData = branch_metadata(hipe_rtl:alub_pred(I)); - not_overflow -> - True_label = mk_jump_label(hipe_rtl:alub_false_label(I)), - False_label = mk_jump_label(hipe_rtl:alub_true_label(I)), - MetaData = branch_metadata(1 - hipe_rtl:alub_pred(I)) - end, - I7 = hipe_llvm:mk_br_cond(T2, True_label, False_label, MetaData), + {TrueLabel, FalseLabel, MetaData} = + case hipe_rtl:alub_cond(I) of + Op when Op =:= overflow orelse Op =:= ltu -> + {mk_jump_label(hipe_rtl:alub_true_label(I)), + mk_jump_label(hipe_rtl:alub_false_label(I)), + branch_metadata(hipe_rtl:alub_pred(I))}; + not_overflow -> + {mk_jump_label(hipe_rtl:alub_false_label(I)), + mk_jump_label(hipe_rtl:alub_true_label(I)), + branch_metadata(1 - hipe_rtl:alub_pred(I))} + end, + I7 = hipe_llvm:mk_br_cond(T2, TrueLabel, FalseLabel, MetaData), {[I7, I6, I5, I4, I3, I2, I1], NewRelocs}. trans_alub_op(I, Sign) -> |