[Vm-dev] [commit][2852] CogVM source as per MMaker.oscog-eem.592

commits at squeakvm.org commits at squeakvm.org
Sat Jan 25 01:04:35 UTC 2014


Revision: 2852
Author:   eliot
Date:     2014-01-24 17:04:32 -0800 (Fri, 24 Jan 2014)
Log Message:
-----------
CogVM source as per MMaker.oscog-eem.592
Author: eem
Time: 24 January 2014, 4:52:54.33 pm
UUID: 98758c41-4bb5-4d45-87c9-77e5cf416120
Ancestors: VMMaker.oscog-eem.591

Fix regression in mapProfileState committed in VMMaker.oscog-eem.380/r2796.
Causes segfaults on GC after running the AndreasSystemProfiler.

Modified Paths:
--------------
    branches/Cog/nscogsrc/vm/cointerp.c
    branches/Cog/nscogsrc/vm/cointerp.h
    branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
    branches/Cog/nscogsrc/vm/interp.h
    branches/Cog/nscogsrc/vm/vmCallback.h
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spursrc/vm/interp.h
    branches/Cog/spursrc/vm/vmCallback.h
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.c
    branches/Cog/spurstacksrc/vm/interp.h
    branches/Cog/spurstacksrc/vm/vmCallback.h
    branches/Cog/src/vm/cointerp.c
    branches/Cog/src/vm/cointerp.h
    branches/Cog/src/vm/cointerpmt.c
    branches/Cog/src/vm/cointerpmt.h
    branches/Cog/src/vm/gcc3x-cointerp.c
    branches/Cog/src/vm/gcc3x-cointerpmt.c
    branches/Cog/src/vm/interp.h
    branches/Cog/src/vm/vmCallback.h
    branches/Cog/stacksrc/vm/gcc3x-interp.c
    branches/Cog/stacksrc/vm/interp.c
    branches/Cog/stacksrc/vm/interp.h
    branches/Cog/stacksrc/vm/vmCallback.h

Property Changed:
----------------
    branches/Cog/platforms/Cross/vm/sqSCCSVersion.h

Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/nscogsrc/vm/cointerp.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1143,7 +1143,7 @@
 static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
 static sqInt roomToPushNArgs(sqInt n);
 static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static usqInt safeObjectAfter(sqInt oop);
+static sqInt safeObjectAfter(sqInt oop);
 static sqInt safePrintStringOf(sqInt oop);
 usqInt scavengeThresholdAddress(void);
 EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -1298,15 +1298,15 @@
 _iss usqInt fwdTableNext;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt tempOop;
-_iss sqInt profileProcess;
 _iss sqInt profileSemaphore;
 _iss usqInt compStart;
 _iss sqInt extraRootCount;
+_iss sqInt profileProcess;
 _iss sqInt classNameIndex;
 _iss sqInt weakRootCount;
 _iss sqInt longRunningPrimitiveCheckMethod;
+_iss sqInt profileMethod;
 _iss sqInt lastMethodCacheProbeWrite;
-_iss sqInt profileMethod;
 _iss sqInt backwardJumpCount;
 _iss sqInt growHeadroom;
 _iss sqInt lkupClass;
@@ -2029,7 +2029,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.591";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.592";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -23719,15 +23719,17 @@
     sqInt header1;
     sqInt header2;
     sqInt header3;
+    sqInt header4;
     usqInt lastWord;
     sqInt newFreeChunk;
     sqInt newOop;
-    usqInt next;
+    sqInt next;
     sqInt oop;
     sqInt realHeader;
     sqInt sz;
     sqInt sz1;
     sqInt sz2;
+    sqInt sz3;
     sqInt target;
     usqInt w;
 
@@ -23738,7 +23740,21 @@
 		/* begin objectAfterWhileForwarding: */
 		header2 = longAt(oop);
 		if ((header2 & MarkBit) == 0) {
-			next = ((sqInt) (objectAfter(oop)));
+			/* begin objectAfter: */
+			if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) {
+				error("no objects after the end of memory");
+			}
+			if (((longAt(oop)) & TypeMask) == HeaderTypeFree) {
+				sz2 = (longAt(oop)) & AllButTypeMask;
+			}
+			else {
+				/* begin sizeBitsOf: */
+				header3 = longAt(oop);
+				sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
+					? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask
+					: header3 & SizeMask);
+			}
+			next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]);
 			goto l1;
 		}
 		fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1;
