}
  VM_Primitive(VM_Atom name, VM_Atom descriptor, int dictionaryId) {    this.name         = name;    this.descriptor   = descriptor;    this.dictionaryId = dictionaryId;    this.tibSlot      = VM_Statics.allocateSlot(VM_Statics.TIB);    this.dimension    = -1;    this.depth        = 0;    if (VM.BuildForConcurrentGC)      this.acyclic  = true;	// All primitives are inherently acyclic          // install type information block (no method dispatch table)     // for use in type checking.    //    Object[] tib = new Object[1];    tib[0] = this;    VM_Statics.setSlotContents(tibSlot, tib);    switch (descriptor.parseForTypeCode())      {      case VoidTypeCode:    this.stackWords = 0; break;      case BooleanTypeCode: this.stackWords = 1; break;      case ByteTypeCode:    this.stackWords = 1; break;      case ShortTypeCode:   this.stackWords = 1; break;      case IntTypeCode:     this.stackWords = 1; break;      case LongTypeCode:    this.stackWords = 2; break;      case FloatTypeCode:   this.stackWords = 1; break;      case DoubleTypeCode:  this.stackWords = 2; break;      case CharTypeCode:    this.stackWords = 1; break;      default:              if (VM.VerifyAssertions) VM.assert(NOT_REACHED);      }    state = CLASS_INITIALIZED; // primitives have no "load, resolve, instantiate, initialize" phases  }}