anchor.diff:    Edges = needs_fcheckerror(NewState),
     finalize(Edges, NewState).
   
  +-spec finalize([edge()], #state{}) -> #state{}.
  +
   finalize([{From, To}|Left], State) ->
     NewState = add_fp_ebb_fixup(From, To, State),
     finalize(Left, NewState);
   finalize([], State) ->
     State.
   
  +-spec needs_fcheckerror(#state{}) -> [{none | icode_lbl(), icode_lbl()}].
  +
   needs_fcheckerror(State) ->
     Cfg = state__cfg(State),
     Labels = hipe_icode_cfg:labels(Cfg),
     needs_fcheckerror(Labels, State, []).
  +
  +-spec needs_fcheckerror([icode_lbl()], #state{},
  +			[{none | icode_lbl(), icode_lbl()}])
  +		       -> [{none | icode_lbl(), icode_lbl()}].
   
   needs_fcheckerror([Label|Left], State, Acc) ->
     case state__get_in_block_in(State, Label) of
  
positive.code: %% corresponding fcheckerror.
  %%--------------------------------------------------------------------
  
  annotate_fclearerror(Cfg) ->
    Labels = hipe_icode_cfg:reverse_postorder(Cfg),
    annotate_fclearerror(Labels, Cfg).
  
  annotate_fclearerror([Label|Left], Cfg) ->
    BB = hipe_icode_cfg:bb(Cfg, Label),
  
negative.code: split_code([I|Left], Acc) ->
    split_code(Left, [I|Acc]).
  
  
  -spec finalize(#state{}) -> #state{}.
  
  %% When all code is mapped to fp instructions we must make sure that
  %% the fp ebb information going into each block is the same as the
  