@@ -23753,7 +23769,7 @@
 		else {
 			sz1 = realHeader & SizeMask;
 		}
-		next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask])));
+		next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]);
 	l1:	/* end objectAfterWhileForwarding: */;
 		if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
 
@@ -23807,18 +23823,18 @@
 	}
 	/* begin safeObjectAfter: */
 	if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) {
-		sz2 = (longAt(newFreeChunk)) & AllButTypeMask;
+		sz3 = (longAt(newFreeChunk)) & AllButTypeMask;
 	}
 	else {
 		/* begin sizeBitsOf: */
-		header3 = longAt(newFreeChunk);
-		sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
+		header4 = longAt(newFreeChunk);
+		sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass
 			? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask
-			: header3 & SizeMask);
+			: header4 & SizeMask);
 	}
-	next = ((newFreeChunk + sz2) >= GIV(freeStart)
+	next = ((newFreeChunk + sz3) >= GIV(freeStart)
 		? GIV(freeStart)
-		: (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask]));
+		: (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask]));
 	assert((next == GIV(freeStart))
 	 || (next == (oopFromChunk(GIV(compEnd)))));
 	if (next == GIV(freeStart)) {
@@ -27106,7 +27122,7 @@
 	}
 	if (((GIV(profileMethod) & 1) == 0)
 	 && (((longAt(GIV(profileMethod))) & MarkBit) != 0)) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if (((GIV(profileSemaphore) & 1) == 0)
 	 && (((longAt(GIV(profileSemaphore))) & MarkBit) != 0)) {
@@ -50012,7 +50028,7 @@
 	given object or free chunk in memory. Return freeStart when
 	enumeration is complete. This is for assertion checking only. */
 
-static usqInt
+static sqInt
 safeObjectAfter(sqInt oop)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt header;

Modified: branches/Cog/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/nscogsrc/vm/cointerp.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 

Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1146,7 +1146,7 @@
 static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
 static sqInt roomToPushNArgs(sqInt n);
 static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static usqInt safeObjectAfter(sqInt oop);
+static sqInt safeObjectAfter(sqInt oop);
 static sqInt safePrintStringOf(sqInt oop);
 usqInt scavengeThresholdAddress(void);
 EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -1301,15 +1301,15 @@
 _iss usqInt fwdTableNext;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt tempOop;
-_iss sqInt profileProcess;
 _iss sqInt profileSemaphore;
 _iss usqInt compStart;
 _iss sqInt extraRootCount;
+_iss sqInt profileProcess;
 _iss sqInt classNameIndex;
 _iss sqInt weakRootCount;
 _iss sqInt longRunningPrimitiveCheckMethod;
+_iss sqInt profileMethod;
 _iss sqInt lastMethodCacheProbeWrite;
-_iss sqInt profileMethod;
 _iss sqInt backwardJumpCount;
 _iss sqInt growHeadroom;
 _iss sqInt lkupClass;
@@ -2032,7 +2032,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.591";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.592";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -23728,15 +23728,17 @@
     sqInt header1;
     sqInt header2;
     sqInt header3;
+    sqInt header4;
     usqInt lastWord;
     sqInt newFreeChunk;
     sqInt newOop;
-    usqInt next;
+    sqInt next;
     sqInt oop;
     sqInt realHeader;
     sqInt sz;
     sqInt sz1;
     sqInt sz2;
+    sqInt sz3;
     sqInt target;
     usqInt w;
 
@@ -23747,7 +23749,21 @@
 		/* begin objectAfterWhileForwarding: */
 		header2 = longAt(oop);
 		if ((header2 & MarkBit) == 0) {
-			next = ((sqInt) (objectAfter(oop)));
+			/* begin objectAfter: */
+			if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) {
+				error("no objects after the end of memory");
+			}
+			if (((longAt(oop)) & TypeMask) == HeaderTypeFree) {
+				sz2 = (longAt(oop)) & AllButTypeMask;
+			}
+			else {
+				/* begin sizeBitsOf: */
+				header3 = longAt(oop);
+				sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
+					? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask
+					: header3 & SizeMask);
+			}
+			next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]);
 			goto l1;
 		}
 		fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1;
