int getFirstTempStackReg() {
    /*
     * We use the register that is just past the deepest possible
     * stack element, plus one if the method is synchronized to
     * avoid overlapping with the synch register. We don't need to
     * do anything else special at this level, since later passes
     * will merely notice the highest register used by explicit
     * inspection.
     */
    int regCount = getNormalRegCount();
    return isSynchronized() ? regCount + 1 : regCount;
  }
Gets the first (lowest) register number to use as the temporary area when unwinding stack
manipulation ops.

@return {@code >= 0;} the first register to use
android/android_framework/dex-maker/src/main/java/com/android/dx/cf/code/Ropper.java