if ((slot > 2000 && slot < 2100 && false) || VM.TraceStatics) VM.sysWrite("VM_Statics: allocated jtoc slot " + slot + " for " + getSlotDescriptionAsString(slot) + "\n");
if (VM.TraceStatics) VM.sysWrite("VM_Statics: allocated jtoc slot " + slot + " for " + getSlotDescriptionAsString(slot) + "\n");
  public static synchronized int allocateSlot(byte description) {    if (nextSlot + 2 > slots.length) {      // !!TODO: enlarge slots[] and descriptions[], and modify jtoc register to      // point to newly enlarged slots[]      // NOTE: very tricky on IA32 because opt uses 32 bit literal address to access jtoc.      VM.sysFail("VM_Statics.allocateSlot: jtoc is full");    }    // Allocate two slots for wide items after possibly blowing another slot for alignment.    // Wide things include long or double and addresses on 64-bit architecture.    //    boolean isWide = (description & WIDE_TAG) == WIDE_TAG;    if (isWide && (nextSlot & 1) == 1) {      descriptions[nextSlot] = EMPTY;      nextSlot++;    }    int slot = nextSlot;    if (isWide) {      descriptions[slot] = description;      descriptions[slot+1] = CONTINUATION;      nextSlot += 2;    } else {      descriptions[slot] = description;      nextSlot++;    }              int offset = slot << LOG_BYTES_IN_INT;    if ((slot > 2000 && slot < 2100 && false) || VM.TraceStatics) VM.sysWrite("VM_Statics: allocated jtoc slot " + slot + " for " + getSlotDescriptionAsString(slot) + "\n");    return offset;  }