@@ -23762,7 +23778,7 @@
 		else {
 			sz1 = realHeader & SizeMask;
 		}
-		next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask])));
+		next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]);
 	l1:	/* end objectAfterWhileForwarding: */;
 		if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
 
@@ -23816,18 +23832,18 @@
 	}
 	/* begin safeObjectAfter: */
 	if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) {
-		sz2 = (longAt(newFreeChunk)) & AllButTypeMask;
+		sz3 = (longAt(newFreeChunk)) & AllButTypeMask;
 	}
 	else {
 		/* begin sizeBitsOf: */
-		header3 = longAt(newFreeChunk);
-		sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
+		header4 = longAt(newFreeChunk);
+		sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass
 			? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask
-			: header3 & SizeMask);
+			: header4 & SizeMask);
 	}
-	next = ((newFreeChunk + sz2) >= GIV(freeStart)
+	next = ((newFreeChunk + sz3) >= GIV(freeStart)
 		? GIV(freeStart)
-		: (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask]));
+		: (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask]));
 	assert((next == GIV(freeStart))
 	 || (next == (oopFromChunk(GIV(compEnd)))));
 	if (next == GIV(freeStart)) {
@@ -27115,7 +27131,7 @@
 	}
 	if (((GIV(profileMethod) & 1) == 0)
 	 && (((longAt(GIV(profileMethod))) & MarkBit) != 0)) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if (((GIV(profileSemaphore) & 1) == 0)
 	 && (((longAt(GIV(profileSemaphore))) & MarkBit) != 0)) {
@@ -50021,7 +50037,7 @@
 	given object or free chunk in memory. Return freeStart when
 	enumeration is complete. This is for assertion checking only. */
 
-static usqInt
+static sqInt
 safeObjectAfter(sqInt oop)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt header;

Modified: branches/Cog/nscogsrc/vm/interp.h
===================================================================
--- branches/Cog/nscogsrc/vm/interp.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/nscogsrc/vm/interp.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/nscogsrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nscogsrc/vm/vmCallback.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/nscogsrc/vm/vmCallback.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 #define VM_CALLBACK_INC 1


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Fri Jan 24 13:06:26 PST 2014
   + Fri Jan 24 17:01:09 PST 2014

Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/spursrc/vm/cointerp.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1439,20 +1439,20 @@
 _iss sqInt tempOop;
 _iss char * objStackInvalidBecause;
 _iss SpurNewSpaceSpace eden;
-_iss sqInt profileProcess;
 _iss sqInt profileSemaphore;
 _iss sqInt tenureThreshold;
 _iss sqInt ephemeronList;
 _iss sqInt needGCFlag;
+_iss sqInt profileProcess;
 _iss sqInt extraRootCount;
 _iss sqInt invalidObjStackPage;
 _iss sqInt previousRememberedSetSize;
 _iss unsigned char * classTableBitmap;
 _iss sqInt longRunningPrimitiveCheckMethod;
+_iss sqInt profileMethod;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt lkupClass;
-_iss sqInt profileMethod;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
 _iss sqInt classTableIndex;
@@ -2168,7 +2168,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 usqInt heapBase;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.591]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.592]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -28752,7 +28752,7 @@
 	}
 	if ((((longAt(GIV(profileMethod))) & 0x3FFFFF) == 8)
 	 || (isReallyYoungObject(GIV(profileMethod)))) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if ((((longAt(GIV(profileSemaphore))) & 0x3FFFFF) == 8)
 	 || (isReallyYoungObject(GIV(profileSemaphore)))) {

Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/spursrc/vm/cointerp.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 

Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1442,20 +1442,20 @@
 _iss sqInt tempOop;
 _iss char * objStackInvalidBecause;
 _iss SpurNewSpaceSpace eden;
-_iss sqInt profileProcess;
 _iss sqInt profileSemaphore;
 _iss sqInt tenureThreshold;
 _iss sqInt ephemeronList;
 _iss sqInt needGCFlag;
+_iss sqInt profileProcess;
 _iss sqInt extraRootCount;
 _iss sqInt invalidObjStackPage;
 _iss sqInt previousRememberedSetSize;
 _iss unsigned char * classTableBitmap;
 _iss sqInt longRunningPrimitiveCheckMethod;
+_iss sqInt profileMethod;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt lkupClass;
-_iss sqInt profileMethod;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
 _iss sqInt classTableIndex;
@@ -2171,7 +2171,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 usqInt heapBase;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.591]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.592]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -28761,7 +28761,7 @@
 	}
 	if ((((longAt(GIV(profileMethod))) & 0x3FFFFF) == 8)
 	 || (isReallyYoungObject(GIV(profileMethod)))) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if ((((longAt(GIV(profileSemaphore))) & 0x3FFFFF) == 8)
 	 || (isReallyYoungObject(GIV(profileSemaphore)))) {

Modified: branches/Cog/spursrc/vm/interp.h
===================================================================
--- branches/Cog/spursrc/vm/interp.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/spursrc/vm/interp.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/spursrc/vm/vmCallback.h
===================================================================
--- branches/Cog/spursrc/vm/vmCallback.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/spursrc/vm/vmCallback.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/gcc3x-interp.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	StackInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	StackInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1259,20 +1259,20 @@
 _iss sqLong nextProfileTick;
 _iss char * objStackInvalidBecause;
 _iss SpurNewSpaceSpace eden;
-_iss sqInt profileProcess;
 _iss sqInt tenureThreshold;
 _iss sqInt ephemeronList;
 _iss sqInt needGCFlag;
 _iss sqInt numPages;
+_iss sqInt profileProcess;
 _iss sqInt extraRootCount;
 _iss sqInt invalidObjStackPage;
 _iss sqInt previousRememberedSetSize;
 _iss unsigned char * classTableBitmap;
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
+_iss sqInt profileMethod;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
-_iss sqInt profileMethod;
 _iss sqInt growHeadroom;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
@@ -1969,7 +1969,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.591]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.592]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -24495,7 +24495,7 @@
 	}
 	if ((((longAt(GIV(profileMethod))) & 0x3FFFFF) == 8)
 	 || (isReallyYoungObject(GIV(profileMethod)))) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if ((((longAt(GIV(profileSemaphore))) & 0x3FFFFF) == 8)
 	 || (isReallyYoungObject(GIV(profileSemaphore)))) {

Modified: branches/Cog/spurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/spurstacksrc/vm/interp.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	StackInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	StackInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1256,20 +1256,20 @@
 _iss sqLong nextProfileTick;
 _iss char * objStackInvalidBecause;
 _iss SpurNewSpaceSpace eden;
-_iss sqInt profileProcess;
 _iss sqInt tenureThreshold;
 _iss sqInt ephemeronList;
 _iss sqInt needGCFlag;
 _iss sqInt numPages;
+_iss sqInt profileProcess;
 _iss sqInt extraRootCount;
 _iss sqInt invalidObjStackPage;
 _iss sqInt previousRememberedSetSize;
 _iss unsigned char * classTableBitmap;
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
+_iss sqInt profileMethod;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
-_iss sqInt profileMethod;
 _iss sqInt growHeadroom;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
@@ -1966,7 +1966,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.591]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.592]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -24486,7 +24486,7 @@
 	}
 	if ((((longAt(GIV(profileMethod))) & 0x3FFFFF) == 8)
 	 || (isReallyYoungObject(GIV(profileMethod)))) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if ((((longAt(GIV(profileSemaphore))) & 0x3FFFFF) == 8)
 	 || (isReallyYoungObject(GIV(profileSemaphore)))) {

Modified: branches/Cog/spurstacksrc/vm/interp.h
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/spurstacksrc/vm/interp.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/spurstacksrc/vm/vmCallback.h
===================================================================
--- branches/Cog/spurstacksrc/vm/vmCallback.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/spurstacksrc/vm/vmCallback.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/src/vm/cointerp.c
===================================================================
--- branches/Cog/src/vm/cointerp.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/src/vm/cointerp.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1288,15 +1288,15 @@
 _iss usqInt fwdTableNext;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt tempOop;
-_iss sqInt profileProcess;
 _iss sqInt profileSemaphore;
 _iss usqInt compStart;
 _iss sqInt extraRootCount;
+_iss sqInt profileProcess;
 _iss sqInt classNameIndex;
 _iss sqInt weakRootCount;
 _iss sqInt longRunningPrimitiveCheckMethod;
-_iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt profileMethod;
+_iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt growHeadroom;
 _iss sqInt lkupClass;
 _iss usqLong nextWakeupUsecs;
@@ -2019,7 +2019,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.591]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.592]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -4711,7 +4711,6 @@
 							GIV(framePointer) = localFP;
 							
 							ceEnterCogCodePopReceiverReg();
