VM_Type[] argDesc    = method.getDescriptor().parseForParameterTypes() ;
VM_Type[] argDesc    = method.getDescriptor().parseForParameterTypes(klass.getClassLoader()) ;
  private static void  processOptionString(String []args) {    for (int i = 0, n = args.length; i < n; i++) {      try {	String arg = args[i];	if (arg.startsWith("-oc:") && 	    options.processAsOption("-X:rc:", arg.substring(4))) {	  // handled in processAsOption	} else if (arg.equals("-useBootOptions")) {	  OPT_Compiler.setBootOptions(options);	} else if (arg.equals("-longcommandline")) {	  // the -longcommandline option reads options from a file.	  // use for cases when the command line is too long for AIX	  i++;	  BufferedReader in = new BufferedReader(new FileReader(args[i]));	  StringBuffer s = new StringBuffer("");	  while (in.ready()) {	    s.append(in.readLine());	  }	  in.close();	  StringTokenizer t = new StringTokenizer(s.toString());	  String[] av = new String[t.countTokens()];	  for (int j=0; j<av.length; j++) {	    av[j] = t.nextToken();	  }	  processOptionString(av);	} else if (arg.equals("-inlineplan")) {	  // -inlineplan is used to read an inline plan from a file	  i++;	  OPT_ContextFreeInlinePlan plan = new OPT_ContextFreeInlinePlan();	  plan.readObject(new LineNumberReader(new FileReader(args[i])));	  System.out.println(plan.toString());	  OPT_InlineOracleDictionary.registerDefault(new OPT_ProfileDirectedInlineOracle(plan));        } else if (arg.equals("+baseline")) {	  BASELINE = true;	} else if (arg.equals("-baseline")) {	  BASELINE = false;	} else if (arg.equals("-load")) {	  loadClass(args[++i]);	} else if (arg.equals("-class")) {	  VM_Class klass = loadClass(args[++i]);	  processClass(klass, options);	  options = (OPT_Options) options.clone() ;	} else if (arg.equals("-method") || 		   arg.equals("-methodOpt") || arg.equals("-methodBase")) {	  // Default for this method is determined by BASELINE var	  boolean isBaseline = BASELINE;	  // Unless specified by these options	  if (arg.equals("-methodOpt"))	    isBaseline = false;	  if (arg.equals("-methodBase"))	    isBaseline = true;	  	  VM_Class klass = null;	  try {	    klass = loadClass(args[++i]);   	  } catch (Exception e) {	    System.err.println("WARNING: Skipping method from " + args[i-1]); 	    klass = null;	  }	  if (klass == null) continue;	  String   name = args[++i];	  String   desc = args[++i];          VM_Method method = findDeclaredOrFirstMethod(klass, name, desc);  	  if (method == null || method.isAbstract() || method.isNative()) {	    System.err.println("WARNING: Skipping method " + args[i-2] +			       "." + name);	  } else {	    processMethod(method,options,isBaseline);	  }	  options = (OPT_Options) options.clone() ;	} else if (arg.equals("-performance")) {	    perf = new Performance();	} else if (arg.equals("-er")) {	  EXECUTE_WITH_REFLECTION = true ;	  VM_Class  klass      = loadClass(args[++i]);	  String    name = args[++i];	  String    desc = args[++i];	  VM_Method method = findDeclaredOrFirstMethod(klass, name, desc);	  VM_CompiledMethod cm = null;	  if (BASELINE) 	    cm = VM_Compiler.compile(method);	  else {	    OPT_CompilationPlan cp = 	      new OPT_CompilationPlan(method, 				      OPT_OptimizationPlanner.createOptimizationPlan(options),				      null,				      options);	    try {	      cm = OPT_Compiler.compile(cp);	    } catch (Throwable e) {	      System.err.println("SKIPPING method:"+ method + "Due to exception: "+ e) ;	    }	  }	  if (cm != null) method.replaceCompiledMethod(cm);	  VM_Type[] argDesc    = method.getDescriptor().parseForParameterTypes() ;	  Object[]  reflectMethodArgs = new Object[argDesc.length] ;	  i = parseMethodArgs(argDesc, args, i, reflectMethodArgs) ;	  java.lang.reflect.Method reflectoid = new java.lang.reflect.Method(method) ;          reflectoidVector.addElement(reflectoid) ;          reflectMethodVector.addElement(method) ;          reflectMethodArgsVector.addElement(reflectMethodArgs) ;	  options = (OPT_Options) options.clone() ;	} else {	  System.err.println("Unrecognized argument: " + arg + " - ignored");	}      } catch (ArrayIndexOutOfBoundsException e) {	System.err.println("Uncaught ArrayIndexOutOfBoundsException, possibly"+			   " not enough command-line arguments - aborting");	printFormatString();	e.printStackTrace(System.err);	break;      } catch (Exception e) {	System.err.println(e);	e.printStackTrace(System.err);	break;      }    }  }