private static int computeOpcode(int deltaLines, int deltaAddress) {
    if (deltaLines < DBG_LINE_BASE || deltaLines > (DBG_LINE_BASE + DBG_LINE_RANGE - 1)) {

      throw new RuntimeException("Parameter out of range");
    }

    return (deltaLines - DBG_LINE_BASE) + (DBG_LINE_RANGE * deltaAddress) + DBG_FIRST_SPECIAL;
  }
Computes a special opcode that will encode the given position change. If the return value is >
0xff, then the request cannot be fulfilled. Essentially the same as described in "DWARF
Debugging Format Version 3" section 6.2.5.1.

@param deltaLines {@code >= DBG_LINE_BASE, <= DBG_LINE_BASE + DBG_LINE_RANGE;} the line change
    to encode
@param deltaAddress {@code >= 0;} the address change to encode
@return {@code <= 0xff} if in range, otherwise parameters are out of range
android/android_framework/dex-maker/src/main/java/com/android/dx/dex/file/DebugInfoEncoder.java