VM_Magic.pragmaNoOptCompile();
  gc_initProcessor ()  {    VM_Processor   st;    VM_Thread      activeThread;        st = VM_Processor.getCurrentProcessor();  // get current Processor Register    // if compiled for processor local chunking of "mature space" reset processor local     // pointers, to cause first request to get a block (only reset on major collection    // for minor collection, continue filling last/current mature buffer    //    if (PROCESSOR_LOCAL_MATURE_ALLOCATE) {      st.localMatureCurrentAddress = 0;      st.localMatureEndAddress = 0;    }      // if Processor is in fromSpace, copy and update array entry    if ( VM_Magic.objectAsAddress(st) >= minFromRef && 	 VM_Magic.objectAsAddress(st) <= maxFromRef ) {      st = VM_Magic.objectAsProcessor(gc_copyObject(st));   // copies object, does not queue for scanning      // change entry in system threads array to point to copied sys thread      VM_Magic.setObjectAtOffset(VM_Scheduler.processors, st.id*4, st);    }      // each gc thread updates its PROCESSOR_REGISTER after copying its VM_Processor object    VM_Magic.setProcessorRegister(st);    if (PROCESSOR_LOCAL_ALLOCATE) {      // reset local heap pointers - to force exception upon attempt to allocate      // during GC.  Will be set at end of collection.      //      st.localCurrentAddress = 0;      st.localEndAddress     = 0;    }      // if Processors activethread (should be current, gc, thread) field -> in FromSpace,    // ie. still points to old copy of VM_Thread, make it point to the copied ToSpace    // copy. All threads copied, and the VM_Scheduler.threads array updated in GC initialization.    // We want BOTH ways of computing getCurrentThread to return the new copy.    //    activeThread = st.activeThread;    if ( VM_Magic.objectAsAddress(activeThread) >= minFromRef && 	 VM_Magic.objectAsAddress(activeThread) <= maxFromRef ) {      // following gc_copyObject call will return new address of the thread object      st.activeThread = VM_Magic.objectAsThread(gc_copyObject(activeThread));    }      // setup the work queue buffers for this gc thread    VM_GCWorkQueue.resetWorkQBuffers();      }  //gc_initProcessor