aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/x86/hipe_x86_defuse.erl
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2016-10-05 16:11:31 +0200
committerSverker Eriksson <[email protected]>2016-10-05 16:11:31 +0200
commit502ed5fd6bd36328d6be63c68ee2a56738ced058 (patch)
tree80cfb83dd63ffa876541740cc067ea05bb39118d /lib/hipe/x86/hipe_x86_defuse.erl
parentcf102c1b1225450e7918a6119b7d949eb7e575c4 (diff)
parent0bac72a18e8a5f6a46baae9c9ac73bde32948ff6 (diff)
downloadotp-502ed5fd6bd36328d6be63c68ee2a56738ced058.tar.gz
otp-502ed5fd6bd36328d6be63c68ee2a56738ced058.tar.bz2
otp-502ed5fd6bd36328d6be63c68ee2a56738ced058.zip
Merge branch 'master' into sverker/master/load_nif-print-init-error
Diffstat (limited to 'lib/hipe/x86/hipe_x86_defuse.erl')
-rw-r--r--lib/hipe/x86/hipe_x86_defuse.erl12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/hipe/x86/hipe_x86_defuse.erl b/lib/hipe/x86/hipe_x86_defuse.erl
index 9cba6cbe4b..4455def74e 100644
--- a/lib/hipe/x86/hipe_x86_defuse.erl
+++ b/lib/hipe/x86/hipe_x86_defuse.erl
@@ -35,7 +35,7 @@
-endif.
-module(?HIPE_X86_DEFUSE).
--export([insn_def/1, insn_use/1]). %% src_use/1]).
+-export([insn_def/1, insn_defs_all/1, insn_use/1]). %% src_use/1]).
-include("../x86/hipe_x86.hrl").
%%%
@@ -64,6 +64,16 @@ insn_def(I) ->
_ -> []
end.
+
+%% @doc Answers whether instruction I defines all allocatable registers. Used by
+%% hipe_regalloc_prepass.
+-spec insn_defs_all(_) -> boolean().
+insn_defs_all(I) ->
+ case I of
+ #pseudo_call{} -> true;
+ _ -> false
+ end.
+
dst_def(Dst) ->
case Dst of
#x86_temp{} -> [Dst];