}
    packageParameters(VM_Method method, Object thisArg, Object[] otherArgs,		      int[] GPRs, double[] FPRs, int[] Spills) {    int GPR   = GPRs.length;    int FPR   = FPRs.length;    int Spill = Spills.length;    int gp = FIRST_VOLATILE_GPR;    int fp = FIRST_VOLATILE_FPR;    if (!method.isStatic()) {      if (gp > LAST_VOLATILE_GPR)	Spills[--Spill] = VM_Reflection.unwrapObject(thisArg);      else {	gp++;	GPRs[--GPR] = VM_Reflection.unwrapObject(thisArg);      }    }    VM_Type [] types = method.getParameterTypes();    for (int i=0; i<types.length; i++) {      VM_Type t = types[i];      if (t.isLongType()) {	long l = VM_Reflection.unwrapLong(otherArgs[i]);	if (gp > LAST_VOLATILE_GPR) {	  Spills[--Spill] = (int)(l>>>32);	  Spills[--Spill] = (int)l;	} else {	  gp++;	  GPRs[--GPR] = (int)(l>>>32);	  if (gp > LAST_VOLATILE_GPR) Spills[--Spill] = (int)(l);	  else {	    gp++;	    GPRs[--GPR] = (int)(l);	  }	}      } else if (t.isFloatType()) {	if (fp > LAST_VOLATILE_FPR) {	  float f = VM_Reflection.unwrapFloat(otherArgs[i]);	  Spills[--Spill] = Float.floatToIntBits(f);	} else {	  fp++;	  FPRs[--FPR] = VM_Reflection.unwrapFloat(otherArgs[i]);	}      } else if (t.isDoubleType()) {	if (fp > LAST_VOLATILE_FPR) {	  double d = VM_Reflection.unwrapDouble(otherArgs[i]);	  long l = Double.doubleToLongBits(d);	  Spills[--Spill] = (int)(l>>>32);	  Spills[--Spill] = (int)l;	} else {	  fp++;	  FPRs[--FPR] = VM_Reflection.unwrapDouble(otherArgs[i]);	}      } else if (t.isBooleanType()) {	if (gp > LAST_VOLATILE_GPR)	  Spills[--Spill] = VM_Reflection.unwrapBooleanAsInt(otherArgs[i]);	else {	  gp++;	  GPRs[--GPR] = VM_Reflection.unwrapBooleanAsInt(otherArgs[i]);	}      } else if (t.isByteType()) {	if (gp > LAST_VOLATILE_GPR)	  Spills[--Spill] = (int) VM_Reflection.unwrapByte(otherArgs[i]);	else {	  gp++;	  GPRs[--GPR] = (int) VM_Reflection.unwrapByte(otherArgs[i]);	}      } else if (t.isCharType()) {	if (gp > LAST_VOLATILE_GPR)	  Spills[--Spill] = (int) VM_Reflection.unwrapChar(otherArgs[i]);	else {	  gp++;	  GPRs[--GPR] = (int) VM_Reflection.unwrapChar(otherArgs[i]);	}      } else if (t.isShortType()) {	if (gp > LAST_VOLATILE_GPR)	  Spills[--Spill] = (int) VM_Reflection.unwrapShort(otherArgs[i]);	else {	  gp++;	  GPRs[--GPR] = (int) VM_Reflection.unwrapShort(otherArgs[i]);	}      } else if (t.isIntType()) {	if (gp > LAST_VOLATILE_GPR)	  Spills[--Spill] = VM_Reflection.unwrapInt(otherArgs[i]);	else {	  gp++;	  GPRs[--GPR] = VM_Reflection.unwrapInt(otherArgs[i]);	}      } else if (!t.isPrimitiveType()) {	if (gp > LAST_VOLATILE_GPR)	  Spills[--Spill] = VM_Reflection.unwrapObject(otherArgs[i]);	else {	  gp++;	  GPRs[--GPR] = VM_Reflection.unwrapObject(otherArgs[i]);	}      } else  {	if (VM.VerifyAssertions) VM.assert(NOT_REACHED);      }    }  }}