aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/ssa/hipe_ssa.inc
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2017-11-15 14:42:06 +0100
committerGitHub <[email protected]>2017-11-15 14:42:06 +0100
commit0d9d1f1915ac70ba00418fd24a4293bb22c4fade (patch)
tree49df7cdfbd1e211dc7aace5db5ce7e3af6e40909 /lib/hipe/ssa/hipe_ssa.inc
parent1836281f02004db2cc0185b877552377cd436d9a (diff)
parent7503303b0cba1e02320bdf604e0d0997b7c2ff59 (diff)
downloadotp-0d9d1f1915ac70ba00418fd24a4293bb22c4fade.tar.gz
otp-0d9d1f1915ac70ba00418fd24a4293bb22c4fade.tar.bz2
otp-0d9d1f1915ac70ba00418fd24a4293bb22c4fade.zip
Merge PR-1621 from margnus1/hipe-literal-tag
HiPE: Support for literal tag, tests and bugfixes
Diffstat (limited to 'lib/hipe/ssa/hipe_ssa.inc')
-rw-r--r--lib/hipe/ssa/hipe_ssa.inc28
1 files changed, 14 insertions, 14 deletions
diff --git a/lib/hipe/ssa/hipe_ssa.inc b/lib/hipe/ssa/hipe_ssa.inc
index c7c1a8e1d7..29e8b92266 100644
--- a/lib/hipe/ssa/hipe_ssa.inc
+++ b/lib/hipe/ssa/hipe_ssa.inc
@@ -463,20 +463,20 @@ updateStatementDefs([], Statement, Current, Acc) ->
%%----------------------------------------------------------------------
updateIndices(Current, Variable) ->
- case ?CODE:is_var(Variable) of
- true ->
- NewVar = ?CODE:mk_new_var(),
- {NewVar,gb_trees:enter(Variable, NewVar, Current)};
- false ->
- case is_fp_temp(Variable) of
- true ->
- NewFVar = mk_new_fp_temp(),
- {NewFVar,gb_trees:enter(Variable, NewFVar, Current)};
- false ->
- NewReg = ?CODE:mk_new_reg(),
- {NewReg,gb_trees:enter(Variable, NewReg, Current)}
- end
- end.
+ New =
+ case ?CODE:is_var(Variable) of
+ true -> ?CODE:mk_new_var();
+ false ->
+ case is_fp_temp(Variable) of
+ true -> mk_new_fp_temp();
+ false ->
+ case ?CODE:reg_is_gcsafe(Variable) of
+ true -> ?CODE:mk_new_reg_gcsafe();
+ false -> ?CODE:mk_new_reg()
+ end
+ end
+ end,
+ {New, gb_trees:enter(Variable, New, Current)}.
%%----------------------------------------------------------------------
%% Procedure : updateSuccPhi/4