if (!found.isCompiled()) { found.compile(); } return found.getMostRecentlyGeneratedInstructions();
return found.getCurrentInstructions();
  public static INSTRUCTION[] invokeInterface(Object target, int dictionaryId)     throws IncompatibleClassChangeError, VM_ResolutionException {        VM_Method sought =       VM_MethodDictionary.getValue(dictionaryId).resolveInterfaceMethod(true);    VM_Class I = sought.getDeclaringClass();    VM_Class C = VM_Magic.getObjectType(target).asClass();     if (VM.BuildForITableInterfaceInvocation) {      Object[] tib = C.getTypeInformationBlock();      Object[] iTable = findITable(tib, I.getInterfaceId());      return (INSTRUCTION[])iTable[getITableIndex(I, sought)];    } else {       if (!VM_Runtime.isAssignableWith(I, C)) throw new IncompatibleClassChangeError();      VM_Method found  = C.findVirtualMethod(sought.getName(),                                              sought.getDescriptor());      if (found == null) throw new IncompatibleClassChangeError();      if (!found.isCompiled()) {	found.compile();       }      return found.getMostRecentlyGeneratedInstructions();    }  }