VM_Scheduler.dumpVirtualMachine();
  allocateScalar (int size, Object[] tib, boolean hasFinalizer)    throws OutOfMemoryError  {  VM_Magic.pragmaInline();  // make sure this method is inlined  int objaddr;  if (Debug_torture && VM_Scheduler.allProcessorsInitialized) {		gcCount++;		if ((gcCount % 100) == 0) {			VM.sysWrite(" gc count no. ");			VM.sysWrite(gcCount);			VM.sysWrite("\n");		}		gc_collect_now = true;		VM_CollectorThread.collect(VM_CollectorThread.collect);	}		  if (GC_COUNT_FAST_ALLOC) allocCount++;  // assumption: object blocks are always a word multiple,  // so we don't need to worry about address alignment or rounding  VM_Processor st = VM_Processor.getCurrentProcessor();/// DEBUG CODEif (st.processorMode == VM_Processor.NATIVE) {		VM_Scheduler.trace("VM_Allocator:"," About to quit", st.id);		VM_Scheduler.traceback(" traceback coming");		VM.sysExit(1234);}	if (COUNT_ALLOCATIONS) {		st.totalBytesAllocated += size;		st.totalObjectsAllocated ++;	}  if (size <= GC_MAX_SMALL_SIZE) {    VM_SizeControl  the_size  = st.GC_INDEX_ARRAY[size];    if (the_size.next_slot != 0) {  // fastest path      objaddr = the_size.next_slot;      if (GC_COUNT_FAST_ALLOC) fastAllocCount++;      if (DebugLink) {        if (!isValidSmallHeapPtr(objaddr)) VM.sysFail("Bad ptr");        if (!isPtrInBlock(objaddr, the_size)) VM.sysFail("Pointer out of block");      }      the_size.next_slot = VM_Magic.getMemoryWord(objaddr);      if (DebugLink && (the_size.next_slot != 0)) {        if (!isValidSmallHeapPtr(the_size.next_slot)) VM.sysFail("Bad ptr");        if (!isPtrInBlock(the_size.next_slot, the_size)) VM.sysFail("Pointer out of block");      }      VM_Magic.setMemoryWord(objaddr, 0);      objaddr += size - OBJECT_ADDR_POSITION;      VM_Magic.setMemoryWord(objaddr + OBJECT_TIB_OFFSET,        VM_Magic.objectAsAddress(tib));            if (hasFinalizer) {				Object ret = VM_Magic.addressAsObject(objaddr);        VM_Finalizer.addElement(objaddr);				return ret;      }      return VM_Magic.addressAsObject(objaddr);    }    else {      Object ret = allocateScalar1(the_size, tib, size, the_size.ndx);      if (hasFinalizer) {        VM_Finalizer.addElement(VM_Magic.objectAsAddress(ret));      }      return ret;    }  }  else {    Object ret = allocateScalar1L(tib, size);    return ret;  }  } // 3 argument allocateScalar