anchor.diff:  
   validate_3({Ls2,Is}, Name, Arity, Entry, Mod, Ls1, Ft) ->
       Offset = 1 + length(Ls1) + 1 + length(Ls2),
  -    EntryOK = lists:member(Entry, Ls2),
  +    EntryOK = member(Entry, Ls2),
       if
   	EntryOK ->
  -	    St = init_state(Arity),
  -	    Vst0 = #vst{current=St,
  -			branched=gb_trees_from_list([{L,St} || L <- Ls1]),
  -			labels=gb_sets:from_list(Ls1++Ls2),
  -			ft=Ft},
  +            Vst0 = init_vst(Arity, Ls1, Ls2, Ft),
   	    MFA = {Mod,Name,Arity},
   	    Vst = valfun(Is, MFA, Offset, Vst0),
   	    validate_fun_info_branches(Ls1, MFA, Vst);
  
positive.code: labels_1(Is, R) ->
      {reverse(R),Is}.
  
  init_state(Arity) ->
      Xs = init_regs(Arity, term),
      Ys = init_regs(0, initialized),
      kill_heap_allocation(#st{x=Xs,y=Ys,numy=none,ct=[]}).
  
  kill_heap_allocation(St) ->
      St#st{h=0,hf=0}.
  
negative.code:     case bsm_get_context(Reg, Vst) of
  	#ms{valid=Bits,slots=Slots}=Ctxt0 when SavePoint < Slots ->
  	    Ctx = Ctxt0#ms{valid=Bits bor (1 bsl SavePoint),slots=Slots},
  	    override_type(Ctx, Reg, Vst);
  	_ -> error({illegal_save,SavePoint})
      end.
  
  