The problems: when set bits to 64, the ObjectModel didn't copy byte correctly, should use loadByte instead of loadInt.

Harness.init("collectors=1",
                    "plan=org.mmtk.plan.generational.markswap.GenMW",
                    "bits=64"

another question: how to test multiple mutators? one cpu machine seems to generate one mutator even when collectors are set to 4.
=================
diff file
===================

Index: MMTk/ext/vm/harness/org/mmtk/harness/vm/ObjectModel.java
===================================================================
--- MMTk/ext/vm/harness/org/mmtk/harness/vm/ObjectModel.java    (版本 15804)
+++ MMTk/ext/vm/harness/org/mmtk/harness/vm/ObjectModel.java    (工作副本)
@@ -407,10 +407,12 @@
     }
     int bytes = getSize(from);
     Address fromRegion = from.toAddress();
-    for(int i=0; i < bytes; i += MemoryConstants.BYTES_IN_WORD) {
-      toRegion.plus(i).store(fromRegion.plus(i).loadInt());
-    }
-
+//    for(int i=0; i < bytes; i += MemoryConstants.BYTES_IN_WORD) {
+//      toRegion.plus(i).store(fromRegion.plus(i).loadInt());
+//    }
+  for(int i=0; i < bytes; i ++) {
+  toRegion.plus(i).store(fromRegion.plus(i).loadByte());
+}
     int status = toRegion.loadInt(STATUS_OFFSET);
     if ((status & HASHED_AND_MOVED) == HASHED) {
       toRegion.store(status | HASHED_AND_MOVED, STATUS_OFFSET);
@@ -422,7 +424,7 @@
       dumpObjectHeader(to);
     }
     if (isWatched(from)) {
-      System.err.printf("WATCH: Object %d copied from %s to %s%n",objectIdString(from),
+      System.err.printf("WATCH: Object %s copied from %s to %s%n",objectIdString(from),
           addressAndSpaceString(from),addressAndSpaceString(to));
     }
     return toRegion.plus(bytes);
Index: MMTk/src/org/mmtk/plan/generational/marksweep/GenMSConstraints.java
===================================================================
--- MMTk/src/org/mmtk/plan/generational/marksweep/GenMSConstraints.java    (版本 15804)
+++ MMTk/src/org/mmtk/plan/generational/marksweep/GenMSConstraints.java    (工作副本)
@@ -13,6 +13,7 @@
 package org.mmtk.plan.generational.marksweep;
 
 import org.mmtk.plan.generational.GenConstraints;
+
 import static org.mmtk.policy.SegregatedFreeListSpace.MAX_FREELIST_OBJECT_BYTES;
 
 import org.vmmagic.pragma.*;
 
DaFENG
Coder
Telecommunication && Network Industry
Pudong
Shanghai
China