[vmkit-commits] [vmkit] r119499 - in /vmkit/branches/multi-vm: include/j3/J3Intrinsics.h include/mvm/JIT.h lib/J3/Compiler/J3Intrinsics.cpp lib/J3/Compiler/JavaJIT.cpp lib/Mvm/Compiler/JIT.cpp

Gael Thomas gael.thomas at lip6.fr
Wed Nov 17 07:27:42 PST 2010


Author: gthomas
Date: Wed Nov 17 09:27:42 2010
New Revision: 119499

URL: http://llvm.org/viewvc/llvm-project?rev=119499&view=rev
Log:
use JavaThread::create to create Java threads

Modified:
    vmkit/branches/multi-vm/include/j3/J3Intrinsics.h
    vmkit/branches/multi-vm/include/mvm/JIT.h
    vmkit/branches/multi-vm/lib/J3/Compiler/J3Intrinsics.cpp
    vmkit/branches/multi-vm/lib/J3/Compiler/JavaJIT.cpp
    vmkit/branches/multi-vm/lib/Mvm/Compiler/JIT.cpp

Modified: vmkit/branches/multi-vm/include/j3/J3Intrinsics.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/include/j3/J3Intrinsics.h?rev=119499&r1=119498&r2=119499&view=diff
==============================================================================
--- vmkit/branches/multi-vm/include/j3/J3Intrinsics.h (original)
+++ vmkit/branches/multi-vm/include/j3/J3Intrinsics.h Wed Nov 17 09:27:42 2010
@@ -129,11 +129,6 @@
   llvm::Constant* OffsetInitializedInTaskClassMirrorConstant;
   llvm::Constant* OffsetStatusInTaskClassMirrorConstant;
   
-  llvm::Constant* OffsetDoYieldInThreadConstant;
-  llvm::Constant* OffsetIsolateIDInThreadConstant;
-  llvm::Constant* OffsetVMInThreadConstant;
-  llvm::Constant* OffsetCXXExceptionInThreadConstant;
-	llvm::Constant* OffsetThreadInMutatorThreadConstant;
   llvm::Constant* OffsetJNIInJavaThreadConstant;
   llvm::Constant* OffsetJavaExceptionInJavaThreadConstant;
   

Modified: vmkit/branches/multi-vm/include/mvm/JIT.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/include/mvm/JIT.h?rev=119499&r1=119498&r2=119499&view=diff
==============================================================================
--- vmkit/branches/multi-vm/include/mvm/JIT.h (original)
+++ vmkit/branches/multi-vm/include/mvm/JIT.h Wed Nov 17 09:27:42 2010
@@ -175,6 +175,13 @@
 
   const llvm::Type* MutatorThreadType;
   const llvm::Type* VTType;
+
+  llvm::Constant* OffsetDoYieldInThreadConstant;
+  llvm::Constant* OffsetIsolateIDInThreadConstant;
+  llvm::Constant* OffsetVMInThreadConstant;
+  llvm::Constant* OffsetCXXExceptionInThreadConstant;
+  llvm::Constant* OffsetVMDataInThreadConstant;
+	llvm::Constant* OffsetThreadInMutatorThreadConstant;
 };
 
 

Modified: vmkit/branches/multi-vm/lib/J3/Compiler/J3Intrinsics.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Compiler/J3Intrinsics.cpp?rev=119499&r1=119498&r2=119499&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Compiler/J3Intrinsics.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/Compiler/J3Intrinsics.cpp Wed Nov 17 09:27:42 2010
@@ -139,11 +139,6 @@
   OffsetStatusInTaskClassMirrorConstant = constantZero;
   OffsetInitializedInTaskClassMirrorConstant = constantOne;
   
