aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/beam_validator.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2010-04-22 15:18:13 +0200
committerBjörn Gustavsson <[email protected]>2010-05-11 08:53:27 +0200
commitd60f055697cfe8e7f94be4d291d49bb00a66bc52 (patch)
tree0db2f8a0ae0737e3f58460b2b1fccdae525b6c9b /lib/compiler/src/beam_validator.erl
parentea0f50dfbc8ec99820b81f99be81ada727bb3cf8 (diff)
downloadotp-d60f055697cfe8e7f94be4d291d49bb00a66bc52.tar.gz
otp-d60f055697cfe8e7f94be4d291d49bb00a66bc52.tar.bz2
otp-d60f055697cfe8e7f94be4d291d49bb00a66bc52.zip
Introduce the new recv_mark/1 and recv_mark/1 instructions
Make the recv_mark/1 and recv_mark/1 instructions known to the compiler and run-time system. For the moment, make the loader ignore any occurrences of those instructions in BEAM files. Also update hipe_beam_to_icode to ignore those instructions.
Diffstat (limited to 'lib/compiler/src/beam_validator.erl')
-rw-r--r--lib/compiler/src/beam_validator.erl5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/compiler/src/beam_validator.erl b/lib/compiler/src/beam_validator.erl
index 1fd61831e0..34065cfdce 100644
--- a/lib/compiler/src/beam_validator.erl
+++ b/lib/compiler/src/beam_validator.erl
@@ -416,6 +416,11 @@ valfun_1({put,Src}, Vst) ->
valfun_1({put_string,Sz,_,Dst}, Vst0) when is_integer(Sz) ->
Vst = eat_heap(2*Sz, Vst0),
set_type_reg(cons, Dst, Vst);
+%% Instructions for optimization of selective receives.
+valfun_1({recv_mark,{f,Fail}}, Vst) when is_integer(Fail) ->
+ Vst;
+valfun_1({recv_set,{f,Fail}}, Vst) when is_integer(Fail) ->
+ Vst;
%% Misc.
valfun_1({'%live',Live}, Vst) ->
verify_live(Live, Vst),