-							null;
 							goto l158;
 						}
 						localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
@@ -4726,7 +4725,7 @@
 					/* begin fetchNextBytecode */
 					currentBytecode = byteAtPointer(++localIP);
 
-					null;
+					/* return self */
 				l158:	/* end baseFrameReturn */;
 					goto l155;
 				}
@@ -22541,7 +22540,7 @@
 	}
 	if (((GIV(profileMethod) & 1) == 0)
 	 && (((longAt(GIV(profileMethod))) & MarkBit) != 0)) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if (((GIV(profileSemaphore) & 1) == 0)
 	 && (((longAt(GIV(profileSemaphore))) & MarkBit) != 0)) {

Modified: branches/Cog/src/vm/cointerp.h
===================================================================
--- branches/Cog/src/vm/cointerp.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/src/vm/cointerp.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 

Modified: branches/Cog/src/vm/cointerpmt.c
===================================================================
--- branches/Cog/src/vm/cointerpmt.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/src/vm/cointerpmt.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	CoInterpreterMT VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CoInterpreterMT VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1201,7 +1201,7 @@
 static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
 static sqInt roomToPushNArgs(sqInt n);
 static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static sqInt safeObjectAfter(sqInt oop);
+static usqInt safeObjectAfter(sqInt oop);
 static sqInt safePrintStringOf(sqInt oop);
 usqInt scavengeThresholdAddress(void);
 EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -1374,19 +1374,19 @@
 _iss usqInt fwdTableNext;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt tempOop;
-_iss sqInt profileProcess;
 _iss sqInt profileSemaphore;
 _iss usqInt compStart;
 _iss sqInt extraRootCount;
+_iss sqInt profileProcess;
 _iss sqInt classNameIndex;
 _iss sqInt maxWaitingPriority;
 _iss sqInt weakRootCount;
 _iss sqInt fullGCLock;
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt preemptionYields;
+_iss sqInt profileMethod;
 _iss sqInt vmOwner;
 _iss sqInt lastMethodCacheProbeWrite;
-_iss sqInt profileMethod;
 _iss sqInt growHeadroom;
 _iss sqInt lkupClass;
 _iss usqLong nextWakeupUsecs;
@@ -2117,7 +2117,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.591]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.592]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 sqInt willNotThreadWarnCount;
@@ -5632,6 +5632,7 @@
 						/* begin internalPush: */
 						longAtPointerput((localSP -= BytesPerOop), longAt((rcvr + BaseHeaderSize) + (byte3 << ShiftForWord)));
 					}
