if (Options.verbose >= 5) { Log.prependThreadId(); Log.writeln("    processing root values"); } while (!rootValues.isEmpty()) { VM_Address v = rootValues.pop(); ScanObject.scan(v);
if (Options.verbose >= 5) { Log.prependThreadId(); Log.writeln("    processing forwarded (pre-copied) objects"); } while (!forwardedObjects.isEmpty()) { VM_Address object = forwardedObjects.pop(); scanForwardedObject(object);
  private final void processAllWork() throws VM_PragmaNoInline {    if (Options.verbose >= 4) { Log.prependThreadId(); Log.writeln("  Working on GC in parallel"); }    do {      if (Options.verbose >= 5) { Log.prependThreadId(); Log.writeln("    processing root values"); }      while (!rootValues.isEmpty()) {	VM_Address v = rootValues.pop();	ScanObject.scan(v);  // NOT traceObject      }      if (Options.verbose >= 5) { Log.prependThreadId(); Log.writeln("    processing root locations"); }      while (!rootLocations.isEmpty()) {	VM_Address loc = rootLocations.pop();	traceObjectLocation(loc, true);      }      if (Options.verbose >= 5) { Log.prependThreadId(); Log.writeln("    processing interior root locations"); }      while (!interiorRootLocations.isEmpty()) {	VM_Address obj = interiorRootLocations.pop1();	VM_Address interiorLoc = interiorRootLocations.pop2();	VM_Address interior = VM_Magic.getMemoryAddress(interiorLoc);	VM_Address newInterior = traceInteriorReference(obj, interior, true);	VM_Magic.setMemoryAddress(interiorLoc, newInterior);      }      if (Options.verbose >= 5) { Log.prependThreadId(); Log.writeln("    processing gray objects"); }      while (!values.isEmpty()) {	VM_Address v = values.pop();	ScanObject.scan(v);  // NOT traceObject      }      if (Options.verbose >= 5) { Log.prependThreadId(); Log.writeln("    processing locations"); }      while (!locations.isEmpty()) {	VM_Address loc = locations.pop();	traceObjectLocation(loc, false);      }      flushRememberedSets();    } while (!(rootLocations.isEmpty() && interiorRootLocations.isEmpty()	       && values.isEmpty() && locations.isEmpty()));    if (Options.verbose >= 4) { Log.prependThreadId(); Log.writeln("    waiting at barrier"); }    VM_Interface.rendezvous(4300);  }