anchor.diff:              assert_term(Src, Vst),
               kill_state(Vst)
       end;
  -valfun_4({test,test_arity,{f,Lbl},[Tuple,Sz]}, Vst) when is_integer(Sz) ->
  -    assert_type(tuple, Tuple, Vst),
  -    update_type(fun meet/2, {tuple,Sz,#{}}, Tuple, branch_state(Lbl, Vst));
  +valfun_4({test,test_arity,{f,Lbl},[Tuple,Sz]}, Vst0) when is_integer(Sz) ->
  +    assert_type(tuple, Tuple, Vst0),
  +    Vst = branch_state(Lbl, Vst0),
  +    update_type(fun meet/2, {tuple,Sz,#{}}, Tuple, Vst);
   valfun_4({test,is_tagged_tuple,{f,Lbl},[Src,Sz,Atom]}, Vst0) ->
       assert_term(Src, Vst0),
       Vst = branch_state(Lbl, Vst0),
  
positive.code: valfun_3({fconv,Src,{fr,_}=Dst}, Vst) ->
      assert_term(Src, Vst),
      set_freg(Dst, Vst);
  valfun_3({bif,fadd,_,[_,_]=Src,Dst}, Vst) ->
      float_op(Src, Dst, Vst);
  valfun_3({bif,fdiv,_,[_,_]=Src,Dst}, Vst) ->
      float_op(Src, Dst, Vst);
  valfun_3({bif,fmul,_,[_,_]=Src,Dst}, Vst) ->
      float_op(Src, Dst, Vst);
  valfun_3({bif,fnegate,_,[_]=Src,Dst}, Vst) ->
      float_op(Src, Dst, Vst);
  valfun_3({bif,fsub,_,[_,_]=Src,Dst}, Vst) ->
      float_op(Src, Dst, Vst);
  valfun_3(fclearerror, Vst) ->
      case get_fls(Vst) of
  	undefined -> ok;
  
negative.code:     verify_call_args_1(X, Vst).
  
  verify_local_call(Lbl, Live, Vst) ->
      TRegs = typed_call_regs(Live, Vst),
      [verify_arg_type(Lbl, R, Type, Vst) || {R, Type} <- TRegs],
      verify_no_ms_aliases(TRegs),
      ok.
  
  typed_call_regs(0, _Vst) ->
      [];
  