if (VM.VerifyAssertions) VM._assert((overflowarea.toInt() & 0x07) == 0);
if (VM.VerifyAssertions) VM._assert(overflowarea.toWord().and(Word.fromIntZeroExtend(0x07)).isZero());
  static Object[] packageParameterFromDotArgSVR4(VM_Method targetMethod, Address glueFP, boolean skip4Args) {    // native method's stack frame    Address nativeFP = VM_Magic.getCallerFramePointer(glueFP);    VM_TypeReference[] argTypes = targetMethod.getParameterTypes();    int argCount = argTypes.length;    Object[] argObjectArray = new Object[argCount];    VM_JNIEnvironment env = VM_Thread.getCurrentThread().getJNIEnv();    // GPR r3 - r10 and FPR f1 - f8 are saved in glue stack frame    Address regsavearea = glueFP.add(VM_StackframeLayoutConstants.STACKFRAME_HEADER_SIZE);    // spill area offset    Address overflowarea = nativeFP.add(NATIVE_FRAME_HEADER_SIZE);        //-#if RVM_FOR_LINUX    //overflowarea is aligned to 8 bytes    if (VM.VerifyAssertions) VM._assert((overflowarea.toInt() & 0x07) == 0);        //-#endif        //adjust gpr and fpr to normal numbering, make life easier    int gpr = (skip4Args) ? 7:6;       // r3 - env, r4 - cls, r5 - method id    int fpr = 1;        // not set the starting gprs array address     // and fpr starting array address, so we can use gpr and fpr to     // calculate the right position to get values    // GPR starts with r3;    Address gprarray = regsavearea.add(-3*BYTES_IN_ADDRESS);     Address fprarray = regsavearea.add(8*BYTES_IN_ADDRESS-2*BYTES_IN_ADDRESS);    // call the common function for SVR4    packageArgumentForSVR4(argTypes, argObjectArray, gprarray, fprarray, overflowarea, gpr, fpr, env);         return argObjectArray;  }