@Override
    public DecodedInstruction decode(int opcodeUnit, CodeInput in) throws EOFException {
      int opcode = byte0(opcodeUnit);
      if (opcode != Opcodes.INVOKE_POLYMORPHIC_RANGE) {
        // 4rcc isn't currently used for anything other than invoke-polymorphic.
        // If that changes, add a more general DecodedInstruction for this format.
        throw new UnsupportedOperationException(String.valueOf(opcode));
      }
      int registerCount = byte1(opcodeUnit);
      int methodIndex = in.read();
      int c = in.read();
      int protoIndex = in.read();
      IndexType indexType = OpcodeInfo.getIndexType(opcode);
      return new InvokePolymorphicRangeDecodedInstruction(
          this, opcode, methodIndex, indexType, c, registerCount, protoIndex);
    }
Representation of an instruction format, which knows how to decode into and encode from instances
of {@link DecodedInstruction}.
android/android_framework/dex-maker/src/main/java/com/android/dx/io/instructions/InstructionCodec.java