if (VM.VerifyAssertions) VM._assert(root);
  public final VM_Address traceObject(VM_Address object, boolean root)    throws VM_PragmaInline {    switch (phase) {    case PROCESS:        if (Plan.sanityTracing) {	incrementTraceCount(object);	if (root) {	  increment(object);	  VM_Interface.getPlan().addToRootSet(object); 	}      } else {	if (VM.VerifyAssertions) VM._assert(root);	increment(object);	VM_Interface.getPlan().addToRootSet(object);       }      break;    case DECREMENT:       VM_Interface.getPlan().addToDecBuf(object);       break;    case MARK_GREY:       if (VM.VerifyAssertions) VM._assert(SimpleRCBaseHeader.isLiveRC(object));      if (!SimpleRCBaseHeader.isGreen(object)) {	SimpleRCBaseHeader.decRC(object);	workQueue.push(object);      }      break;    case SCAN:       workQueue.push(object);      break;    case SCAN_BLACK:       SimpleRCBaseHeader.incRC(object);      if (!SimpleRCBaseHeader.isBlack(object))	blackQueue.push(object);      break;    case COLLECT:        workQueue.push(object);      break;    default:      if (VM.VerifyAssertions) VM._assert(false);    }    return object;  }