VM_Magic.invokeMain(mainArgs, mainCode);
VM_Magic.invokeMain(mainArgs, mainMethod.getCurrentCompiledMethod().getInstructions());
  public void run() {    // VM_Scheduler.trace("MainThread", "run");          //-#if RVM_WITH_ADAPTIVE_SYSTEM    // initialize the controller and runtime measurement subsystems    VM_Controller.boot();    //-#endif    // Set up application class loader    VM_ApplicationClassLoader.setPathProperty();    ClassLoader cl = new VM_ApplicationClassLoader( VM_SystemClassLoader.getVMClassLoader() );    // find method to run    String[]      mainArgs = null;    INSTRUCTION[] mainCode = null;    // load class specified by args[0]    //    VM_Class cls = null;    try {      cls = (VM_Class)cl.loadClass(args[0], true).getVMType();    } catch (ClassNotFoundException e) {       // no such class      VM.sysWrite(e+"\n");      return;    }    // find "main" method    //    mainMethod = cls.findMainMethod();    if (mainMethod == null) {       // no such method      VM.sysWrite(cls.getName() + " doesn't have a \"public static void main(String[])\" method to execute\n");      return;    }    // create "main" argument list    //    mainArgs = new String[args.length - 1];    for (int i = 0, n = mainArgs.length; i < n; ++i)      mainArgs[i] = args[i + 1];        mainCode = mainMethod.compile();        // Notify other clients that the startup is complete.    //    VM_Callbacks.notifyStartup();    // dummy call for debugger to find the main method    // (needed for the default option of stopping in the main method on start up)    VM.debugBreakpoint();    // invoke "main" method with argument list    //    VM_Magic.invokeMain(mainArgs, mainCode);  }