+					null;
 					goto l4;
 				}
 				if (opType == 3) {
@@ -5641,6 +5642,7 @@
 					assert(GIV(method) == (iframeMethod(localFP)));
 					object = longAt((GIV(method) + BaseHeaderSize) + ((byte3 + LiteralStart) << ShiftForWord));
 					longAtPointerput((localSP -= BytesPerOop), object);
+					null;
 					goto l4;
 				}
 				if (opType == 4) {
@@ -5654,6 +5656,7 @@
 					object2 = longAt((oop + BaseHeaderSize) + (ValueIndex << ShiftForWord));
 					longAtPointerput((localSP -= BytesPerOop), object2);
 
+					null;
 					goto l4;
 				}
 				top = longAtPointer(localSP);
@@ -19884,17 +19887,15 @@
     sqInt header1;
     sqInt header2;
     sqInt header3;
-    sqInt header4;
     usqInt lastWord;
     sqInt newFreeChunk;
     sqInt newOop;
-    sqInt next;
+    usqInt next;
     sqInt oop;
     sqInt realHeader;
     sqInt sz;
     sqInt sz1;
     sqInt sz2;
-    sqInt sz3;
     sqInt target;
     usqInt w;
 
@@ -19905,21 +19906,7 @@
 		/* begin objectAfterWhileForwarding: */
 		header2 = longAt(oop);
 		if ((header2 & MarkBit) == 0) {
-			/* begin objectAfter: */
-			if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) {
-				error("no objects after the end of memory");
-			}
-			if (((longAt(oop)) & TypeMask) == HeaderTypeFree) {
-				sz2 = (longAt(oop)) & AllButTypeMask;
-			}
-			else {
-				/* begin sizeBitsOf: */
-				header3 = longAt(oop);
-				sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
-					? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask
-					: header3 & SizeMask);
-			}
-			next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]);
+			next = ((sqInt) (objectAfter(oop)));
 			goto l1;
 		}
 		fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1;
