aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/icode/hipe_beam_to_icode.erl
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2014-03-31 10:37:01 +0200
committerBjörn-Egil Dahlberg <[email protected]>2014-03-31 10:37:01 +0200
commit07eee76fa86019a922784099403ad3d9f0d958eb (patch)
tree48d973bd36b4825ab9f4c7c9e3178d85483953d8 /lib/hipe/icode/hipe_beam_to_icode.erl
parent8dfd01213a764ca23b1bcadf367429113030805e (diff)
parent918f0a26da2ad559bb674e19fce952c2564b9b45 (diff)
downloadotp-07eee76fa86019a922784099403ad3d9f0d958eb.tar.gz
otp-07eee76fa86019a922784099403ad3d9f0d958eb.tar.bz2
otp-07eee76fa86019a922784099403ad3d9f0d958eb.zip
Merge branch 'ks/hipe-is_map-support/OTP-11831'
* ks/hipe-is_map-support/OTP-11831: Reinstate native code compilation of cerl and erl_types Take out no_native compiler attribute Add support for the compilation of the is_map/1 guard to native code Add 'map' to the set of icode_type_test()s Support the translation of the is_map BEAM instruction to Icode
Diffstat (limited to 'lib/hipe/icode/hipe_beam_to_icode.erl')
-rw-r--r--lib/hipe/icode/hipe_beam_to_icode.erl4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/hipe/icode/hipe_beam_to_icode.erl b/lib/hipe/icode/hipe_beam_to_icode.erl
index 81249c958e..dcd547fd5f 100644
--- a/lib/hipe/icode/hipe_beam_to_icode.erl
+++ b/lib/hipe/icode/hipe_beam_to_icode.erl
@@ -509,6 +509,10 @@ trans_fun([{test,test_arity,{f,Lbl},[Reg,N]}|Instructions], Env) ->
I = hipe_icode:mk_type([trans_arg(Reg)],{tuple,N},
hipe_icode:label_name(True),map_label(Lbl)),
[I,True | trans_fun(Instructions,Env)];
+%%--- is_map ---
+trans_fun([{test,is_map,{f,Lbl},[Arg]}|Instructions], Env) ->
+ {Code,Env1} = trans_type_test(map,Lbl,Arg,Env),
+ [Code | trans_fun(Instructions,Env1)];
%%--------------------------------------------------------------------
%%--- select_val ---
trans_fun([{select_val,Reg,{f,Lbl},{list,Cases}}|Instructions], Env) ->