nativeIP  = VM_Magic.getMemoryAddress(symbolAddress); nativeTOC = VM_Magic.getMemoryAddress(symbolAddress.add(BYTES_IN_ADDRESS));
nativeIP = symbolAddress;
  private boolean resolveNativeMethod() {    nativeProcedureName = getMangledName(false);    String nativeProcedureNameWithSigniture = getMangledName(true);    // get the library in VM_ClassLoader    // resolve the native routine in the libraries    VM_DynamicLibrary libs[] = VM_ClassLoader.getDynamicLibraries();    VM_Address symbolAddress = VM_Address.zero();    if (libs!=null) {      for (int i=1; i<libs.length && symbolAddress.isZero(); i++) {        VM_DynamicLibrary lib = libs[i];        if (lib!=null && symbolAddress==VM_Address.zero()) {          symbolAddress = lib.getSymbol(nativeProcedureNameWithSigniture);          if (symbolAddress != VM_Address.zero()) {              nativeProcedureName = nativeProcedureNameWithSigniture;              break;          }        }        if (lib != null && symbolAddress==VM_Address.zero()) {          symbolAddress = lib.getSymbol(nativeProcedureName);          if (symbolAddress != VM_Address.zero()) {              nativeProcedureName = nativeProcedureName;              break;          }        }      }    }    if (symbolAddress.isZero()) {      // native procedure not found in library      return false;    } else {      //-#if RVM_FOR_LINUX || RVM_FOR_OSX      // both intel and linux use direct address      nativeIP = symbolAddress;         // Intel use direct branch address      nativeTOC = VM_Address.zero();                    // not used      //-#else      nativeIP  = VM_Magic.getMemoryAddress(symbolAddress);     // AIX use a triplet linkage      nativeTOC = VM_Magic.getMemoryAddress(symbolAddress.add(BYTES_IN_ADDRESS));      //-#endif      // VM.sysWrite("resolveNativeMethod: " + nativeProcedureName + ", IP = " + VM.intAsHexString(nativeIP) + ", TOC = " + VM.intAsHexString(nativeTOC) + "\n");      return true;    }  }