else VM_Thread.resizeCurrentStack(myThread.stack.length + (stackNeededInBytes >> 2),
} else { VM_Thread.resizeCurrentStack(myThread.stack.length + (stackNeededInBytes >> 2),
  public VM_DynamicLibrary(String libraryName) {    // convert file name from unicode to filesystem character set    // (assume file name is ascii, for now)    //    byte[] asciiName = new byte[libraryName.length() + 1]; // +1 for null terminator    libraryName.getBytes(0, libraryName.length(), asciiName, 0);    // make sure we have enough stack to load the library.      // This operation has been    // known to require more than 20K of stack.    VM_Thread myThread = VM_Thread.getCurrentThread();    int stackNeededInBytes =  VM_StackframeLayoutConstants.STACK_SIZE_DLOPEN -      (VM_Magic.getFramePointer().diff(myThread.stackLimit)).toInt();    if (stackNeededInBytes > 0 ) {      if (myThread.hasNativeStackFrame())        throw new java.lang.StackOverflowError("dlopen");      else        VM_Thread.resizeCurrentStack(myThread.stack.length +                                      (stackNeededInBytes >> 2),                                     null);     }    // PIN(asciiName);    VM_BootRecord bootRecord = VM_BootRecord.the_boot_record;    libHandler = VM.sysCall1(bootRecord.sysDlopenIP,                              VM_Magic.objectAsAddress(asciiName).toInt());    // UNPIN(asciiName);    if (libHandler==0) {      VM.sysWrite("error loading library: " + libraryName);      VM.sysWrite("\n");      throw new UnsatisfiedLinkError();    }    libName = new String(libraryName);    // initialize the JNI environment if not already done    // if building with RVM_WITH_JNI flag, an  error would have been    // thrown in the sysDlopen call before we get here    VM_JNIEnvironment.boot();  }