private static void dumpStackContent(byte[] stack, int fpOffset) {
private static void dumpStackContent(byte[] stack, Offset fpOffset) {
  private static void dumpStackContent(byte[] stack, int fpOffset) {    VM.disableGC();    Address upper = VM_Magic.objectAsAddress(stack).add(fpOffset).loadAddress();    VM.enableGC();    int upOffset = upper.diff(VM_Magic.objectAsAddress(stack)).toInt();    int cmid = VM_Magic.getIntAtOffset(stack, fpOffset + 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.sysWrite("stack of "+cm.getMethod()+"\n");    VM.sysWrite("      fp offset "+fpOffset+"\n");    VM.sysWrite(" NV area offset "+nonVolatileOffset+"\n");    VM.sysWrite("   first NV GPR "+firstNonVolatile+"\n");    for (int i=nonVolatileOffset; i>=0; i-=BYTES_IN_STACKSLOT) {      Word content = VM_Magic.getWordAtOffset(stack, fpOffset-i);      VM.sysWriteHex(VM_Magic.objectAsAddress(stack).add(fpOffset - i));      VM.sysWrite("  ");      VM.sysWrite(content);      VM.sysWriteln();    }  }