-  OffsetIsolateIDInThreadConstant =         ConstantInt::get(Type::getInt32Ty(Context), 1);
-  OffsetVMInThreadConstant =                ConstantInt::get(Type::getInt32Ty(Context), 2);
-  OffsetDoYieldInThreadConstant =           ConstantInt::get(Type::getInt32Ty(Context), 4);
-  OffsetCXXExceptionInThreadConstant =      ConstantInt::get(Type::getInt32Ty(Context), 11);
-	OffsetThreadInMutatorThreadConstant =     ConstantInt::get(Type::getInt32Ty(Context), 0);
   OffsetJNIInJavaThreadConstant =           ConstantInt::get(Type::getInt32Ty(Context), 1);
   OffsetJavaExceptionInJavaThreadConstant = ConstantInt::get(Type::getInt32Ty(Context), 2);
   

Modified: vmkit/branches/multi-vm/lib/J3/Compiler/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Compiler/JavaJIT.cpp?rev=119499&r1=119498&r2=119499&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Compiler/JavaJIT.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/Compiler/JavaJIT.cpp Wed Nov 17 09:27:42 2010
@@ -274,10 +274,6 @@
   return threadId;
 }
 
-llvm::Value* JavaJIT::getJavaThreadPtr(llvm::Value* mutatorThreadPtr) {
-  return new BitCastInst(mutatorThreadPtr, intrinsics->JavaThreadType, "", currentBlock);
-}
-
 llvm::Value* JavaJIT::getIsolateIDPtr(llvm::Value* mutatorThreadPtr) { 
 	Value* GEP[3] = { intrinsics->constantZero,
 										intrinsics->OffsetThreadInMutatorThreadConstant,
@@ -310,6 +306,17 @@
 	return GetElementPtrInst::Create(mutatorThreadPtr, GEP, GEP + 3, "", currentBlock);
 }
 
+llvm::Value* JavaJIT::getJavaThreadPtr(llvm::Value* mutatorThreadPtr) { 
+	Value* GEP[3] = { intrinsics->constantZero,
+										intrinsics->OffsetThreadInMutatorThreadConstant,
+										intrinsics->OffsetVMDataInThreadConstant };
+    
+	Value *res = GetElementPtrInst::Create(mutatorThreadPtr, GEP, GEP + 3, "", currentBlock);
+
+  //return new BitCastInst(res, intrinsics->JavaThreadType, "", currentBlock);
+  return new BitCastInst(mutatorThreadPtr, intrinsics->JavaThreadType, "", currentBlock);
+}
+
 llvm::Value* JavaJIT::getJNIEnvPtr(llvm::Value* javaThreadPtr) { 
 	Value* GEP[2] = { intrinsics->constantZero,
 										intrinsics->OffsetJNIInJavaThreadConstant };

Modified: vmkit/branches/multi-vm/lib/Mvm/Compiler/JIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/Mvm/Compiler/JIT.cpp?rev=119499&r1=119498&r2=119499&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/Mvm/Compiler/JIT.cpp (original)
+++ vmkit/branches/multi-vm/lib/Mvm/Compiler/JIT.cpp Wed Nov 17 09:27:42 2010
@@ -325,6 +325,13 @@
 
   VTType            = PointerType::getUnqual(module->getTypeByName("VT"));
   MutatorThreadType = PointerType::getUnqual(module->getTypeByName("MutatorThread"));
+
+  OffsetIsolateIDInThreadConstant =         ConstantInt::get(Type::getInt32Ty(Context), 1);
+  OffsetVMInThreadConstant =                ConstantInt::get(Type::getInt32Ty(Context), 2);
+  OffsetDoYieldInThreadConstant =           ConstantInt::get(Type::getInt32Ty(Context), 4);
+  OffsetCXXExceptionInThreadConstant =      ConstantInt::get(Type::getInt32Ty(Context), 11);
+  OffsetVMDataInThreadConstant =            ConstantInt::get(Type::getInt32Ty(Context), 12);
+	OffsetThreadInMutatorThreadConstant =     ConstantInt::get(Type::getInt32Ty(Context), 0);
 }
 
 const llvm::TargetData* MvmModule::TheTargetData;





More information about the vmkit-commits mailing list