Offset upOffset = upper.diff(VM_Magic.objectAsAddress(stack));
  private static void dumpStackContent(byte[] stack, Offset fpOffset) {    VM.disableGC();    Address upper = VM_Magic.objectAsAddress(stack).loadAddress(fpOffset);    VM.enableGC();    Offset upOffset = upper.diff(VM_Magic.objectAsAddress(stack));    int cmid = VM_Magic.getIntAtOffset(stack, fpOffset.plus(STACKFRAME_METHOD_ID_OFFSET));    VM_OptCompiledMethod cm =       (VM_OptCompiledMethod)VM_CompiledMethods.getCompiledMethod(cmid);    int firstNonVolatile = cm.getFirstNonVolatileGPR();    int nonVolatiles     = cm.getNumberOfNonvolatileGPRs();    int nonVolatileOffset = cm.getUnsignedNonVolatileOffset() + (nonVolatiles -1)*BYTES_IN_STACKSLOT;    VM.sysWriteln("stack of "+cm.getMethod());    VM.sysWriteln("      fp offset ",fpOffset);    VM.sysWriteln(" NV area offset ",nonVolatileOffset);    VM.sysWriteln("   first NV GPR ",firstNonVolatile);    Address aFP = VM_Magic.objectAsAddress(stack).plus(fpOffset);    for (Address a = aFP.plus(nonVolatileOffset); a.GE(aFP); a = a.minus(BYTES_IN_STACKSLOT)) {      Word content = a.loadWord();      VM.sysWriteHex(a);      VM.sysWrite("  ");      VM.sysWrite(content);      VM.sysWriteln();    }  }