public static VM_Address objectStartRef(VM_Address obj) throws VM_PragmaInline {
public static VM_Address objectStartRef(VM_Address obj) throws VM_PragmaInline { if (!(Util.validRef(obj))) { Util.dumpRef(obj); Memory.dumpMemory(obj, -32, 32); }
  public static VM_Address objectStartRef(VM_Address obj)    throws VM_PragmaInline {    Object[] tib = VM_ObjectModel.getTIB(obj);    VM_Type type = VM_Magic.objectAsType(tib[VM_TIBLayoutConstants.TIB_TYPE_INDEX]);//     VM.sysWrite("obj: "); VM.sysWrite(obj);     VM_Address rtn;    if (type.isClassType()) {//       VM.sysWrite(", scalar cell: ");      VM_Class classType = type.asClass();      int bytes = VM_ObjectModel.bytesRequiredWhenCopied(obj, classType);      rtn = obj.sub(VM_JavaHeader.SCALAR_PADDING_BYTES + bytes);    } else {//       VM.sysWrite(", array cell: ");      rtn = obj.add(VM_ObjectModel.getHeaderEndOffset(null));    }//     VM.sysWrite(rtn); VM.sysWrite(" m\n");    return rtn;  }