VM_Statics.setSlotContents(tibSlot, typeInformationBlock);
VM_Statics.setSlotContents(getTibOffset(), typeInformationBlock);
  public final synchronized void resolve() {    if (isResolved()) return;    if (VM.VerifyAssertions) VM._assert(state == CLASS_LOADED);    elementType.resolve();        // Using the type information block for java.lang.Object as a template,    // build a type information block for this new array type by copying the    // virtual method fields and substuting an appropriate type field.    //    Object[] javaLangObjectTIB = VM_Type.JavaLangObjectType.getTypeInformationBlock();    typeInformationBlock = MM_Interface.newTIB(javaLangObjectTIB.length);    VM_Statics.setSlotContents(tibSlot, typeInformationBlock);    // Initialize dynamic type checking data structures    typeInformationBlock[TIB_TYPE_INDEX] = this;    typeInformationBlock[TIB_SUPERCLASS_IDS_INDEX] = VM_DynamicTypeCheck.buildSuperclassIds(this);    typeInformationBlock[TIB_DOES_IMPLEMENT_INDEX] = VM_DynamicTypeCheck.buildDoesImplement(this);    if (!elementType.isPrimitiveType()) {      typeInformationBlock[TIB_ARRAY_ELEMENT_TIB_INDEX] = elementType.getTypeInformationBlock();    }     state = CLASS_RESOLVED;    MM_Interface.notifyClassResolved(this);  }