@@ -19934,7 +19921,7 @@
 		else {
 			sz1 = realHeader & SizeMask;
 		}
-		next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]);
+		next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask])));
 	l1:	/* end objectAfterWhileForwarding: */;
 		if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
 
@@ -19988,18 +19975,18 @@
 	}
 	/* begin safeObjectAfter: */
 	if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) {
-		sz3 = (longAt(newFreeChunk)) & AllButTypeMask;
+		sz2 = (longAt(newFreeChunk)) & AllButTypeMask;
 	}
 	else {
 		/* begin sizeBitsOf: */
-		header4 = longAt(newFreeChunk);
-		sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass
+		header3 = longAt(newFreeChunk);
+		sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
 			? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask
-			: header4 & SizeMask);
+			: header3 & SizeMask);
 	}
-	next = ((newFreeChunk + sz3) >= GIV(freeStart)
+	next = ((newFreeChunk + sz2) >= GIV(freeStart)
 		? GIV(freeStart)
-		: (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask]));
+		: (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask]));
 	assert((next == GIV(freeStart))
 	 || (next == (oopFromChunk(GIV(compEnd)))));
 	if (next == GIV(freeStart)) {
@@ -23332,7 +23319,7 @@
 	}
 	if (((GIV(profileMethod) & 1) == 0)
 	 && (((longAt(GIV(profileMethod))) & MarkBit) != 0)) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if (((GIV(profileSemaphore) & 1) == 0)
 	 && (((longAt(GIV(profileSemaphore))) & MarkBit) != 0)) {
@@ -46777,7 +46764,7 @@
 	given object or free chunk in memory. Return freeStart when
 	enumeration is complete. This is for assertion checking only. */
 
-static sqInt
+static usqInt
 safeObjectAfter(sqInt oop)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt header;

Modified: branches/Cog/src/vm/cointerpmt.h
===================================================================
--- branches/Cog/src/vm/cointerpmt.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/src/vm/cointerpmt.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 

Modified: branches/Cog/src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/src/vm/gcc3x-cointerp.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/src/vm/gcc3x-cointerp.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1291,15 +1291,15 @@
 _iss usqInt fwdTableNext;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt tempOop;
-_iss sqInt profileProcess;
 _iss sqInt profileSemaphore;
 _iss usqInt compStart;
 _iss sqInt extraRootCount;
+_iss sqInt profileProcess;
 _iss sqInt classNameIndex;
 _iss sqInt weakRootCount;
 _iss sqInt longRunningPrimitiveCheckMethod;
-_iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt profileMethod;
+_iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt growHeadroom;
 _iss sqInt lkupClass;
 _iss usqLong nextWakeupUsecs;
@@ -2022,7 +2022,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.591]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.592]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -4720,7 +4720,6 @@
 							GIV(framePointer) = localFP;
 							
 							ceEnterCogCodePopReceiverReg();
-							null;
 							goto l158;
 						}
 						localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
@@ -4735,7 +4734,7 @@
 					/* begin fetchNextBytecode */
 					currentBytecode = byteAtPointer(++localIP);
 
-					null;
+					/* return self */
 				l158:	/* end baseFrameReturn */;
 					goto l155;
 				}
