[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