diff options
author | Magnus Lång <[email protected]> | 2017-11-05 16:12:42 +0100 |
---|---|---|
committer | Magnus Lång <[email protected]> | 2017-11-16 13:24:55 +0100 |
commit | 8e8380865bb31c119e7f11fbdbbb14ea58ebbef2 (patch) | |
tree | d9b663c10f68df6a82216fdf08b4072787b01758 /lib/hipe/icode/hipe_beam_to_icode.erl | |
parent | 68dd05500dcad280417a2479f32fb6f7894ae712 (diff) | |
download | otp-8e8380865bb31c119e7f11fbdbbb14ea58ebbef2.tar.gz otp-8e8380865bb31c119e7f11fbdbbb14ea58ebbef2.tar.bz2 otp-8e8380865bb31c119e7f11fbdbbb14ea58ebbef2.zip |
HiPE: Unique ref receive opt
Diffstat (limited to 'lib/hipe/icode/hipe_beam_to_icode.erl')
-rw-r--r-- | lib/hipe/icode/hipe_beam_to_icode.erl | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/hipe/icode/hipe_beam_to_icode.erl b/lib/hipe/icode/hipe_beam_to_icode.erl index cb4c1cfbd3..4c7fbad711 100644 --- a/lib/hipe/icode/hipe_beam_to_icode.erl +++ b/lib/hipe/icode/hipe_beam_to_icode.erl @@ -415,11 +415,13 @@ trans_fun([{wait_timeout,{_,Lbl},Reg}|Instructions], Env) -> SuspTmout = hipe_icode:mk_if(suspend_msg_timeout,[], map_label(Lbl),hipe_icode:label_name(DoneLbl)), Movs ++ [SetTmout, SuspTmout, DoneLbl | trans_fun(Instructions,Env1)]; -%%--- recv_mark/1 & recv_set/1 --- XXX: Handle better?? +%%--- recv_mark/1 & recv_set/1 --- trans_fun([{recv_mark,{f,_}}|Instructions], Env) -> - trans_fun(Instructions,Env); + Mark = hipe_icode:mk_primop([],recv_mark,[]), + [Mark | trans_fun(Instructions,Env)]; trans_fun([{recv_set,{f,_}}|Instructions], Env) -> - trans_fun(Instructions,Env); + Set = hipe_icode:mk_primop([],recv_set,[]), + [Set | trans_fun(Instructions,Env)]; %%-------------------------------------------------------------------- %%--- Translation of arithmetics {bif,ArithOp, ...} --- %%-------------------------------------------------------------------- |