if (VM.VerifyAssertions) VM.assert(tid == VM_Thread.getCurrentThread().getIndex());
if (VM.VerifyAssertions) VM._assert(tid == VM_Thread.getCurrentThread().getIndex());
  static void gc_initProcessor ()  throws VM_PragmaUninterruptible {    VM_Processor st = VM_Processor.getCurrentProcessor();    VM_Address sta = VM_Magic.objectAsAddress(st);    VM_Thread activeThread = st.activeThread;    int tid = activeThread.getIndex();    if (VM.VerifyAssertions) VM.assert(tid == VM_Thread.getCurrentThread().getIndex());    // if Processor is in fromSpace, copy and update array entry    if (nurseryHeap.refInHeap(sta)) {      sta = copyAndScanObject(sta, false);   // copy thread object, do not queue for scanning      st = VM_Magic.objectAsProcessor(VM_Magic.addressAsObject(sta));      // change entry in system threads array to point to copied sys thread      VM_Magic.setMemoryAddress(VM_Magic.objectAsAddress(VM_Scheduler.processors).add(st.id*4), sta);    }