bootImage.setAddressWord(ref.add(OBJECT_OID_OFFSET), oid); bootImage.setAddressWord(ref.add(OBJECT_DEATH_OFFSET), time); bootImage.setAddressWord(ref.add(OBJECT_LINK_OFFSET), prevAddress); prevAddress = ref.toWord(); oid = oid.add(Word.fromInt((size - GC_TRACING_HEADER_BYTES) >> LOG_BYTES_IN_ADDRESS));
Address ref = VM_Magic.objectAsAddress(obj); ref.store(oid, OBJECT_OID_OFFSET); ref.store(time, OBJECT_DEATH_OFFSET); oid = oid.add(Word.fromIntSignExtend((size - GC_TRACING_HEADER_BYTES) >> LOG_BYTES_IN_ADDRESS));
  public static void initializeHeader(BootImageInterface bootImage, Offset ref,                                       Object[] tib, int size, boolean isScalar)    throws LogicallyUninterruptiblePragma {    /* Only perform initialization when it is required */    if (VM.CompileForGCTracing) {      bootImage.setAddressWord(ref.add(OBJECT_OID_OFFSET), oid);      bootImage.setAddressWord(ref.add(OBJECT_DEATH_OFFSET), time);      bootImage.setAddressWord(ref.add(OBJECT_LINK_OFFSET), prevAddress);      prevAddress = ref.toWord();      oid = oid.add(Word.fromInt((size - GC_TRACING_HEADER_BYTES)                                     >> LOG_BYTES_IN_ADDRESS));    }  }