[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