if (VM.VerifyAssertions) VM.assert(instructions == null);
if (VM.VerifyAssertions) VM._assert(instructions == null);
  void finish () {    if (VM.VerifyAssertions) VM.assert(instructions == null); // finish must only be called once    int n = (next_bundle-1)*size+next;    instructions = VM_RuntimeStructures.newInstructions(n);    int k = 0;    for (int i=0; i<next_bundle; i++){      INSTRUCTION[] b = (INSTRUCTION[]) bundles.elementAt(i);      int m = (i == next_bundle-1 ? next : size);      for (int j=0; j<m; j++) {        instructions[k++] = b[j];      }    }    // synchronize icache with generated machine code that was written through dcache    //    if (VM.runningVM)      VM_Memory.sync(VM_Magic.objectAsAddress(instructions), instructions.length << VM.LG_INSTRUCTION_WIDTH);    // release work buffers    //    bundles = null;    current_bundle = null;  }