@@ -22550,7 +22549,7 @@
 	}
 	if (((GIV(profileMethod) & 1) == 0)
 	 && (((longAt(GIV(profileMethod))) & MarkBit) != 0)) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if (((GIV(profileSemaphore) & 1) == 0)
 	 && (((longAt(GIV(profileSemaphore))) & MarkBit) != 0)) {

Modified: branches/Cog/src/vm/gcc3x-cointerpmt.c
===================================================================
--- branches/Cog/src/vm/gcc3x-cointerpmt.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/src/vm/gcc3x-cointerpmt.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	CoInterpreterMT VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CoInterpreterMT VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1204,7 +1204,7 @@
 static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
 static sqInt roomToPushNArgs(sqInt n);
 static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static sqInt safeObjectAfter(sqInt oop);
+static usqInt safeObjectAfter(sqInt oop);
 static sqInt safePrintStringOf(sqInt oop);
 usqInt scavengeThresholdAddress(void);
 EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -1377,19 +1377,19 @@
 _iss usqInt fwdTableNext;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt tempOop;
-_iss sqInt profileProcess;
 _iss sqInt profileSemaphore;
 _iss usqInt compStart;
 _iss sqInt extraRootCount;
+_iss sqInt profileProcess;
 _iss sqInt classNameIndex;
 _iss sqInt maxWaitingPriority;
 _iss sqInt weakRootCount;
 _iss sqInt fullGCLock;
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt preemptionYields;
+_iss sqInt profileMethod;
 _iss sqInt vmOwner;
 _iss sqInt lastMethodCacheProbeWrite;
-_iss sqInt profileMethod;
 _iss sqInt growHeadroom;
 _iss sqInt lkupClass;
 _iss usqLong nextWakeupUsecs;
@@ -2120,7 +2120,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.591]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.592]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 sqInt willNotThreadWarnCount;
@@ -5641,6 +5641,7 @@
 						/* begin internalPush: */
 						longAtPointerput((localSP -= BytesPerOop), longAt((rcvr + BaseHeaderSize) + (byte3 << ShiftForWord)));
 					}
+					null;
 					goto l4;
 				}
 				if (opType == 3) {
@@ -5650,6 +5651,7 @@
 					assert(GIV(method) == (iframeMethod(localFP)));
 					object = longAt((GIV(method) + BaseHeaderSize) + ((byte3 + LiteralStart) << ShiftForWord));
 					longAtPointerput((localSP -= BytesPerOop), object);
+					null;
 					goto l4;
 				}
 				if (opType == 4) {
@@ -5663,6 +5665,7 @@
 					object2 = longAt((oop + BaseHeaderSize) + (ValueIndex << ShiftForWord));
 					longAtPointerput((localSP -= BytesPerOop), object2);
 
+					null;
 					goto l4;
 				}
 				top = longAtPointer(localSP);
@@ -19893,17 +19896,15 @@
     sqInt header1;
     sqInt header2;
     sqInt header3;
-    sqInt header4;
     usqInt lastWord;
     sqInt newFreeChunk;
     sqInt newOop;
-    sqInt next;
+    usqInt next;
     sqInt oop;
     sqInt realHeader;
     sqInt sz;
     sqInt sz1;
     sqInt sz2;
-    sqInt sz3;
     sqInt target;
     usqInt w;
 
@@ -19914,21 +19915,7 @@
 		/* begin objectAfterWhileForwarding: */
 		header2 = longAt(oop);
 		if ((header2 & MarkBit) == 0) {
-			/* begin objectAfter: */
-			if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) {
-				error("no objects after the end of memory");
-			}
-			if (((longAt(oop)) & TypeMask) == HeaderTypeFree) {
-				sz2 = (longAt(oop)) & AllButTypeMask;
-			}
-			else {
-				/* begin sizeBitsOf: */
-				header3 = longAt(oop);
-				sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
-					? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask
-					: header3 & SizeMask);
-			}
-			next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]);
+			next = ((sqInt) (objectAfter(oop)));
 			goto l1;
 		}
 		fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1;
@@ -19943,7 +19930,7 @@
 		else {
 			sz1 = realHeader & SizeMask;
 		}
-		next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]);
+		next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask])));
 	l1:	/* end objectAfterWhileForwarding: */;
 		if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
 
@@ -19997,18 +19984,18 @@
 	}
 	/* begin safeObjectAfter: */
 	if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) {
-		sz3 = (longAt(newFreeChunk)) & AllButTypeMask;
+		sz2 = (longAt(newFreeChunk)) & AllButTypeMask;
 	}
 	else {
 		/* begin sizeBitsOf: */
-		header4 = longAt(newFreeChunk);
-		sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass
+		header3 = longAt(newFreeChunk);
+		sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
 			? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask
-			: header4 & SizeMask);
+			: header3 & SizeMask);
 	}
