v3_codegen: Teach the put_map_* instructions to reuse source registers
v3_codegen: Teach the put_map_* instructions to reuse source registers

The put_map_assoc and put_map_exact instructions in the run-time
system will support that the target register is the same as one of
the source registers. Teach the code generator to take advantage
of that.

The disadvantages of not reusing register when possible is that the
garbage collector may retain dead terms longer than necessary.

enikki/otp,massemanet/otp,johanclaesson/otp,lucafavatella/otp,c-rack/otp,tuncer/otp,vic/otp,benoitc/otp-1,palas/otp,vladdu/otp,sdebnath/otp,cnbin/otp,mikpe/otp,erlang/otp,saleyn/otp,cnbin/otp,RJ/otp,kvakvs/otp,kvakvs/otp,release-project/otp,vic/otp,goertzenator/otp,RaimoNiskanen/otp,platinumthinker/otp,sdebnath/otp,klarna/otp,potatosalad/otp,tuncer/otp,lrascao/otp,lhslll/otp,massemanet/otp,derek121/otp,vinoski/otp,derek121/otp,psyeugenic/otp,mikpe/otp,emile/otp,palas/otp,vladdu/otp,psyeugenic/otp,lhslll/otp,falkevik/otp,bernardd/otp,massemanet/otp,legoscia/otp,falkevik/otp,lrascao/otp,GinjaNinja32/otp,lhslll/otp,isvilen/otp,RGafiyatullin/otp,riverrun/otp,fenollp/otp,bsmr-erlang/otp,bugs-erlang-org/otp,uabboli/otp,basho/otp,lianghaivv/otp,GinjaNinja32/otp,klarna/otp,tuncer/otp,vladdu/otp,ader1990/otp,vladdu/otp,aboroska/otp,falkevik/otp,sdebnath/otp,awetzel/otp,electricimp/otp,weisslj/otp,rlipscombe/otp,goertzenator/otp,gjaldon/otp,msantos/otp,isvilen/otp,beni55/otp,RichMorin/otp,sitexa/otp,riverrun/otp,cnbin/otp,lantti/otp,ahmedshafeeq/otp,lemenkov/otp,mujiatong/otp,enikki/otp,erlang/otp,dgud/otp,RJ/otp,RaimoNiskanen/otp,RoadRunnr/otp,bernardd/otp,neeraj9/otp,bjorng/otp,klarna/otp,bugs-erlang-org/otp,enikki/otp,getong/otp,erlang/otp,klarna/otp,sitexa/otp,NOMORECOFFEE/otp,rlipscombe/otp,c-rack/otp,sitexa/otp,bjorng/otp,emile/otp,lhslll/otp,lucafavatella/otp,NOMORECOFFEE/otp,jemsbhai/otp,electricimp/otp,emile/otp,NOMORECOFFEE/otp,msantos/otp,emile/otp,vinoski/otp,c-rack/otp,bugs-erlang-org/otp,Teino1978-Corp/otp,massemanet/otp,jinshana/otp,paulcager/otp,lantti/otp,emacsmirror/erlang,mikpe/otp,VincentHHL/otp,krishnakumar4a4/otp,ahmedshafeeq/otp,rlipscombe/otp,legoscia/otp,paulcager/otp,psyeugenic/otp,jj1bdx/otp,sammoth-wazoku/otp,benoitc/otp-1,fenollp/otp,lemenkov/otp,stolen/otp,derek121/otp,tuncer/otp,cobusc/otp,beni55/otp,bjorng/otp,jamesruan/otp,RGafiyatullin/otp,weisslj/otp,basho/otp,ferd/otp,palas/otp,bjorng/otp,electricimp/otp,johanclaesson/otp,platinumthinker/otp,lantti/otp,lemenkov/otp,falkevik/otp,jinshana/otp,lrascao/otp,jemsbhai/otp,bsmr-erlang/otp,kvakvs/otp,Teino1978-Corp/erlang-otp,mikpe/otp,release-project/otp,palas/otp,dumbbell/otp,uabboli/otp,paladim/otp,weisslj/otp,stolen/otp,isvilen/otp,bugs-erlang-org/otp,RaimoNiskanen/otp,lhslll/otp,isvilen/otp,bjorng/otp,marquisthunder/otp,potatosalad/otp,beni55/otp,krishnakumar4a4/otp,jj1bdx/otp,lucafavatella/otp,lightcyphers/otp,paladim/otp,cobusc/otp,cobusc/otp,emile/otp,getong/otp,weisslj/otp,potatosalad/otp,uabboli/otp,ferd/otp,RoadRunnr/otp,bugs-erlang-org/otp,cnbin/otp,uabboli/otp,ferd/otp,bernardd/otp,marquisthunder/otp,RoadRunnr/otp,Teino1978-Corp/otp,derek121/otp,lhslll/otp,yangchengjian/otp,fenollp/otp,erlang/otp,theom/otp,rlipscombe/otp,matwey/otp,hairyhum/otp,bsmr-erlang/otp,goertzenator/otp,ahmedshafeeq/otp,jamesruan/otp,vinoski/otp,vinoski/otp,dumbbell/otp,theom/otp,getong/otp,msantos/otp,hairyhum/otp,fenollp/otp,jj1bdx/otp,sdebnath/otp,jj1bdx/otp,enikki/otp,ader1990/otp,jj1bdx/otp,vinoski/otp,riverrun/otp,bjorng/otp,bjorng/otp,haguenau/otp,massemanet/otp,Teino1978-Corp/otp,falkevik/otp,riverrun/otp,rlipscombe/otp,getong/otp,bernardd/otp,getong/otp,vic/otp,krishnakumar4a4/otp,neeraj9/otp,gjaldon/otp,dgud/otp,lrascao/otp,RichMorin/otp,getong/otp,haguenau/otp,ferd/otp,ader1990/otp,tuncer/otp,vladdu/otp,RGafiyatullin/otp,lantti/otp,gjaldon/otp,sdebnath/otp,neeraj9/otp,dgud/otp,dumbbell/otp,release-project/otp,emacsmirror/erlang,beni55/otp,entropiae/otp,uabboli/otp,paulcager/otp,awetzel/otp,palas/otp,ahmedshafeeq/otp,RJ/otp,aboroska/otp,yangchengjian/otp,massemanet/otp,VincentHHL/otp,jemsbhai/otp,Teino1978-Corp/erlang-otp,platinumthinker/otp,paladim/otp,c-rack/otp,c-rack/otp,kvakvs/otp,jj1bdx/otp,cobusc/otp,stolen/otp,krishnakumar4a4/otp,cobusc/otp,GinjaNinja32/otp,uabboli/otp,lrascao/otp,isvilen/otp,c-rack/otp,mujiatong/otp,Teino1978-Corp/erlang-otp,RichMorin/otp,massemanet/otp,GinjaNinja32/otp,erlang/otp,dgud/otp,lantti/otp,RaimoNiskanen/otp,stolen/otp,goertzenator/otp,g-andrade/otp,beni55/otp,neeraj9/otp,sammoth-wazoku/otp,bernardd/otp,c-rack/otp,g-andrade/otp,sammoth-wazoku/otp,goertzenator/otp,psyeugenic/otp,paulcager/otp,Teino1978-Corp/otp,sitexa/otp,basho/otp,mikpe/otp,vladdu/otp,marquisthunder/otp,gjaldon/otp,jemsbhai/otp,fenollp/otp,palas/otp,matwey/otp,klarna/otp,VincentHHL/otp,ferd/otp,benoitc/otp-1,emile/otp,dgud/otp,dgud/otp,goertzenator/otp,rlipscombe/otp,g-andrade/otp,vic/otp,saleyn/otp,benoitc/otp-1,rlipscombe/otp,fenollp/otp,g-andrade/otp,rlipscombe/otp,psyeugenic/otp,lightcyphers/otp,RGafiyatullin/otp,cnbin/otp,NOMORECOFFEE/otp,jamesruan/otp,sammoth-wazoku/otp,krishnakumar4a4/otp,lhslll/otp,jinshana/otp,paladim/otp,emile/otp,paladim/otp,potatosalad/otp,johanclaesson/otp,massemanet/otp,bsmr-erlang/otp,sitexa/otp,RJ/otp,msantos/otp,lemenkov/otp,ahmedshafeeq/otp,psyeugenic/otp,fenollp/otp,emacsmirror/erlang,electricimp/otp,paulcager/otp,lianghaivv/otp,theom/otp,sitexa/otp,kvakvs/otp,benoitc/otp-1,dgud/otp,vic/otp,Teino1978-Corp/otp,aboroska/otp,msantos/otp,paladim/otp,bernardd/otp,johanclaesson/otp,RJ/otp,mujiatong/otp,electricimp/otp,mikpe/otp,paladim/otp,vinoski/otp,legoscia/otp,erlang/otp,weisslj/otp,yangchengjian/otp,VincentHHL/otp,saleyn/otp,vic/otp,riverrun/otp,jamesruan/otp,awetzel/otp,weisslj/otp,msantos/otp,lucafavatella/otp,gjaldon/otp,marquisthunder/otp,mikpe/otp,entropiae/otp,lianghaivv/otp,emacsmirror/erlang,bsmr-erlang/otp,vladdu/otp,goertzenator/otp,hairyhum/otp,neeraj9/otp,lrascao/otp,Teino1978-Corp/erlang-otp,RichMorin/otp,RGafiyatullin/otp,goertzenator/otp,falkevik/otp,jinshana/otp,schlagert/otp,cnbin/otp,GinjaNinja32/otp,mujiatong/otp,theom/otp,johanclaesson/otp,lianghaivv/otp,lrascao/otp,bernardd/otp,basho/otp,aboroska/otp,marquisthunder/otp,ferd/otp,isvilen/otp,paulcager/otp,schlagert/otp,yangchengjian/otp,isvilen/otp,jemsbhai/otp,platinumthinker/otp,vinoski/otp,goertzenator/otp,benoitc/otp-1,hairyhum/otp,derek121/otp,kvakvs/otp,platinumthinker/otp,release-project/otp,marquisthunder/otp,falkevik/otp,lightcyphers/otp,stolen/otp,derek121/otp,theom/otp,VincentHHL/otp,RGafiyatullin/otp,aboroska/otp,bugs-erlang-org/otp,mujiatong/otp,uabboli/otp,RaimoNiskanen/otp,Teino1978-Corp/erlang-otp,c-rack/otp,electricimp/otp,lantti/otp,GinjaNinja32/otp,klarna/otp,jinshana/otp,haguenau/otp,dumbbell/otp,bjorng/otp,erlang/otp,ahmedshafeeq/otp,bsmr-erlang/otp,erlang/otp,johanclaesson/otp,sdebnath/otp,basho/otp,schlagert/otp,neeraj9/otp,falkevik/otp,sitexa/otp,jinshana/otp,neeraj9/otp,schlagert/otp,Teino1978-Corp/otp,lemenkov/otp,psyeugenic/otp,yangchengjian/otp,hairyhum/otp,dumbbell/otp,haguenau/otp,enikki/otp,RichMorin/otp,NOMORECOFFEE/otp,lucafavatella/otp,lianghaivv/otp,dgud/otp,legoscia/otp,benoitc/otp-1,GinjaNinja32/otp,stolen/otp,g-andrade/otp,haguenau/otp,ferd/otp,krishnakumar4a4/otp,emile/otp,hairyhum/otp,tuncer/otp,paladim/otp,awetzel/otp,hairyhum/otp,dumbbell/otp,g-andrade/otp,Teino1978-Corp/otp,potatosalad/otp,schlagert/otp,RichMorin/otp,mujiatong/otp,potatosalad/otp,awetzel/otp,entropiae/otp,VincentHHL/otp,ader1990/otp,derek121/otp,isvilen/otp,entropiae/otp,schlagert/otp,gjaldon/otp,fenollp/otp,jj1bdx/otp,palas/otp,yangchengjian/otp,johanclaesson/otp,klarna/otp,matwey/otp,mikpe/otp,matwey/otp,sdebnath/otp,RoadRunnr/otp,emacsmirror/erlang,isvilen/otp,g-andrade/otp,bernardd/otp,getong/otp,aboroska/otp,RoadRunnr/otp,g-andrade/otp,ferd/otp,RoadRunnr/otp,Teino1978-Corp/erlang-otp,release-project/otp,cobusc/otp,RJ/otp,benoitc/otp-1,haguenau/otp,jj1bdx/otp,theom/otp,dumbbell/otp,ader1990/otp,isvilen/otp,bernardd/otp,jamesruan/otp,platinumthinker/otp,legoscia/otp,weisslj/otp,legoscia/otp,uabboli/otp,lemenkov/otp,saleyn/otp,kvakvs/otp,bsmr-erlang/otp,johanclaesson/otp,tuncer/otp,sdebnath/otp,getong/otp,dgud/otp,aboroska/otp,NOMORECOFFEE/otp,enikki/otp,jinshana/otp,saleyn/otp,lianghaivv/otp,tuncer/otp,RaimoNiskanen/otp,vinoski/otp,entropiae/otp,electricimp/otp,theom/otp,vladdu/otp,schlagert/otp,basho/otp,RoadRunnr/otp,lrascao/otp,release-project/otp,RGafiyatullin/otp,emacsmirror/erlang,RaimoNiskanen/otp,RJ/otp,stolen/otp,ahmedshafeeq/otp,NOMORECOFFEE/otp,marquisthunder/otp,GinjaNinja32/otp,neeraj9/otp,bsmr-erlang/otp,NOMORECOFFEE/otp,saleyn/otp,RGafiyatullin/otp,jamesruan/otp,RoadRunnr/otp,Teino1978-Corp/otp,RoadRunnr/otp,lightcyphers/otp,matwey/otp,kvakvs/otp,haguenau/otp,msantos/otp,legoscia/otp,riverrun/otp,release-project/otp,entropiae/otp,dgud/otp,sammoth-wazoku/otp,electricimp/otp,psyeugenic/otp,saleyn/otp,emacsmirror/erlang,fenollp/otp,g-andrade/otp,lemenkov/otp,vladdu/otp,awetzel/otp,derek121/otp,riverrun/otp,tuncer/otp,gjaldon/otp,aboroska/otp,cnbin/otp,uabboli/otp,vic/otp,sammoth-wazoku/otp,emile/otp,RaimoNiskanen/otp,jinshana/otp,g-andrade/otp,basho/otp,haguenau/otp,lucafavatella/otp,getong/otp,mujiatong/otp,bjorng/otp,jemsbhai/otp,cobusc/otp,saleyn/otp,RaimoNiskanen/otp,lhslll/otp,platinumthinker/otp,lantti/otp,gjaldon/otp,entropiae/otp,vinoski/otp,getong/otp,theom/otp,RJ/otp,RichMorin/otp,emacsmirror/erlang,erlang/otp,krishnakumar4a4/otp,stolen/otp,release-project/otp,bsmr-erlang/otp,falkevik/otp,RichMorin/otp,lucafavatella/otp,ahmedshafeeq/otp,VincentHHL/otp,electricimp/otp,beni55/otp,Teino1978-Corp/erlang-otp,platinumthinker/otp,dumbbell/otp,legoscia/otp,release-project/otp,Teino1978-Corp/erlang-otp,beni55/otp,lightcyphers/otp,cobusc/otp,ader1990/otp,lightcyphers/otp,enikki/otp,schlagert/otp,yangchengjian/otp,potatosalad/otp,jamesruan/otp,matwey/otp,rlipscombe/otp,potatosalad/otp,marquisthunder/otp,emacsmirror/erlang,jj1bdx/otp,basho/otp,weisslj/otp,enikki/otp,jemsbhai/otp,krishnakumar4a4/otp,msantos/otp,sammoth-wazoku/otp,emacsmirror/erlang,vic/otp,bugs-erlang-org/otp,palas/otp,potatosalad/otp,bjorng/otp,potatosalad/otp,sitexa/otp,legoscia/otp,erlang/otp,ader1990/otp,mikpe/otp,kvakvs/otp,massemanet/otp,paulcager/otp,lianghaivv/otp,awetzel/otp,lucafavatella/otp,basho/otp,cnbin/otp,bugs-erlang-org/otp,lightcyphers/otp,jj1bdx/otp,vinoski/otp,yangchengjian/otp,aboroska/otp,awetzel/otp,hairyhum/otp,dumbbell/otp,mujiatong/otp,jemsbhai/otp,entropiae/otp,ferd/otp,lantti/otp,saleyn/otp,rlipscombe/otp,jamesruan/otp,matwey/otp,riverrun/otp,lrascao/otp,ader1990/otp,lightcyphers/otp,sammoth-wazoku/otp,VincentHHL/otp,weisslj/otp,lianghaivv/otp,ahmedshafeeq/otp,mikpe/otp,lemenkov/otp,beni55/otp,matwey/otp,paulcager/otp,klarna/otp,dumbbell/otp,matwey/otp