aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorKostis Sagonas <[email protected]>2010-10-15 20:26:52 +0300
committerBjörn Gustavsson <[email protected]>2010-10-20 15:46:34 +0200
commit4921e5546bfeedc22ae7109e169a08bc4cc01739 (patch)
treef23662f12b6dfa9cecf3908e7c9d96abd08d0b6b /lib
parenteb75757a3c8f467a7f17c5be9b63c047cb4e98b5 (diff)
downloadotp-4921e5546bfeedc22ae7109e169a08bc4cc01739.tar.gz
otp-4921e5546bfeedc22ae7109e169a08bc4cc01739.tar.bz2
otp-4921e5546bfeedc22ae7109e169a08bc4cc01739.zip
hipe: Add translation of BIFs with arity three
Diffstat (limited to 'lib')
-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 1f8be4040e..920c94d85c 100644
--- a/lib/hipe/icode/hipe_beam_to_icode.erl
+++ b/lib/hipe/icode/hipe_beam_to_icode.erl
@@ -369,6 +369,10 @@ trans_fun([{bif,BifName,{f,Lbl},[_] = Args,Reg}|Instructions], Env) ->
trans_fun([{bif,BifName,{f,Lbl},[_,_] = Args,Reg}|Instructions], Env) ->
{BifInsts,Env1} = trans_bif(2,BifName,Lbl,Args,Reg,Env),
[hipe_icode:mk_comment({bif2,BifName})|BifInsts] ++ trans_fun(Instructions,Env1);
+%%--- bif3 ---
+trans_fun([{bif,BifName,{f,Lbl},[_,_,_] = Args,Reg}|Instructions], Env) ->
+ {BifInsts,Env1} = trans_bif(3,BifName,Lbl,Args,Reg,Env),
+ [hipe_icode:mk_comment({bif3,BifName})|BifInsts] ++ trans_fun(Instructions,Env1);
%%--- allocate
trans_fun([{allocate,StackSlots,_}|Instructions], Env) ->
trans_allocate(StackSlots) ++ trans_fun(Instructions,Env);