[vmkit-commits] [vmkit] r59959 - /vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Mon Nov 24 03:52:47 PST 2008
Author: geoffray
Date: Mon Nov 24 05:52:46 2008
New Revision: 59959
URL: http://llvm.org/viewvc/llvm-project?rev=59959&view=rev
Log:
In SERVICE environment, don't test if the current isolate ID is the
good one. Always update it.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp?rev=59959&r1=59958&r2=59959&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Mon Nov 24 05:52:46 2008
@@ -1061,9 +1061,7 @@
node->addIncoming(exc, cur->nativeHandler);
}
#if defined(SERVICE)
- currentBlock = cur->javaHandler;
JnjvmClassLoader* loader = compilingClass->classLoader;;
- Value* Cmp = 0;
Value* threadId = 0;
Value* OldIsolateID = 0;
Value* IsolateIDPtr = 0;
@@ -1072,50 +1070,38 @@
Value* IsolatePtr = 0;
if (loader != loader->bootstrapLoader) {
threadId = CallInst::Create(module->llvm_frameaddress, module->constantZero,
- "", currentBlock);
+ "", cur->javaHandler);
threadId = new PtrToIntInst(threadId, module->pointerSizeType, "",
- currentBlock);
+ cur->javaHandler);
threadId = BinaryOperator::CreateAnd(threadId, module->constantThreadIDMask,
- "", currentBlock);
+ "", cur->javaHandler);
- threadId = new IntToPtrInst(threadId, module->ptrPtrType, "", currentBlock);
+ threadId = new IntToPtrInst(threadId, module->ptrPtrType, "",
+ cur->javaHandler);
std::vector<Value*> GEP;
GEP.push_back(module->constantThree);
IsolateIDPtr = GetElementPtrInst::Create(threadId, GEP.begin(), GEP.end(),
- "", currentBlock);
+ "", cur->javaHandler);
const Type* realType = PointerType::getUnqual(module->pointerSizeType);
IsolateIDPtr = new BitCastInst(IsolateIDPtr, realType, "",
- currentBlock);
- OldIsolateID = new LoadInst(IsolateIDPtr, "", currentBlock);
+ cur->javaHandler);
+ OldIsolateID = new LoadInst(IsolateIDPtr, "", cur->javaHandler);
Value* MyID = ConstantInt::get(module->pointerSizeType,
loader->isolate->IsolateID);
- Cmp = new ICmpInst(ICmpInst::ICMP_EQ, OldIsolateID, MyID, "", currentBlock);
-
- BasicBlock* EndBB = createBasicBlock("After service check");
- BasicBlock* ServiceBB = createBasicBlock("Begin service call");
- BranchInst::Create(EndBB, ServiceBB, Cmp, currentBlock);
-
- currentBlock = ServiceBB;
-
- new StoreInst(MyID, IsolateIDPtr, currentBlock);
+ new StoreInst(MyID, IsolateIDPtr, cur->javaHandler);
GEP.clear();
GEP.push_back(module->constantFour);
IsolatePtr = GetElementPtrInst::Create(threadId, GEP.begin(), GEP.end(), "",
- currentBlock);
+ cur->javaHandler);
- OldIsolate = new LoadInst(IsolatePtr, "", currentBlock);
+ OldIsolate = new LoadInst(IsolatePtr, "", cur->javaHandler);
NewIsolate = module->getIsolate(loader->isolate);
- NewIsolate = new LoadInst(NewIsolate, "", currentBlock);
- new StoreInst(NewIsolate, IsolatePtr, currentBlock);
+ NewIsolate = new LoadInst(NewIsolate, "", cur->javaHandler);
+ new StoreInst(NewIsolate, IsolatePtr, cur->javaHandler);
- GEP.clear();
- GEP.push_back(OldIsolate);
- GEP.push_back(NewIsolate);
- BranchInst::Create(EndBB, currentBlock);
- currentBlock = EndBB;
}
#endif
More information about the vmkit-commits
mailing list