[vmkit-commits] [vmkit] r83466 - in /vmkit/trunk: include/jnjvm/JnjvmModule.h lib/JnJVM/Compiler/JavaJITCompiler.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Wed Oct 7 10:07:44 PDT 2009


Author: geoffray
Date: Wed Oct  7 12:07:44 2009
New Revision: 83466

URL: http://llvm.org/viewvc/llvm-project?rev=83466&view=rev
Log:
When looking for a native method, first look if the method
is in the globalModule.


Modified:
    vmkit/trunk/include/jnjvm/JnjvmModule.h
    vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp

Modified: vmkit/trunk/include/jnjvm/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/jnjvm/JnjvmModule.h?rev=83466&r1=83465&r2=83466&view=diff

==============================================================================
--- vmkit/trunk/include/jnjvm/JnjvmModule.h (original)
+++ vmkit/trunk/include/jnjvm/JnjvmModule.h Wed Oct  7 12:07:44 2009
@@ -482,7 +482,7 @@
   virtual void virtualCallAP(Signdef* sign) {
     getSignatureInfo(sign)->getVirtualAP();
   }
-  
+
   llvm::Function* NativeLoader;
 
 };
@@ -566,6 +566,8 @@
     return new mvm::UnpreciseStackScanner();
   }
 #endif
+  
+  virtual void* loadMethod(void* handle, const char* symbol);
 
 };
 

Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp?rev=83466&r1=83465&r2=83466&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp Wed Oct  7 12:07:44 2009
@@ -304,3 +304,14 @@
   delete[] newArgv;
   return 0;
 }
+
+void* JavaJITCompiler::loadMethod(void* handle, const char* symbol) {
+  Function* F = mvm::MvmModule::globalModule->getFunction(symbol);
+  if (F) {
+    void* res = mvm::MvmModule::executionEngine->getPointerToFunction(F);
+    return res;
+  }
+
+  return JavaCompiler::loadMethod(handle, symbol);
+}
+





More information about the vmkit-commits mailing list