[vmkit-commits] [vmkit] r83727 - in /vmkit/trunk/mmtk/mmtk-j3: MutatorThread.cpp MutatorThread.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sat Oct 10 13:04:00 PDT 2009


Author: geoffray
Date: Sat Oct 10 15:04:00 2009
New Revision: 83727

URL: http://llvm.org/viewvc/llvm-project?rev=83727&view=rev
Log:
Fix compilation.


Added:
    vmkit/trunk/mmtk/mmtk-j3/MutatorThread.cpp
Modified:
    vmkit/trunk/mmtk/mmtk-j3/MutatorThread.h

Added: vmkit/trunk/mmtk/mmtk-j3/MutatorThread.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/MutatorThread.cpp?rev=83727&view=auto

==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/MutatorThread.cpp (added)
+++ vmkit/trunk/mmtk/mmtk-j3/MutatorThread.cpp Sat Oct 10 15:04:00 2009
@@ -0,0 +1,20 @@
+//===--------- MutatorThread.cpp - Thread for GC --------------------------===//
+//
+//                     The VMKit project
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+
+#include "MutatorThread.h"
+#include "mvm/Threads/Thread.h"
+
+using namespace mvm;
+
+extern "C" void* MMTkMutatorAllocate(uint32_t size, VirtualTable* VT) {
+  void* val = MutatorThread::get()->Allocator.Allocate(size, "MMTk");
+  ((void**)val)[0] = VT;
+  return val;
+}

Modified: vmkit/trunk/mmtk/mmtk-j3/MutatorThread.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/MutatorThread.h?rev=83727&r1=83726&r2=83727&view=diff

==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/MutatorThread.h (original)
+++ vmkit/trunk/mmtk/mmtk-j3/MutatorThread.h Sat Oct 10 15:04:00 2009
@@ -16,6 +16,12 @@
 
 namespace mvm {
 
+extern "C" size_t MMTkMutatorSize;
+extern "C" size_t MMTkCollectorSize;
+
+extern "C" void JnJVM_org_j3_config_Selected_00024Mutator__0003Cinit_0003E__(uintptr_t);
+extern "C" void JnJVM_org_j3_config_Selected_00024Collector__0003Cinit_0003E__(uintptr_t);
+
 
 class MutatorThread : public mvm::Thread {
 public:
@@ -23,17 +29,15 @@
   uintptr_t MutatorContext;
   uintptr_t CollectorContext;
 
-  static size_t MutatorSize;
-  static size_t CollectorSize;
-
-  static void (*CollectorInit)(uintptr_t);
-  static void (*MutatorInit)(uintptr_t);
-
   MutatorThread() {
-    MutatorContext = Allocator.Allocate(MutatorSize);
-    MutatorInit(MutatorContext);
-    CollectorContext = Allocator.Allocate(CollectorSize);
-    CollectorInit(CollectorContext);
+    MutatorContext = (uintptr_t)Allocator.Allocate(MMTkMutatorSize, "Mutator");
+    JnJVM_org_j3_config_Selected_00024Mutator__0003Cinit_0003E__(MutatorContext);
+    CollectorContext = (uintptr_t)Allocator.Allocate(MMTkCollectorSize, "Collector");
+    JnJVM_org_j3_config_Selected_00024Collector__0003Cinit_0003E__(CollectorContext);
+  }
+
+  static MutatorThread* get() {
+    return (MutatorThread*)mvm::Thread::get();
   }
 
 };





More information about the vmkit-commits mailing list