[vmkit-commits] [vmkit] r58194 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaJITOpcodes.cpp Jnjvm.cpp Jnjvm.h JnjvmClassLoader.cpp JnjvmClassLoader.h
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sun Oct 26 11:43:36 PDT 2008
Author: geoffray
Date: Sun Oct 26 13:43:36 2008
New Revision: 58194
URL: http://llvm.org/viewvc/llvm-project?rev=58194&view=rev
Log:
Move the array class table to the bootstrap loader.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp
vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h
vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp?rev=58194&r1=58193&r2=58194&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp Sun Oct 26 13:43:36 2008
@@ -1840,7 +1840,9 @@
uint8 id = bytecodes[++i];
uint8 charId = arrayType(id);
#ifndef ISOLATE_SHARING
- dcl = JavaThread::get()->isolate->arrayClasses[id - 4];
+ JnjvmBootstrapLoader* loader =
+ compilingClass->classLoader->bootstrapLoader;
+ dcl = loader->getArrayClass(id);
#else
std::vector<Value*> args;
args.push_back(isolateLocal);
Modified: vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp?rev=58194&r1=58193&r2=58194&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp Sun Oct 26 13:43:36 2008
@@ -795,17 +795,7 @@
bootstrapLoader = loader;
upcalls = bootstrapLoader->upcalls;
-#ifdef ISOLATE_SHARING
throwable = upcalls->newThrowable;
-#endif
- arrayClasses[JavaArray::T_BOOLEAN - 4] = upcalls->ArrayOfBool;
- arrayClasses[JavaArray::T_BYTE - 4] = upcalls->ArrayOfByte;
- arrayClasses[JavaArray::T_CHAR - 4] = upcalls->ArrayOfChar;
- arrayClasses[JavaArray::T_SHORT - 4] = upcalls->ArrayOfShort;
- arrayClasses[JavaArray::T_INT - 4] = upcalls->ArrayOfInt;
- arrayClasses[JavaArray::T_FLOAT - 4] = upcalls->ArrayOfFloat;
- arrayClasses[JavaArray::T_LONG - 4] = upcalls->ArrayOfLong;
- arrayClasses[JavaArray::T_DOUBLE - 4] = upcalls->ArrayOfDouble;
upcalls->initialiseClasspath(bootstrapLoader);
Modified: vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h?rev=58194&r1=58193&r2=58194&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h Sun Oct 26 13:43:36 2008
@@ -88,10 +88,11 @@
///
mvm::BumpPtrAllocator allocator;
mvm::Allocator gcAllocator;
-#ifdef ISOLATE_SHARING
+
+ /// throwable - The java/lang/Throwable class. In an isolate
+ /// environment, generated code references this field.
UserClass* throwable;
-#endif
- std::map<const char, UserClassArray*> arrayClasses;
+
private:
/// bootstrapThread - The initial thread of this JVM.
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp?rev=58194&r1=58193&r2=58194&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Sun Oct 26 13:43:36 2008
@@ -218,6 +218,15 @@
primitiveMap[I_FLOAT] = upcalls->OfFloat;
primitiveMap[I_LONG] = upcalls->OfLong;
primitiveMap[I_DOUBLE] = upcalls->OfDouble;
+
+ arrayTable[JavaArray::T_BOOLEAN - 4] = upcalls->ArrayOfBool;
+ arrayTable[JavaArray::T_BYTE - 4] = upcalls->ArrayOfByte;
+ arrayTable[JavaArray::T_CHAR - 4] = upcalls->ArrayOfChar;
+ arrayTable[JavaArray::T_SHORT - 4] = upcalls->ArrayOfShort;
+ arrayTable[JavaArray::T_INT - 4] = upcalls->ArrayOfInt;
+ arrayTable[JavaArray::T_FLOAT - 4] = upcalls->ArrayOfFloat;
+ arrayTable[JavaArray::T_LONG - 4] = upcalls->ArrayOfLong;
+ arrayTable[JavaArray::T_DOUBLE - 4] = upcalls->ArrayOfDouble;
}
JnjvmClassLoader::JnjvmClassLoader(JnjvmClassLoader& JCL, JavaObject* loader,
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h?rev=58194&r1=58193&r2=58194&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h Sun Oct 26 13:43:36 2008
@@ -337,12 +337,19 @@
const UTF8* tanh;
const UTF8* finalize;
- /// primitiveMap - Map of primitives, hashed by id.
+ /// primitiveMap - Map of primitive classes, hashed by id.
std::map<const char, UserClassPrimitive*> primitiveMap;
UserClassPrimitive* getPrimitiveClass(char id) {
return primitiveMap[id];
}
+
+ /// arrayTable - Table of array classes.
+ UserClassArray* arrayTable[8];
+
+ UserClassArray* getArrayClass(unsigned id) {
+ return arrayTable[id - 4];
+ }
};
} // end namespace jnjvm
More information about the vmkit-commits
mailing list