public void reverseBranch(int which, CodeAddress newTarget) {
    finisher.reverseBranch(which, newTarget);
  }
Reverses a branch which is buried a given number of instructions backward in the output. It is
illegal to call this unless the indicated instruction really is a reversible branch.

@param which how many instructions back to find the branch; {@code 0} is the most recently
    added instruction, {@code 1} is the instruction before that, etc.
@param newTarget {@code non-null;} the new target for the reversed branch
android/android_framework/dex-maker/src/main/java/com/android/dx/dex/code/OutputCollector.java