[vmkit-commits] [vmkit] r72466 - in /vmkit/trunk/lib/JnJVM: Compiler/JavaJITCompiler.cpp VMCore/JavaClass.cpp VMCore/VirtualTables.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed May 27 00:37:52 PDT 2009
Author: geoffray
Date: Wed May 27 02:37:48 2009
New Revision: 72466
URL: http://llvm.org/viewvc/llvm-project?rev=72466&view=rev
Log:
Move to a universal tracer instead of specialized.
TODO: find out what to do with the obsolete code.
Modified:
vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp?rev=72466&r1=72465&r2=72466&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp Wed May 27 02:37:48 2009
@@ -177,7 +177,7 @@
}
}
-#ifdef WITH_TRACER
+#if 0//def WITH_TRACER
if (!LCI->virtualTracerFunction) {
LCI->virtualTracerFunction = makeTracer(cl, false);
}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=72466&r1=72465&r2=72466&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Wed May 27 02:37:48 2009
@@ -43,6 +43,7 @@
extern "C" void JavaArrayTracer(JavaObject*);
extern "C" void JavaObjectTracer(JavaObject*);
extern "C" void ArrayObjectTracer(JavaObject*);
+extern "C" void RegularObjectTracer(JavaObject*);
Attribut::Attribut(const UTF8* name, uint32 length,
uint32 offset) {
@@ -1252,6 +1253,7 @@
if (C->super) {
// Set the class of this VT.
cl = C;
+ tracer = (uintptr_t)RegularObjectTracer;
// Set depth and display for fast dynamic type checking.
JavaVirtualTable* superVT = C->super->virtualVT;
Modified: vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp?rev=72466&r1=72465&r2=72466&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp Wed May 27 02:37:48 2009
@@ -177,8 +177,15 @@
for (uint32 i =0; i < NR_ISOLATES; ++i) {
TaskClassMirror &M = IsolateInfo[i];
- if (M.staticInstance && staticTracer != EmptyTracer) {
- staticTracer(M.staticInstance);
+ void* Stat = M.staticInstance;
+ if (Stat) {
+ for (uint32 i = 0; i < nbStaticFields; ++i) {
+ JavaField& field = staticFields[i];
+ if (field.isReference()) {
+ JavaObject* ptr = field.getObjectField(Stat);
+ if (ptr) ptr->markAndTrace();
+ }
+ }
}
}
}
More information about the vmkit-commits
mailing list