@Override public Label conditionalJump(int index,Condition condition){
  Label label;
  if (conditionalLabelPointer <= conditionalLabels.size()) {
    label=new Label();
    conditionalLabels.add(label);
    conditionalLabelPointer=conditionalLabels.size();
  }
 else {
    label=conditionalLabels.get(conditionalLabelPointer++);
  }
  conditionalJump(index,condition,label);
  return label;
}

@ Override public Label conditionalJump ( int index , Condition condition ) { Label label ; if ( conditionalLabelPointer <= conditionalLabels . size ( ) ) { label = new Label ( ) ; conditionalLabels . add ( label ) ; conditionalLabelPointer = conditionalLabels . size ( ) ; } else { label = conditionalLabels . get ( conditionalLabelPointer ++ ) ; } conditionalJump ( index , condition , label ) ; return label ; }
this method caches the generated labels over two assembly passes to get information about branch lengths .
