aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/beam_a.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2015-03-09 09:41:42 +0100
committerBjörn Gustavsson <[email protected]>2015-03-09 09:41:42 +0100
commita7a7f22f315cb0b9d607709cdfca11805758da3c (patch)
treea148089efb350218b7c3c08c879c209c655d89b5 /lib/compiler/src/beam_a.erl
parentf2d39216e0587db58b5a79c78bfe94b00334cd0d (diff)
parent0d3be61f3a4b5aa3437d08603ea7565432e3a07b (diff)
downloadotp-a7a7f22f315cb0b9d607709cdfca11805758da3c.tar.gz
otp-a7a7f22f315cb0b9d607709cdfca11805758da3c.tar.bz2
otp-a7a7f22f315cb0b9d607709cdfca11805758da3c.zip
Merge branch 'bjorn/compiler/maps'
* bjorn/compiler/maps: v3_codegen: Teach the put_map_* instructions to reuse source registers beam_validator: Tighten tests of maps v3_core: Eliminate the sloppiness-encouraging get_ianno/1 function v3_core: Add is_map tests before map instructions beam_type: Use the complete register map when calculating liveness Introduce '%live' annotations with a complete register map beam_validator: Teach bif_type/3 and is_bif_safe/2 about is_map/1 v3_core: Simplify conversion of map patterns
Diffstat (limited to 'lib/compiler/src/beam_a.erl')
-rw-r--r--lib/compiler/src/beam_a.erl3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/compiler/src/beam_a.erl b/lib/compiler/src/beam_a.erl
index fe4f473846..dd7e03dd28 100644
--- a/lib/compiler/src/beam_a.erl
+++ b/lib/compiler/src/beam_a.erl
@@ -54,6 +54,9 @@ rename_instrs([{call_only,A,F}|Is]) ->
[{call,A,F},return|rename_instrs(Is)];
rename_instrs([{call_ext_only,A,F}|Is]) ->
[{call_ext,A,F},return|rename_instrs(Is)];
+rename_instrs([{'%live',_}|Is]) ->
+ %% When compiling from old .S files.
+ rename_instrs(Is);
rename_instrs([I|Is]) ->
[rename_instr(I)|rename_instrs(Is)];
rename_instrs([]) -> [].