[vmkit-commits] [vmkit] r200836 - Do not directly see anymore TLS computation in j3codegen.cc
Gael Thomas
gael.thomas at lip6.fr
Wed Feb 5 04:58:30 PST 2014
Author: gthomas
Date: Wed Feb 5 06:58:30 2014
New Revision: 200836
URL: http://llvm.org/viewvc/llvm-project?rev=200836&view=rev
Log:
Do not directly see anymore TLS computation in j3codegen.cc
Modified:
vmkit/branches/mcjit/include/j3/j3codegen.h
vmkit/branches/mcjit/include/j3/j3meta.def
vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
Modified: vmkit/branches/mcjit/include/j3/j3codegen.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3codegen.h?rev=200836&r1=200835&r2=200836&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3codegen.h (original)
+++ vmkit/branches/mcjit/include/j3/j3codegen.h Wed Feb 5 06:58:30 2014
@@ -204,7 +204,6 @@ namespace j3 {
#undef _x
llvm::GlobalValue* gvTypeInfo; /* typename void* */
llvm::Function* gcRoot;
- llvm::Function* frameAddress;
llvm::Function* stackMap;
llvm::Function* patchPoint64;
llvm::Function* patchPointVoid;
Modified: vmkit/branches/mcjit/include/j3/j3meta.def
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3meta.def?rev=200836&r1=200835&r2=200836&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3meta.def (original)
+++ vmkit/branches/mcjit/include/j3/j3meta.def Wed Feb 5 06:58:30 2014
@@ -25,6 +25,7 @@ _x(funcCXAEndCatch, "__c
_x(funcFake, "j3::J3::forceSymbolDefinition()", 0)
_x(funcJ3ThreadGet, "j3::J3Thread::get()", 0)
+_x(funcJ3ThreadGetP, "j3::J3Thread::get(void*)", 0)
_x(funcVMKitThreadGet, "vmkit::Thread::get()", 0)
_x(funcVMKitThreadGetP, "vmkit::Thread::get(void*)", 0)
_x(funcJ3ThreadJniEnv, "j3::J3Thread::jniEnv()", 0)
Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc?rev=200836&r1=200835&r2=200836&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Wed Feb 5 06:58:30 2014
@@ -86,8 +86,6 @@ J3CodeGen::J3CodeGen(vmkit::BumpAllocato
gcRoot = vm->getGCRoot(module);
- frameAddress = llvm::Intrinsic::getDeclaration(module, llvm::Intrinsic::frameaddress);
-
#if 0
//stackMap = llvm::Intrinsic::getDeclaration(module, llvm::Intrinsic::experimental_stackmap);
//patchPointVoid = llvm::Intrinsic::getDeclaration(module, llvm::Intrinsic::experimental_patchpoint_i64);
@@ -230,13 +228,13 @@ llvm::Value* J3CodeGen::typeDescriptor(J
}
llvm::Value* J3CodeGen::spToCurrentThread(llvm::Value* sp) {
- return builder.CreateIntToPtr(builder.CreateAnd(builder.CreatePtrToInt(sp, uintPtrTy),
- llvm::ConstantInt::get(uintPtrTy, vmkit::Thread::getThreadMask())),
- vm->typeJ3Thread);
+ if(sp->getType()->isIntegerTy())
+ sp = builder.CreateIntToPtr(sp, funcJ3ThreadGetP->getFunctionType()->getParamType(0));
+ return builder.CreateCall(funcJ3ThreadGetP, sp);
}
llvm::Value* J3CodeGen::currentThread() {
- return spToCurrentThread(builder.CreateCall(frameAddress, builder.getInt32(0)));
+ return builder.CreateCall(funcJ3ThreadGet);
}
void J3CodeGen::monitorEnter(llvm::Value* obj) {
@@ -257,7 +255,7 @@ void J3CodeGen::monitorEnter(llvm::Value
builder.CreateStore(builder.CreateIntToPtr(header, recordPtrTy), recordPtr);
builder.CreateCondBr(builder.CreateICmpEQ(currentThread(), spToCurrentThread(header)),
- stackLocked, tryStackLock);
+ stackLocked, tryStackLock);
/* try to stack lock */
builder.SetInsertPoint(tryStackLock);
@@ -304,7 +302,7 @@ void J3CodeGen::monitorExit(llvm::Value*
llvm::Value* header = builder.CreateLoad(headerPtr);
builder.CreateCondBr(builder.CreateICmpEQ(currentThread(), spToCurrentThread(header)),
- stackUnlock, monitorUnlock);
+ stackUnlock, monitorUnlock);
/* ok, I'm the owner */
builder.SetInsertPoint(stackUnlock);
More information about the vmkit-commits
mailing list