[vmkit-commits] [vmkit] r135878 - in /vmkit/trunk/mmtk: mmtk-alloc/Selected.cpp mmtk-j3/Memory.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Jul 24 11:03:28 PDT 2011


Author: geoffray
Date: Sun Jul 24 13:03:28 2011
New Revision: 135878

URL: http://llvm.org/viewvc/llvm-project?rev=135878&view=rev
Log:
Move code that depends on the memory begin/end of MMTk in one place.


Modified:
    vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp
    vmkit/trunk/mmtk/mmtk-j3/Memory.cpp

Modified: vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp?rev=135878&r1=135877&r2=135878&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp Sun Jul 24 13:03:28 2011
@@ -157,20 +157,6 @@
 }
 
 void Collector::initialise() {
-  // Allocate the memory for MMTk right now, to avoid conflicts with
-  // other allocators.
-#if defined (__MACH__)
-  uint32 flags = MAP_PRIVATE | MAP_ANON | MAP_FIXED;
-#else
-  uint32 flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED;
-#endif
-  void* baseAddr = mmap((void*)0x60000000, 0x30000000, PROT_READ | PROT_WRITE,
-                        flags, -1, 0);
-  if (baseAddr == MAP_FAILED) {
-    perror("mmap");
-    abort();
-  }
-  
   JnJVM_org_j3_bindings_Bindings_boot__Lorg_vmmagic_unboxed_Extent_2Lorg_vmmagic_unboxed_Extent_2(128 * 1024 * 1024, 1024 * 1024 * 1024);
 }
 

Modified: vmkit/trunk/mmtk/mmtk-j3/Memory.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/Memory.cpp?rev=135878&r1=135877&r2=135878&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/Memory.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/Memory.cpp Sun Jul 24 13:03:28 2011
@@ -15,20 +15,43 @@
 
 namespace mmtk {
 
+static const uintptr_t MemoryStart = 0x50000000;
+static const uintptr_t MemorySize = 0x40000000;
+
+class InitCollector {
+public:
+  InitCollector() {
+#if defined (__MACH__)
+    uint32 flags = MAP_PRIVATE | MAP_ANON | MAP_FIXED;
+#else
+    uint32 flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED;
+#endif
+    void* baseAddr = mmap((void*)MemoryStart, MemorySize, PROT_READ | PROT_WRITE,
+                          flags, -1, 0);
+    if (baseAddr == MAP_FAILED) {
+      perror("mmap");
+      abort();
+    }
+  }
+};
+
+// Allocate the memory for MMTk right now, to avoid conflicts with other allocators.
+InitCollector initCollector;
+
 extern "C" uintptr_t Java_org_j3_mmtk_Memory_getHeapStartConstant__ (MMTkObject* M) {
-  return (uintptr_t)0x60000000;
+  return MemoryStart;
 }
 
 extern "C" uintptr_t Java_org_j3_mmtk_Memory_getHeapEndConstant__ (MMTkObject* M) {
-  return (uintptr_t)0x90000000;
+  return MemoryStart + MemorySize;
 }
 
 extern "C" uintptr_t Java_org_j3_mmtk_Memory_getAvailableStartConstant__ (MMTkObject* M) {
-  return (uintptr_t)0x60000000;
+  return Java_org_j3_mmtk_Memory_getHeapStartConstant__ (M);
 }
 
 extern "C" uintptr_t Java_org_j3_mmtk_Memory_getAvailableEndConstant__ (MMTkObject* M) {
-  return (uintptr_t)0x90000000;
+  return Java_org_j3_mmtk_Memory_getHeapEndConstant__ (M);
 }
 
 extern "C" sint32





More information about the vmkit-commits mailing list