aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/rtl/hipe_rtl_binary_construct.erl
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-01-03 17:11:49 +0100
committerSverker Eriksson <[email protected]>2018-01-03 17:11:49 +0100
commitf9a0bac8f708a5cf769860ef2ee8af0591c5dbaf (patch)
tree4622350b2a0ca74ff72f78e31a02a0fb6954935e /lib/hipe/rtl/hipe_rtl_binary_construct.erl
parent3d124b9ea557fd26ca7a33276b84c72d9e72044e (diff)
parent93042b54da6a576b187bfb7b2222fc8a5a4d4f12 (diff)
downloadotp-f9a0bac8f708a5cf769860ef2ee8af0591c5dbaf.tar.gz
otp-f9a0bac8f708a5cf769860ef2ee8af0591c5dbaf.tar.bz2
otp-f9a0bac8f708a5cf769860ef2ee8af0591c5dbaf.zip
Merge branch 'maint'
Diffstat (limited to 'lib/hipe/rtl/hipe_rtl_binary_construct.erl')
-rw-r--r--lib/hipe/rtl/hipe_rtl_binary_construct.erl10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/hipe/rtl/hipe_rtl_binary_construct.erl b/lib/hipe/rtl/hipe_rtl_binary_construct.erl
index 5b89d4946a..111dda3d82 100644
--- a/lib/hipe/rtl/hipe_rtl_binary_construct.erl
+++ b/lib/hipe/rtl/hipe_rtl_binary_construct.erl
@@ -168,9 +168,13 @@ gen_rtl(BsOP, Dst, Args, TrueLblName, FalseLblName, SystemLimitLblName, ConstTab
bs_put_utf8 ->
[_Src, _Base, _Offset] = Args,
- NewDsts = get_real(Dst),
- [hipe_rtl:mk_call(NewDsts, bs_put_utf8, Args,
- TrueLblName, FalseLblName, not_remote)];
+ [NewOffs] = get_real(Dst),
+ RetLbl = hipe_rtl:mk_new_label(),
+ [hipe_rtl:mk_call([NewOffs], bs_put_utf8, Args,
+ hipe_rtl:label_name(RetLbl), [], not_remote),
+ RetLbl,
+ hipe_rtl:mk_branch(NewOffs, ne, hipe_rtl:mk_imm(0),
+ TrueLblName, FalseLblName, 0.99)];
bs_utf16_size ->
case Dst of