-	next = ((newFreeChunk + sz3) >= GIV(freeStart)
+	next = ((newFreeChunk + sz2) >= GIV(freeStart)
 		? GIV(freeStart)
-		: (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask]));
+		: (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask]));
 	assert((next == GIV(freeStart))
 	 || (next == (oopFromChunk(GIV(compEnd)))));
 	if (next == GIV(freeStart)) {
@@ -23341,7 +23328,7 @@
 	}
 	if (((GIV(profileMethod) & 1) == 0)
 	 && (((longAt(GIV(profileMethod))) & MarkBit) != 0)) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if (((GIV(profileSemaphore) & 1) == 0)
 	 && (((longAt(GIV(profileSemaphore))) & MarkBit) != 0)) {
@@ -46786,7 +46773,7 @@
 	given object or free chunk in memory. Return freeStart when
 	enumeration is complete. This is for assertion checking only. */
 
-static sqInt
+static usqInt
 safeObjectAfter(sqInt oop)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt header;

Modified: branches/Cog/src/vm/interp.h
===================================================================
--- branches/Cog/src/vm/interp.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/src/vm/interp.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/src/vm/vmCallback.h
===================================================================
--- branches/Cog/src/vm/vmCallback.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/src/vm/vmCallback.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/stacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/stacksrc/vm/gcc3x-interp.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/stacksrc/vm/gcc3x-interp.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	StackInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	StackInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1096,17 +1096,17 @@
 _iss sqInt needGCFlag;
 _iss sqInt tempOop;
 _iss sqLong nextProfileTick;
-_iss sqInt profileProcess;
 _iss usqInt compStart;
 _iss sqInt extraRootCount;
 _iss sqInt numPages;
+_iss sqInt profileProcess;
 _iss sqInt classNameIndex;
 _iss sqInt weakRootCount;
 _iss sqInt growHeadroom;
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
+_iss sqInt profileMethod;
 _iss sqInt lastMethodCacheProbeWrite;
-_iss sqInt profileMethod;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
 _iss sqInt profileSemaphore;
@@ -1808,7 +1808,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.591]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.592]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -19744,7 +19744,7 @@
 	}
 	if (((GIV(profileMethod) & 1) == 0)
 	 && (((longAt(GIV(profileMethod))) & MarkBit) != 0)) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if (((GIV(profileSemaphore) & 1) == 0)
 	 && (((longAt(GIV(profileSemaphore))) & MarkBit) != 0)) {

Modified: branches/Cog/stacksrc/vm/interp.c
===================================================================
--- branches/Cog/stacksrc/vm/interp.c	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/stacksrc/vm/interp.c	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
    from
-	StackInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	StackInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1093,17 +1093,17 @@
 _iss sqInt needGCFlag;
 _iss sqInt tempOop;
 _iss sqLong nextProfileTick;
-_iss sqInt profileProcess;
 _iss usqInt compStart;
 _iss sqInt extraRootCount;
 _iss sqInt numPages;
+_iss sqInt profileProcess;
 _iss sqInt classNameIndex;
 _iss sqInt weakRootCount;
 _iss sqInt growHeadroom;
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
+_iss sqInt profileMethod;
 _iss sqInt lastMethodCacheProbeWrite;
-_iss sqInt profileMethod;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
 _iss sqInt profileSemaphore;
@@ -1805,7 +1805,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.591]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.592]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -19735,7 +19735,7 @@
 	}
 	if (((GIV(profileMethod) & 1) == 0)
 	 && (((longAt(GIV(profileMethod))) & MarkBit) != 0)) {
-		GIV(profileMethod) = remapObj(GIV(profileProcess));
+		GIV(profileMethod) = remapObj(GIV(profileMethod));
 	}
 	if (((GIV(profileSemaphore) & 1) == 0)
 	 && (((longAt(GIV(profileSemaphore))) & MarkBit) != 0)) {

Modified: branches/Cog/stacksrc/vm/interp.h
===================================================================
--- branches/Cog/stacksrc/vm/interp.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/stacksrc/vm/interp.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/stacksrc/vm/vmCallback.h
===================================================================
--- branches/Cog/stacksrc/vm/vmCallback.h	2014-01-24 21:07:34 UTC (rev 2851)
+++ branches/Cog/stacksrc/vm/vmCallback.h	2014-01-25 01:04:32 UTC (rev 2852)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.591 uuid: 2f605da3-babd-4f62-a19e-085c28cca416
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.592 uuid: 98758c41-4bb5-4d45-87c9-77e5cf416120
  */
 
 #define VM_CALLBACK_INC 1



More information about the Vm-dev mailing list