anchor.diff:  %%  Also binaries can reuse a source register as target.
   
   set_cg([{var,R}], {cons,Es}, Le, Vdb, Bef, St) ->
  -    [S1,S2] = map(fun ({var,V}) -> fetch_var(V, Bef);
  -		      (Other) -> Other
  -		  end, Es),
  +    [S1,S2] = cg_reg_args(Es, Bef),
       Int0 = clear_dead(Bef, Le#l.i, Vdb),
       Int1 = Int0#sr{reg=put_reg(R, Int0#sr.reg)},
       Ret = fetch_reg(R, Int1#sr.reg),
  
positive.code:     Ais = case Con of
  	      {tuple,Es} ->
  		  [{put_tuple,length(Es),Ret}] ++ cg_build_args(Es, Bef);
  	      {var,V} ->	  % Normally removed by kernel optimizer.
  		  [{move,fetch_var(V, Int),Ret}];
  	      Other ->
  		  [{move,Other,Ret}]
  	  end,
      {Ais,clear_dead(Int, Le#l.i, Vdb),St}.
  
  
negative.code: cg_bin_put({bin_end,[]}, _, _) -> [].
  
  cg_build_args(As, Bef) ->
      [{put,cg_reg_arg(A, Bef)} || A <- As].
  
  %% return_cg([Val], Le, Vdb, Bef, St) -> {[Ainstr],Aft,St}.
  %% break_cg([Val], Le, Vdb, Bef, St) -> {[Ainstr],Aft,St}.
  