hpm_trace = false;
trace = false;
  static public void processArg(String arg) {    if (VM.BuildForHPM) {      //-#if RVM_WITH_HPM      if (arg.compareTo("help") == 0) {	printHelp();      }      int split = arg.indexOf('=');      if (split == -1) {	VM.sysWriteln("  Illegal option specification!\n  \""+arg+		      "\" must be specified as a name-value pair in the form of option=value");	printHelp();      }      String name = arg.substring(0,split-1);      String name2 = arg.substring(0,split);      if (name.equals("event")) {	String num = arg.substring(split-1,split);	String value = arg.substring(split+1);	int eventNum = VM_CommandLineArgs.primitiveParseInt(num);	int eventVal = VM_CommandLineArgs.primitiveParseInt(value);	hpm_info.ids[eventNum] = eventVal;	if (!enabled) {	  enabled = true;	}      } else if (name2.equals("mode")) {	String value = arg.substring(split+1);	int mode = VM_CommandLineArgs.primitiveParseInt(value);	hpm_info.mode = mode;      } else if (name2.equals("filename")) {	hpm_info.filenamePrefix = arg.substring(split+1);	if(verbose>=2)VM.sysWriteln("VM_HPMs.processArgs() filename prefix found \""+				  hpm_info.filenamePrefix+"\"");      } else if (name2.equals("trace")) {	String value = arg.substring(split+1);	if (value.compareTo("true")==0) {	  hpm_trace = true;	} else if (value.compareTo("false")==0) {	  hpm_trace = false;	} else {	  VM.sysWriteln("\nrvm: unrecognized boolean value "+value+"\n -X:hpm:trace={true|false} is the correct syntax");	  VM.shutdown(VM.exitStatusBogusCommandLineArg);	}      } else if (name2.equals("trace_verbose")) {	String value = arg.substring(split+1);		int pid = VM_CommandLineArgs.primitiveParseInt(value);	if (pid < 0) {	  VM.sysWriteln("\nrvm: unrecognized value "+value+"\n -X:hpm:trace_verbose=PID where PID >= 0 is the correct syntax, and 0 has null functionality.");	  VM.shutdown(VM.exitStatusBogusCommandLineArg);	}	hpm_trace_verbose = pid;      } else if (name2.equals("processor")) {	hpm_processor = true;      } else if (name2.equals("verbose")) {	String value = arg.substring(split+1);	int verbose_level = VM_CommandLineArgs.primitiveParseInt(value);	if (verbose_level < -1) {	  VM.sysWriteln("\nrvm: unrecognized value "+value+"\n -X:hpm:verbose=verbose_level where verbose_level >= -1 is the correct syntax");	  VM.shutdown(VM.exitStatusBogusCommandLineArg);	}	verbose = verbose_level;      } else if (name2.equals("listAll")) {	String value = arg.substring(split+1);	if (value.compareTo("true")==0) {	  hpm_list_all_events = true;	} else if (value.compareTo("false")==0) {	  hpm_list_all_events = false;	} else {	  VM.sysWriteln("\nrvm: unrecognized boolean value "+value+"\n -X:hpm:list={true|false} is the correct syntax");	  VM.shutdown(VM.exitStatusBogusCommandLineArg);	}      } else if (name2.equals("listSelected")) {	String value = arg.substring(split+1);	if (value.compareTo("true")==0) {	  hpm_list_selected_events = true;	} else if (value.compareTo("false")==0) {	  hpm_list_selected_events = false;	} else {	  VM.sysWriteln("\nrvm: unrecognized boolean value "+value+"\n -X:hpm:events={true|false} is the correct syntax");	  VM.shutdown(VM.exitStatusBogusCommandLineArg);	}      } else if (name2.equals("threadGroup")) {	// not tested	String value = arg.substring(split+1);	if (value.compareTo("true")==0) {	  hpm_thread_group = true;	} else if (value.compareTo("false")==0) {	  hpm_thread_group = false;	} else {	  VM.sysWriteln("\nrvm: unrecognized boolean value "+value+"\n -X:hpm:threadGroup={true|false} is the correct syntax");	}      } else if (name2.equals("test")) {	// hidden command line argument	String value = arg.substring(split+1);	if (value.compareTo("true")==0) {	  hpm_test = true;	} else if (value.compareTo("false")!=0) {	  hpm_test = false;	} else {	  VM.sysWriteln("\nrvm: unrecognized boolean value "+value+"\n -X:hpm:test={true|false} is the correct syntax");	  VM.shutdown(VM.exitStatusBogusCommandLineArg);	}      } else if (arg.startsWith("sample=")) {	String tmp = arg.substring(split+1);	if (tmp.compareTo("true")==0) { 	  sample = true;	} else if (tmp.compareTo("false")==0) { 		  sample = false;	} else {	  VM.sysWriteln("\n***VM_HPMs.processArgs() invalid -X:hpm:sample argument \""+tmp+"\"!***\n");	  VM.shutdown(VM.exitStatusBogusCommandLineArg);	}      } else {	VM.sysWriteln("rvm: Unrecognized argument \"-X:hpm:"+arg+"\"");	VM.shutdown(VM.exitStatusBogusCommandLineArg);      }      //-#endif    } else { // ! VM.BuildForHPM      VM.sysWriteln("\nrvm: Hardware performance monitors not supported.  Illegal command line options \""+arg+"\"\n");      VM.shutdown(VM.exitStatusHPMTrouble);    }  }  