public void returnValue(Local<?> result) {
    if (!result.type.equals(method.returnType)) {
      // TODO: this is probably too strict.
      throw new IllegalArgumentException(
          "declared " + method.returnType + " but returned " + result.type);
    }
    addInstruction(
        new PlainInsn(
            Rops.opReturn(result.type.ropType),
            sourcePosition,
            null,
            RegisterSpecList.make(result.spec())));
  }
Returns the value in {@code result} to the calling method. After a return it is an error to
define further instructions after a return without first {@link #mark marking} an existing
unmarked label.
android/android_framework/dex-maker/src/main/java/com/android/dx/Code.java