[vmkit-commits] [vmkit] r198513 - Remove the vm field from CompilationUnit
Gael Thomas
gael.thomas at lip6.fr
Sat Jan 4 14:13:36 PST 2014
Author: gthomas
Date: Sat Jan 4 16:13:36 2014
New Revision: 198513
URL: http://llvm.org/viewvc/llvm-project?rev=198513&view=rev
Log:
Remove the vm field from CompilationUnit
Modified:
vmkit/branches/mcjit/include/j3/j3classloader.h
vmkit/branches/mcjit/include/vmkit/compiler.h
vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc
vmkit/branches/mcjit/lib/j3/vm/j3.cc
vmkit/branches/mcjit/lib/j3/vm/j3class.cc
vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc
vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
vmkit/branches/mcjit/lib/j3/vm/j3field.cc
vmkit/branches/mcjit/lib/j3/vm/j3jni.cc
vmkit/branches/mcjit/lib/j3/vm/j3method.cc
vmkit/branches/mcjit/lib/j3/vm/j3object.cc
vmkit/branches/mcjit/lib/j3/vm/j3signature.cc
vmkit/branches/mcjit/lib/vmkit/compiler.cc
Modified: vmkit/branches/mcjit/include/j3/j3classloader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3classloader.h?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3classloader.h (original)
+++ vmkit/branches/mcjit/include/j3/j3classloader.h Sat Jan 4 16:13:36 2014
@@ -53,7 +53,7 @@ namespace j3 {
std::vector<void*, vmkit::StdAllocator<void*> > nativeLibraries;
public:
- J3ClassLoader(J3* vm, J3ObjectHandle* javaClassLoader, vmkit::BumpAllocator* allocator);
+ J3ClassLoader(J3ObjectHandle* javaClassLoader, vmkit::BumpAllocator* allocator);
J3Type* getTypeInternal(J3ObjectType* from, const vmkit::Name* type, uint32_t start, uint32_t* end, bool unify);
J3Type* getType(J3ObjectType* from, const vmkit::Name* type); /* find a type */
@@ -66,8 +66,6 @@ namespace j3 {
J3ObjectHandle* javaClassLoader(bool doPush=1);
- J3* vm() const { return (J3*)vmkit::CompilationUnit::vm(); };
-
J3Class* defineClass(const vmkit::Name* name, J3ClassBytes* bytes);
J3Class* findLoadedClass(const vmkit::Name* name);
virtual J3Class* loadClass(const vmkit::Name* name);
@@ -83,7 +81,7 @@ namespace j3 {
J3ZipArchive* archive;
std::map<const char*, const char*, char_ptr_less> _cmangled;
public:
- J3InitialClassLoader(J3* vm, const char* rtjar, vmkit::BumpAllocator* allocator);
+ J3InitialClassLoader(const char* rtjar, vmkit::BumpAllocator* allocator);
J3Class* loadClass(const vmkit::Name* name);
const char* cmangled(const char* demangled) { return _cmangled[demangled]; }
Modified: vmkit/branches/mcjit/include/vmkit/compiler.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/vmkit/compiler.h?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/vmkit/compiler.h (original)
+++ vmkit/branches/mcjit/include/vmkit/compiler.h Sat Jan 4 16:13:36 2014
@@ -37,7 +37,6 @@ namespace vmkit {
class CompilationUnit : public llvm::SectionMemoryManager {
typedef std::map<const char*, Symbol*, Util::char_less_t, StdAllocator<std::pair<const char*, Symbol*> > > SymbolMap;
- VMKit* _vmkit;
BumpAllocator* _allocator;
SymbolMap _symbolTable;
pthread_mutex_t _mutexSymbolTable;
@@ -50,13 +49,11 @@ namespace vmkit {
public:
void* operator new(size_t n, BumpAllocator* allocator);
- CompilationUnit(BumpAllocator* allocator, VMKit* vmkit, const char* id);
+ CompilationUnit(BumpAllocator* allocator, const char* id);
~CompilationUnit();
static void destroy(CompilationUnit* unit);
- VMKit* vm() const { return _vmkit; }
-
void addSymbol(const char* id, vmkit::Symbol* symbol);
Symbol* getSymbol(const char* id);
uint64_t getSymbolAddress(const std::string &Name);
Modified: vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc Sat Jan 4 16:13:36 2014
@@ -572,6 +572,7 @@ jobjectArray JNICALL JVM_GetClassDeclare
enterJVM();
J3ObjectType* type = J3ObjectType::nativeClass(ofClass);
+ J3* vm = J3Thread::get()->vm();
if(type->isClass()) {
J3Class* cl = type->asClass();
@@ -580,7 +581,7 @@ jobjectArray JNICALL JVM_GetClassDeclare
cl->nbPublicFields() + cl->staticLayout()->nbPublicFields() :
cl->nbFields() + cl->staticLayout()->nbFields();
- res = J3ObjectHandle::doNewArray(type->loader()->vm()->fieldClass->getArray(), total);
+ res = J3ObjectHandle::doNewArray(vm->fieldClass->getArray(), total);
size_t cur = 0;
for(uint32_t i=0; i<cl->nbFields(); i++)
@@ -590,7 +591,7 @@ jobjectArray JNICALL JVM_GetClassDeclare
if(!publicOnly || J3Cst::isPublic(cl->staticLayout()->fields()[i].access()))
res->setObjectAt(cur++, cl->staticLayout()->fields()[i].javaField());
} else
- res = J3ObjectHandle::doNewArray(type->loader()->vm()->fieldClass->getArray(), 0);
+ res = J3ObjectHandle::doNewArray(vm->fieldClass->getArray(), 0);
leaveJVM();
Modified: vmkit/branches/mcjit/lib/j3/vm/j3.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3.cc?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3.cc Sat Jan 4 16:13:36 2014
@@ -87,7 +87,7 @@ void J3::run() {
vmkit::BumpAllocator* loaderAllocator = vmkit::BumpAllocator::create();
initialClassLoader =
new(loaderAllocator)
- J3InitialClassLoader(this, options()->rtJar, loaderAllocator);
+ J3InitialClassLoader(options()->rtJar, loaderAllocator);
vmkit::BumpAllocator* a = initialClassLoader->allocator();
Modified: vmkit/branches/mcjit/lib/j3/vm/j3class.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3class.cc?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3class.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3class.cc Sat Jan 4 16:13:36 2014
@@ -53,11 +53,12 @@ J3ObjectHandle* J3Type::javaClass(bool d
if(!_javaClass) {
lock();
if(!_javaClass) {
+ J3* vm = J3Thread::get()->vm();
J3ObjectHandle* prev = J3Thread::get()->tell();
- _javaClass = loader()->globalReferences()->add(J3ObjectHandle::doNewObject(loader()->vm()->classClass));
+ _javaClass = loader()->globalReferences()->add(J3ObjectHandle::doNewObject(vm->classClass));
J3Thread::get()->restore(prev);
- _javaClass->setLong(loader()->vm()->classClassVMData, (int64_t)(uintptr_t)this);
- loader()->vm()->classClassInit->invokeSpecial(_javaClass);
+ _javaClass->setLong(vm->classClassVMData, (int64_t)(uintptr_t)this);
+ vm->classClassInit->invokeSpecial(_javaClass);
}
unlock();
}
@@ -165,7 +166,7 @@ J3ObjectType::J3ObjectType(J3ClassLoader
}
llvm::Type* J3ObjectType::llvmType() {
- return loader()->vm()->typeJ3ObjectPtr;
+ return J3Thread::get()->vm()->typeJ3ObjectPtr;
}
J3Method* J3ObjectType::findMethod(uint32_t access, const vmkit::Name* name, J3Signature* signature, bool error) {
@@ -336,7 +337,7 @@ J3ObjectHandle* J3Class::extractAttribut
if(attr)
J3::internalError("extract attribute");
else
- return J3ObjectHandle::doNewArray(loader()->vm()->typeByte->getArray(), 0);
+ return J3ObjectHandle::doNewArray(J3Thread::get()->vm()->typeByte->getArray(), 0);
}
J3Method* J3Class::findMethod(uint32_t access, const vmkit::Name* name, J3Signature* signature, bool error) {
@@ -402,7 +403,8 @@ void J3Class::doInitialise() {
resolve();
lock();
if(status < INITED) {
- if(loader()->vm()->options()->debugIniting)
+ J3* vm = J3Thread::get()->vm();
+ if(vm->options()->debugIniting)
fprintf(stderr, "Initing: %s\n", name()->cStr());
status = INITED;
@@ -419,7 +421,7 @@ void J3Class::doInitialise() {
for(size_t i=0; i<staticLayout()->nbFields(); i++) {
J3Field* cur = staticLayout()->fields() + i;
- J3Attribute* attr = cur->attributes()->lookup(loader()->vm()->constantValueAttribute);
+ J3Attribute* attr = cur->attributes()->lookup(vm->constantValueAttribute);
if(attr) {
J3Reader reader(bytes());
@@ -443,7 +445,7 @@ void J3Class::doInitialise() {
}
}
- J3Method* clinit = staticLayout()->localFindMethod(loader()->vm()->clinitName, loader()->vm()->clinitSign);
+ J3Method* clinit = staticLayout()->localFindMethod(vm->clinitName, vm->clinitSign);
if(clinit)
clinit->invokeStatic();
@@ -454,7 +456,7 @@ void J3Class::doInitialise() {
void J3Class::doResolve(J3Field* hiddenFields, size_t nbHiddenFields) {
lock();
if(status < RESOLVED) {
- if(loader()->vm()->options()->debugResolve)
+ if(J3Thread::get()->vm()->options()->debugResolve)
fprintf(stderr, "Resolving: %s\n", name()->cStr());
status = RESOLVED;
@@ -632,7 +634,7 @@ void J3Class::readClassBytes(J3Field* hi
layout = staticLayout();
else {
layout = this;
- if(methodsTmp[i]->name() == loader()->vm()->initName) {
+ if(methodsTmp[i]->name() == J3Thread::get()->vm()->initName) {
_nbConstructors++;
if(J3Cst::isPublic(methodsTmp[i]->access()))
_nbPublicConstructors++;
@@ -692,7 +694,7 @@ J3ObjectHandle* J3Class::stringAt(uint16
check(idx, J3Cst::CONSTANT_String);
J3ObjectHandle* res = (J3ObjectHandle*)ctpResolved[idx];
if(!res) {
- ctpResolved[idx] = res = loader()->vm()->nameToString(nameAt(ctpValues[idx]), 0);
+ ctpResolved[idx] = res = J3Thread::get()->vm()->nameToString(nameAt(ctpValues[idx]), 0);
}
return (J3ObjectHandle*)res;
}
@@ -813,7 +815,7 @@ const vmkit::Name* J3Class::nameAt(uint
uint16_t len = reader.readU2(), i=0, n=0;
- res = loader()->vm()->names()->get((const char*)reader.pointer(), 0, len);
+ res = J3Thread::get()->vm()->names()->get((const char*)reader.pointer(), 0, len);
ctpResolved[idx] = (void*)res;
@@ -865,7 +867,7 @@ J3ArrayClass::J3ArrayClass(J3ClassLoader
buf[pos++] = J3Cst::ID_End;
buf[pos] = 0;
- _name = loader->vm()->names()->get(buf);
+ _name = J3Thread::get()->vm()->names()->get(buf);
}
}
@@ -885,7 +887,7 @@ uint16_t J3ArrayClass::modifiers() {
}
J3Class* J3ArrayClass::super() {
- return loader()->vm()->objectClass;
+ return J3Thread::get()->vm()->objectClass;
}
J3Method* J3ArrayClass::findMethod(uint32_t access, const vmkit::Name* name, J3Signature* signature, bool error) {
@@ -922,7 +924,7 @@ void J3ArrayClass::doNativeName() {
* ------------ J3Primitive ------------
*/
J3Primitive::J3Primitive(J3ClassLoader* loader, char id, llvm::Type* type, uint32_t logSize) :
- J3Type(loader, loader->vm()->names()->get(id)) {
+ J3Type(loader, J3Thread::get()->vm()->names()->get(id)) {
_llvmType = type;
_nativeName = (char*)loader->allocator()->allocate(2);
_nativeName[0] = id;
Modified: vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc Sat Jan 4 16:13:36 2014
@@ -21,8 +21,8 @@ using namespace j3;
J3ClassLoader::J3InterfaceMethodLess J3ClassLoader::j3InterfaceMethodLess;
-J3ClassLoader::J3ClassLoader(J3* v, J3ObjectHandle* javaClassLoader, vmkit::BumpAllocator* allocator)
- : CompilationUnit(allocator, v, "class-loader"),
+J3ClassLoader::J3ClassLoader(J3ObjectHandle* javaClassLoader, vmkit::BumpAllocator* allocator)
+ : CompilationUnit(allocator, "class-loader"),
_globalReferences(allocator),
classes(vmkit::Name::less, allocator),
types(vmkit::Name::less, allocator),
@@ -95,6 +95,7 @@ void J3ClassLoader::wrongType(J3ObjectTy
}
J3Type* J3ClassLoader::getTypeInternal(J3ObjectType* from, const vmkit::Name* typeName, uint32_t start, uint32_t* pend, bool unify) {
+ J3* vm = J3Thread::get()->vm();
J3Type* res = 0;
const char* type = typeName->cStr();
uint32_t len = typeName->length();
@@ -107,15 +108,15 @@ J3Type* J3ClassLoader::getTypeInternal(J
switch(type[pos]) {
case J3Cst::ID_Array: prof++; pos++; break;
- case J3Cst::ID_Void: res = vm()->typeVoid; pos++; break;
- case J3Cst::ID_Byte: res = vm()->typeByte; pos++; break;
- case J3Cst::ID_Char: res = vm()->typeChar; pos++; break;
- case J3Cst::ID_Double: res = vm()->typeDouble; pos++; break;
- case J3Cst::ID_Float: res = vm()->typeFloat; pos++; break;
- case J3Cst::ID_Integer: res = vm()->typeInteger; pos++; break;
- case J3Cst::ID_Long: res = vm()->typeLong; pos++; break;
- case J3Cst::ID_Short: res = vm()->typeShort; pos++; break;
- case J3Cst::ID_Boolean: res = vm()->typeBoolean; pos++; break;
+ case J3Cst::ID_Void: res = vm->typeVoid; pos++; break;
+ case J3Cst::ID_Byte: res = vm->typeByte; pos++; break;
+ case J3Cst::ID_Char: res = vm->typeChar; pos++; break;
+ case J3Cst::ID_Double: res = vm->typeDouble; pos++; break;
+ case J3Cst::ID_Float: res = vm->typeFloat; pos++; break;
+ case J3Cst::ID_Integer: res = vm->typeInteger; pos++; break;
+ case J3Cst::ID_Long: res = vm->typeLong; pos++; break;
+ case J3Cst::ID_Short: res = vm->typeShort; pos++; break;
+ case J3Cst::ID_Boolean: res = vm->typeBoolean; pos++; break;
case J3Cst::ID_Classname:
if(unify) {
uint32_t start = ++pos;
@@ -125,7 +126,7 @@ J3Type* J3ClassLoader::getTypeInternal(J
wrongType(from, typeName);
pos++;
- res = vm()->objectClass;
+ res = vm->objectClass;
} else {
uint32_t start = ++pos;
char buf[len + 1 - start], c;
@@ -140,7 +141,7 @@ J3Type* J3ClassLoader::getTypeInternal(J
buf[pos++ - start] = 0;
- res = loadClass(vm()->names()->get(buf));
+ res = loadClass(vm->names()->get(buf));
}
break;
case J3Cst::ID_Left:
@@ -154,7 +155,7 @@ J3Type* J3ClassLoader::getTypeInternal(J
if(prof) {
if(unify)
- res = vm()->objectClass;
+ res = vm->objectClass;
else
res = res->getArray(prof, start ? 0 : typeName);
}
@@ -203,9 +204,9 @@ bool J3ClassLoader::J3InterfaceMethodLes
&& (lhs->signature() < rhs->signature()));
}
-J3InitialClassLoader::J3InitialClassLoader(J3* v, const char* rtjar, vmkit::BumpAllocator* _alloc)
- : J3ClassLoader(v, 0, _alloc) {
- const char* archives = vm()->options()->rtJar;
+J3InitialClassLoader::J3InitialClassLoader(const char* rtjar, vmkit::BumpAllocator* _alloc)
+ : J3ClassLoader(0, _alloc) {
+ const char* archives = J3Thread::get()->vm()->options()->rtJar;
J3ClassBytes* bytes = J3Reader::openFile(allocator(), archives);
//makeLLVMFunctions_j3();
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=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Sat Jan 4 16:13:36 2014
@@ -37,7 +37,7 @@ J3CodeGen::J3CodeGen(vmkit::BumpAllocato
cl = method->cl()->asClass();
signature = method->signature();
loader = cl->loader();
- vm = loader->vm();
+ vm = J3Thread::get()->vm();
#if 0
if(m->cl()->name() == vm->names()->get("java/util/concurrent/atomic/AtomicInteger"))
@@ -134,13 +134,13 @@ void J3CodeGen::operator delete(void* pt
}
void J3CodeGen::translate(J3Method* method, bool withMethod, bool withCaller) {
- method->cl()->loader()->vm()->lockCompiler();
+ J3Thread::get()->vm()->lockCompiler();
vmkit::BumpAllocator* allocator = vmkit::BumpAllocator::create();
delete new(allocator) J3CodeGen(allocator, method, withMethod, withCaller);
vmkit::BumpAllocator::destroy(allocator);
- method->cl()->loader()->vm()->unlockCompiler();
+ J3Thread::get()->vm()->unlockCompiler();
}
uint32_t J3CodeGen::wideReadU1() {
Modified: vmkit/branches/mcjit/lib/j3/vm/j3field.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3field.cc?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3field.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3field.cc Sat Jan 4 16:13:36 2014
@@ -14,10 +14,9 @@ J3ObjectHandle* J3Field::javaField() {
if(!_javaField) {
J3ObjectHandle* prev = J3Thread::get()->tell();
- _javaField = layout()->loader()->globalReferences()->add(J3ObjectHandle::doNewObject(layout()->loader()->vm()->fieldClass));
-
- J3* vm = layout()->loader()->vm();
+ J3* vm = J3Thread::get()->vm();
+ _javaField = layout()->loader()->globalReferences()->add(J3ObjectHandle::doNewObject(vm->fieldClass));
vm->fieldClassInit->invokeSpecial(_javaField, /* this */
layout()->javaClass(0), /* declaring class */
vm->nameToString(name(), 0), /* name */
Modified: vmkit/branches/mcjit/lib/j3/vm/j3jni.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3jni.cc?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3jni.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3jni.cc Sat Jan 4 16:13:36 2014
@@ -23,8 +23,9 @@ jclass JNICALL FindClass(JNIEnv* env, co
enterJVM();
J3Method* m = J3Thread::get()->getJavaCaller();
- J3ClassLoader* loader = m ? m->cl()->loader() : J3Thread::get()->vm()->initialClassLoader;
- J3Class* cl = loader->loadClass(loader->vm()->names()->get(name));
+ J3* vm = J3Thread::get()->vm();
+ J3ClassLoader* loader = m ? m->cl()->loader() : vm->initialClassLoader;
+ J3Class* cl = loader->loadClass(vm->names()->get(name));
cl->initialise();
res = cl->javaClass();
leaveJVM();
@@ -145,7 +146,7 @@ jmethodID JNICALL GetMethodID(JNIEnv* en
enterJVM();
J3ObjectType* cl = J3ObjectType::nativeClass(clazz);
cl->initialise();
- vmkit::Names* n = cl->loader()->vm()->names();
+ vmkit::Names* n = J3Thread::get()->vm()->names();
res = cl->findMethod(0, n->get(name), cl->loader()->getSignature(cl, n->get(sig)), 0);
leaveJVM();
@@ -159,7 +160,7 @@ jmethodID JNICALL GetStaticMethodID(JNIE
J3ObjectType* cl = J3ObjectType::nativeClass(clazz);
cl->initialise();
- vmkit::Names* n = cl->loader()->vm()->names();
+ vmkit::Names* n = J3Thread::get()->vm()->names();
res = cl->findMethod(J3Cst::ACC_STATIC, n->get(name), cl->loader()->getSignature(cl, n->get(sig)), 0);
leaveJVM();
@@ -499,7 +500,7 @@ void JNICALL GetDoubleArrayRegion(JNIEnv
jint JNICALL RegisterNatives(JNIEnv* env, jclass clazz, const JNINativeMethod* methods, jint nMethods) {
enterJVM();
J3Class* cl = J3Class::nativeClass(clazz)->asClass();
- J3* j3 = cl->loader()->vm();
+ J3* j3 = J3Thread::get()->vm();
for(jint i=0; i<nMethods; i++)
cl->registerNative(j3->names()->get(methods[i].name), j3->names()->get(methods[i].signature), methods[i].fnPtr);
Modified: vmkit/branches/mcjit/lib/j3/vm/j3method.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3method.cc?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3method.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3method.cc Sat Jan 4 16:13:36 2014
@@ -96,9 +96,10 @@ void J3Method::postInitialise(uint32_t a
}
J3Method* J3Method::resolve(J3ObjectHandle* obj) {
- if(cl()->loader()->vm()->options()->debugLinking)
+ J3* vm = J3Thread::get()->vm();
+ if(vm->options()->debugLinking)
fprintf(stderr, "virtual linking %s::%s\n", cl()->name()->cStr(), name()->cStr());
- vmkit::Names* n = cl()->loader()->vm()->names();
+ vmkit::Names* n = vm->names();
return obj->vt()->type()->asObjectType()->findMethod(0, name(), signature());
}
@@ -121,7 +122,7 @@ J3Value J3Method::internalInvoke(J3Objec
llvm::FunctionType* fType = signature()->functionType(J3Cst::ACC_STATIC); /* static signature for va */
J3Value* args = (J3Value*)alloca(sizeof(J3Value)*(fType->getNumParams() + 1));
- J3* vm = cl()->loader()->vm();
+ J3* vm = J3Thread::get()->vm();
uint32_t i = 0;
if(handle)
@@ -265,7 +266,7 @@ J3ObjectHandle* J3Method::javaMethod() {
cl()->lock();
if(!_javaMethod) {
J3ObjectHandle* prev = J3Thread::get()->tell();
- J3* vm = cl()->loader()->vm();
+ J3* vm = J3Thread::get()->vm();
uint32_t nbIns = signature()->nbIns();
@@ -285,7 +286,7 @@ J3ObjectHandle* J3Method::javaMethod() {
J3ObjectHandle* annotations = cl()->asClass()->extractAttribute(attributes()->lookup(vm->annotationsAttribute));
J3ObjectHandle* paramAnnotations = cl()->asClass()->extractAttribute(attributes()->lookup(vm->paramAnnotationsAttribute));
- if(name() == cl()->loader()->vm()->initName) {
+ if(name() == vm->initName) {
_javaMethod = cl()->loader()->globalReferences()->add(J3ObjectHandle::doNewObject(vm->constructorClass));
vm->constructorClassInit->invokeSpecial(_javaMethod,
Modified: vmkit/branches/mcjit/lib/j3/vm/j3object.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3object.cc?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3object.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3object.cc Sat Jan 4 16:13:36 2014
@@ -78,7 +78,7 @@ J3VirtualTable* J3VirtualTable::create(J
memcpy(res->_virtualMethods, super->vt()->_virtualMethods, sizeof(void*)*super->vt()->nbVirtualMethods());
if(!J3Cst::isAbstract(cl->access())) {
- void* interfaceTrampoline = cl->loader()->vm()->interfaceTrampoline;
+ void* interfaceTrampoline = J3Thread::get()->vm()->interfaceTrampoline;
for(uint32_t i=0; i<nbInterfaceMethodTable; i++)
res->_interfaceMethodTable[i] = interfaceTrampoline;
}
@@ -92,7 +92,8 @@ J3VirtualTable* J3VirtualTable::create(J
}
J3VirtualTable* J3VirtualTable::create(J3ArrayClass* cl) {
- J3Class* objClass = cl->loader()->vm()->objectClass;
+ J3* vm = J3Thread::get()->vm();
+ J3Class* objClass = vm->objectClass;
J3Type* super = cl->component();
J3Type* base = super;
uint32_t dim = 1;
@@ -114,18 +115,18 @@ J3VirtualTable* J3VirtualTable::create(J
if(base->isPrimitive()) {
super = objClass->getArray(dim-1);
- nbSecondaries = cl->loader()->vm()->nbArrayInterfaces;
+ nbSecondaries = vm->nbArrayInterfaces;
secondaries = (J3Type**)cl->loader()->allocator()->allocate(nbSecondaries*sizeof(J3Type*));
for(uint32_t i=0; i<nbSecondaries; i++) {
- secondaries[i] = cl->loader()->vm()->arrayInterfaces[i];
+ secondaries[i] = vm->arrayInterfaces[i];
if(dim > 1)
secondaries[i] = secondaries[i]->getArray(dim-1);
}
} else if(base == objClass) {
- nbSecondaries = cl->loader()->vm()->nbArrayInterfaces;
+ nbSecondaries = vm->nbArrayInterfaces;
secondaries = (J3Type**)alloca(nbSecondaries*sizeof(J3Type*));
for(uint32_t i=0; i<nbSecondaries; i++) {
- secondaries[i] = cl->loader()->vm()->arrayInterfaces[i];
+ secondaries[i] = vm->arrayInterfaces[i];
if(dim > 1)
secondaries[i] = secondaries[i]->getArray(dim - 1);
}
Modified: vmkit/branches/mcjit/lib/j3/vm/j3signature.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3signature.cc?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3signature.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3signature.cc Sat Jan 4 16:13:36 2014
@@ -3,6 +3,7 @@
#include "j3/j3codegen.h"
#include "j3/j3classloader.h"
#include "j3/j3class.h"
+#include "j3/j3thread.h"
#include "j3/j3.h"
#include "llvm/IR/Function.h"
@@ -42,9 +43,10 @@ void J3Signature::checkInOut() {
}
J3LLVMSignature* J3Signature::buildLLVMSignature(llvm::FunctionType* fType) {
- J3LLVMSignature* res = loader()->vm()->llvmSignatures[fType];
+ J3* vm = J3Thread::get()->vm();
+ J3LLVMSignature* res = vm->llvmSignatures[fType];
if(!res) {
- loader()->vm()->llvmSignatures[fType] = res = new(loader()->vm()->allocator()) J3LLVMSignature();
+ vm->llvmSignatures[fType] = res = new(vm->allocator()) J3LLVMSignature();
res->functionType = fType;
}
return res;
@@ -56,7 +58,7 @@ void J3Signature::checkFunctionType() {
std::vector<llvm::Type*> sins;
uint32_t cur = 1;
- vins.push_back(loader()->vm()->objectClass->llvmType());
+ vins.push_back(J3Thread::get()->vm()->objectClass->llvmType());
if(name()->cStr()[0] != J3Cst::ID_Left)
loader()->wrongType(0, name());
Modified: vmkit/branches/mcjit/lib/vmkit/compiler.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/vmkit/compiler.cc?rev=198513&r1=198512&r2=198513&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/vmkit/compiler.cc (original)
+++ vmkit/branches/mcjit/lib/vmkit/compiler.cc Sat Jan 4 16:13:36 2014
@@ -33,13 +33,11 @@ void* CompilationUnit::operator new(size
void CompilationUnit::operator delete(void* self) {
}
-CompilationUnit::CompilationUnit(BumpAllocator* allocator, VMKit* vmkit, const char* id) :
+CompilationUnit::CompilationUnit(BumpAllocator* allocator, const char* id) :
_symbolTable(vmkit::Util::char_less, allocator) {
_allocator = allocator;
pthread_mutex_init(&_mutexSymbolTable, 0);
- _vmkit = vmkit;
-
std::string err;
llvm::TargetOptions opt;
@@ -148,13 +146,14 @@ void CompilationUnit::compileModule(llvm
ee()->finalizeObject();
vmkit::Safepoint* sf = Safepoint::get(this, module);
+ VMKit* vm = Thread::get()->vm();
if(!sf)
- vm()->internalError("unable to find safepoints");
+ vm->internalError("unable to find safepoints");
while(sf->addr()) {
sf->setUnit(this);
- vm()->addSafepoint(sf);
+ vm->addSafepoint(sf);
//vm()->getSafepoint(sf->addr())->dump();
sf = sf->getNext();
More information about the vmkit-commits
mailing list