VM.assert(false);
VM._assert(false);
  public void run_ForAttachJVM() { // similar to run() for Red/Blue threads    VM_Processor myNativeProcessor = VM_ProcessorLocalState.getCurrentProcessor();    //  make sure Opt compiler does not compile this method    //  references stored in registers by the opt compiler     //  will not be relocated by GC    // (SJF: once again, what does this mean??  If you think there's a bug    // in the opt-compiler, please report it.)    //    VM_Magic.pragmaNoOptCompile();    // save current frame pointer in threads JNIEnv, and     // set flag recognized by GC    // which will cause this (NativeIdleThread) thread to have its stack scanned    // starting at this frame    //    // no more - now sysCallSigWait sets ip & fp     // in context regs to start scanStack     // in this frame (if in sigwait at time of GC)    //VM_Thread.getCurrentThread().jniEnv.JNITopJavaFP =     //VM_Magic.getFramePointer();    while (true) {      if (VM.BuildForEventLogging && VM.EventLoggingEnabled) VM_EventLogger.logIdleEvent();      inSysWait = true;  // temporary...GC code looks for this flag in native idle threads      int TOC = 0;      //-#if RVM_FOR_POWERPC      TOC = VM_BootRecord.the_boot_record.sysTOC;      //-#endif      VM_Magic.sysCallSigWait(VM_BootRecord.the_boot_record.sysPthreadSigWaitIP,			      TOC,		              myNativeProcessor.vpStatusAddress.toInt(),			      VM_Processor.IN_SIGWAIT,			      VM_Thread.getCurrentThread().contextRegisters);      inSysWait = false;      // if GC occurred while this thread was in sigwait,       // in which case the local variable      // myProcessor has been relocated by GC,       // so reset the PR reg using that variable      VM_ProcessorLocalState.setCurrentProcessor(myNativeProcessor);      // Change the status of this native processor back to Java now that the thread is woken up      VM_Processor.vpStatus[myNativeProcessor.vpStatusIndex] = VM_Processor.IN_JAVA;      // There should be work in the transfer queue:  the Java thread returning to its C caller      if (myNativeProcessor.transferQueue.atomicIsEmpty(myNativeProcessor.transferMutex)) {	VM_Scheduler.trace("VM_NativeIdleThread:","after sigWait Transfer Queue Empty: myProcessor.id =",			   myNativeProcessor.id);	VM_Scheduler.trace("VM_NativeIdleThread:","myProcessor->dumpProcessorState...");	myNativeProcessor.dumpProcessorState();	VM.assert(false);      }       // after the above wait is satisfied ; there is work on the transfer queue- so do a yield      VM_Thread.yield(myNativeProcessor.idleQueue); // Put ourself back on idle queue.    }  }  // blocked processor whose pthread & java thread have  // been moved to a NativeProcessor & which now needs a new pthread  VM_Processor  blockedProcessor;  boolean inSysWait;  // this field is tested by GC}