genParameterRegisterLoad(3);
genParameterRegisterLoad(4);
  protected final void emit_multianewarray(VM_TypeReference typeRef, int dimensions) {    // setup parameters for newarrayarray routine    asm.emitPUSH_Imm (method.getId());                     // caller    asm.emitPUSH_Imm (dimensions);                     // dimension of arays    asm.emitPUSH_Imm (typeRef.getId());                   // type of array elements                   asm.emitPUSH_Imm ((dimensions + 5)<<LG_WORDSIZE);  // offset to dimensions from FP on entry to newarray     // NOTE: 5 extra words- 3 for parameters, 1 for return address on stack, 1 for code technique in VM_Linker    genParameterRegisterLoad(3);                   // pass 3 parameter words    asm.emitCALL_RegDisp(JTOC, VM_Entrypoints.newArrayArrayMethod.getOffset());     for (int i = 0; i < dimensions ; i++) asm.emitPOP_Reg(S0); // clear stack of dimensions (todo use and add immediate to do this)    asm.emitPUSH_Reg(T0);                              // push array ref on stack  }