[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