[Vm-dev] [commit][2865] CogVM source as per VMMaker.oscog-eem.600

commits at squeakvm.org commits at squeakvm.org
Sat Feb 1 01:04:07 UTC 2014


Revision: 2865
Author:   eliot
Date:     2014-01-31 17:04:05 -0800 (Fri, 31 Jan 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.600

Revert bogus assert change.

Remember to follow the specialObjectsOop during scavenges.

Fix a typo in a selector.

Modified Paths:
--------------
    branches/Cog/nscogsrc/vm/cogit.c
    branches/Cog/nscogsrc/vm/cogit.h
    branches/Cog/nscogsrc/vm/cogmethod.h
    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/nsspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsspurstacksrc/vm/interp.c
    branches/Cog/nsspurstacksrc/vm/interp.h
    branches/Cog/nsspurstacksrc/vm/vmCallback.h
    branches/Cog/spursrc/vm/cogit.c
    branches/Cog/spursrc/vm/cogit.h
    branches/Cog/spursrc/vm/cogmethod.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/cogit.c
    branches/Cog/src/vm/cogit.h
    branches/Cog/src/vm/cogmethod.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/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nscogsrc/vm/cogit.c	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.595 uuid: 918a4400-df96-4b55-bdee-cbf3576f27dd
+	CCodeGenerator VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.595 uuid: 918a4400-df96-4b55-bdee-cbf3576f27dd
+	StackToRegisterMappingCogit VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.595 uuid: 918a4400-df96-4b55-bdee-cbf3576f27dd " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -587,7 +587,7 @@
 static void (*genEnilopmartForandandcalled(sqInt regArg1, sqInt regArg2, sqInt regArg3, char *trampolineName))(void) ;
 static void (*genEnilopmartForandcalled(sqInt regArg1, sqInt regArg2, char *trampolineName))(void) ;
 static void (*genEnilopmartForcalled(sqInt regArg, char *trampolineName))(void) ;
-static sqInt genEnsureObjInRegRegNotForwardedscratchReg(sqInt reg, sqInt scratch);
+static sqInt genEnsureObjInRegNotForwardedscratchReg(sqInt reg, sqInt scratch);
 static void (*genEnterPICEnilopmartNumArgs(sqInt numArgs))(void) ;
 static sqInt genExtendedSendBytecode(void);
 static sqInt genExtendedSuperBytecode(void);
@@ -10836,7 +10836,7 @@
 	nothing to do. Subclasses for memory managers that forward will override. */
 
 static sqInt
-genEnsureObjInRegRegNotForwardedscratchReg(sqInt reg, sqInt scratch)
+genEnsureObjInRegNotForwardedscratchReg(sqInt reg, sqInt scratch)
 {
 	return 0;
 }
@@ -14353,7 +14353,7 @@
 
 	association = getLiteral(literalIndex);
 	annotateobjRef(gMoveCwR(association, TempReg), association);
-	genEnsureObjInRegRegNotForwardedscratchReg(TempReg, freeReg);
+	genEnsureObjInRegNotForwardedscratchReg(TempReg, freeReg);
 	genLoadSlotsourceRegdestReg(ValueIndex, TempReg, freeReg);
 	ssPushRegister(freeReg);
 	return 0;
@@ -15573,7 +15573,7 @@
 	 && (!(shouldAnnotateObjectReference(constVal)))) {
 		ssAllocateRequiredReg(ReceiverResultReg);
 		annotateobjRef(gMoveCwR(association, ReceiverResultReg), association);
-		genEnsureObjInRegRegNotForwardedscratchReg(ReceiverResultReg, TempReg);
+		genEnsureObjInRegNotForwardedscratchReg(ReceiverResultReg, TempReg);
 		ssStorePoptoPreferredReg(popBoolean, TempReg);
 		if (traceStores > 0) {
 			CallRT(ceTraceStoreTrampoline);
@@ -15594,7 +15594,7 @@
 	}
 	ssAllocateCallReg(ReceiverResultReg);
 	annotateobjRef(gMoveCwR(association, ReceiverResultReg), association);
-	genEnsureObjInRegRegNotForwardedscratchReg(ReceiverResultReg, TempReg);
+	genEnsureObjInRegNotForwardedscratchReg(ReceiverResultReg, TempReg);
 	if (traceStores > 0) {
 		/* begin MoveR:R: */
 		genoperandoperand(MoveRR, topReg, TempReg);

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nscogsrc/vm/cogit.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.595 uuid: 918a4400-df96-4b55-bdee-cbf3576f27dd
+	CCodeGenerator VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogmethod.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nscogsrc/vm/cogmethod.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.595 uuid: 918a4400-df96-4b55-bdee-cbf3576f27dd
+	CCodeGenerator VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 typedef struct {

Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nscogsrc/vm/cointerp.c	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
    from
-	CoInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CoInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2030,7 +2030,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.597";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.600";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -5667,6 +5667,7 @@
 						/* begin internalPush: */
 						longAtPointerput((localSP -= BytesPerOop), longAt((rcvr + BaseHeaderSize) + (byte3 << ShiftForWord)));
 					}
+					null;
 					goto l4;
 				}
 				if (opType == 3) {
@@ -5676,6 +5677,7 @@
 					assert(GIV(method) == (iframeMethod(localFP)));
 					object = longAt((GIV(method) + BaseHeaderSize) + ((byte3 + LiteralStart) << ShiftForWord));
 					longAtPointerput((localSP -= BytesPerOop), object);
+					null;
 					goto l4;
 				}
 				if (opType == 4) {
@@ -5689,6 +5691,7 @@
 					object2 = longAt((oop + BaseHeaderSize) + (ValueIndex << ShiftForWord));
 					longAtPointerput((localSP -= BytesPerOop), object2);
 
+					null;
 					goto l4;
 				}
 				top = longAtPointer(localSP);
@@ -53867,7 +53870,7 @@
 	GIV(stackPointer) += BytesPerWord;
 	GIV(instructionPointer) = ((sqInt) top);
 	/* begin assertValidExecutionPointe:r:s: */
-	assertValidExecutionPointersimbarline(GIV(instructionPointer) + 1, GIV(framePointer), GIV(stackPointer), !((((usqInt)(longAt(GIV(framePointer) + FoxMethod)))) < (startOfMemory())), __LINE__);
+	assertValidExecutionPointersimbarline(GIV(instructionPointer), GIV(framePointer), GIV(stackPointer), !((((usqInt)(longAt(GIV(framePointer) + FoxMethod)))) < (startOfMemory())), __LINE__);
 }
 
 sqInt

Modified: branches/Cog/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nscogsrc/vm/cointerp.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 

Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2014-02-01 01:04:05 UTC (rev 2865)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
    from
-	CoInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CoInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2033,7 +2033,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.597";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.600";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -5676,6 +5676,7 @@
 						/* begin internalPush: */
 						longAtPointerput((localSP -= BytesPerOop), longAt((rcvr + BaseHeaderSize) + (byte3 << ShiftForWord)));
 					}
+					null;
 					goto l4;
 				}
 				if (opType == 3) {
@@ -5685,6 +5686,7 @@
 					assert(GIV(method) == (iframeMethod(localFP)));
 					object = longAt((GIV(method) + BaseHeaderSize) + ((byte3 + LiteralStart) << ShiftForWord));
 					longAtPointerput((localSP -= BytesPerOop), object);
+					null;
 					goto l4;
 				}
 				if (opType == 4) {
@@ -5698,6 +5700,7 @@
 					object2 = longAt((oop + BaseHeaderSize) + (ValueIndex << ShiftForWord));
 					longAtPointerput((localSP -= BytesPerOop), object2);
 
+					null;
 					goto l4;
 				}
 				top = longAtPointer(localSP);
@@ -53876,7 +53879,7 @@
 	GIV(stackPointer) += BytesPerWord;
 	GIV(instructionPointer) = ((sqInt) top);
 	/* begin assertValidExecutionPointe:r:s: */
-	assertValidExecutionPointersimbarline(GIV(instructionPointer) + 1, GIV(framePointer), GIV(stackPointer), !((((usqInt)(longAt(GIV(framePointer) + FoxMethod)))) < (startOfMemory())), __LINE__);
+	assertValidExecutionPointersimbarline(GIV(instructionPointer), GIV(framePointer), GIV(stackPointer), !((((usqInt)(longAt(GIV(framePointer) + FoxMethod)))) < (startOfMemory())), __LINE__);
 }
 
 sqInt

Modified: branches/Cog/nscogsrc/vm/interp.h
===================================================================
--- branches/Cog/nscogsrc/vm/interp.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nscogsrc/vm/interp.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/nscogsrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nscogsrc/vm/vmCallback.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nscogsrc/vm/vmCallback.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2014-02-01 01:04:05 UTC (rev 2865)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.598 uuid: b85d7330-2ddc-4d90-8592-4e37234f4ac2
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
    from
-	StackInterpreter VMMaker.oscog-eem.598 uuid: b85d7330-2ddc-4d90-8592-4e37234f4ac2
+	StackInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.598 uuid: b85d7330-2ddc-4d90-8592-4e37234f4ac2 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1969,7 +1969,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.598";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.600";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -53061,6 +53061,10 @@
 		if (firstTime) {
 			mapInterpreterOops();
 			/* begin mapExtraRoots */
+			if ((((longAt(GIV(specialObjectsOop))) & 0x3FFFFF) == 8)
+			 || (isYoungObject(GIV(specialObjectsOop)))) {
+				GIV(specialObjectsOop) = remapObj(GIV(specialObjectsOop));
+			}
 			assert(GIV(remapBufferCount) == 0);
 			for (i = 1; i <= GIV(extraRootCount); i += 1) {
 				oop = (GIV(extraRoots)[i])[0];
@@ -53463,6 +53467,7 @@
     sqInt object6;
     sqInt object7;
     sqInt object8;
+    sqInt object9;
     sqInt rcvr;
     char *sp;
     char *sp1;
@@ -53494,7 +53499,8 @@
 	}
 	/* begin saveCStackStateForCallbackContext: */
 	/* begin push: */
-	longAtput((sp8 = GIV(stackPointer) - BytesPerWord), longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2)));
+	object8 = longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2));
+	longAtput((sp8 = GIV(stackPointer) - BytesPerWord), object8);
 	GIV(stackPointer) = sp8;
 	
 #  if BytesPerWord == 8
@@ -53567,8 +53573,8 @@
 		: 0);
 
 	/* begin push: */
-	object8 = ((1 + (numArgs << 8)) + (0)) + (0);
-	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object8);
+	object9 = ((1 + (numArgs << 8)) + (0)) + (0);
+	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object9);
 	GIV(stackPointer) = sp41;
 	/* begin push: */
 	longAtput((sp51 = GIV(stackPointer) - BytesPerWord), GIV(nilObj));
@@ -53654,6 +53660,7 @@
     sqInt object2;
     sqInt object3;
     sqInt object4;
+    sqInt object5;
     sqInt rcvr;
     char *sp;
     char *sp1;
@@ -53682,23 +53689,24 @@
 		return 0;
 	}
 	/* begin push: */
-	longAtput((sp = GIV(stackPointer) - BytesPerWord), longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2)));
+	object = longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2));
+	longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
 	GIV(stackPointer) = sp;
 	/* begin push: */
-	object = positive32BitIntegerFor(thunkPtr);
-	longAtput((sp1 = GIV(stackPointer) - BytesPerWord), object);
+	object1 = positive32BitIntegerFor(thunkPtr);
+	longAtput((sp1 = GIV(stackPointer) - BytesPerWord), object1);
 	GIV(stackPointer) = sp1;
 	/* begin push: */
-	object1 = positive32BitIntegerFor(stackPtr);
-	longAtput((sp2 = GIV(stackPointer) - BytesPerWord), object1);
+	object2 = positive32BitIntegerFor(stackPtr);
+	longAtput((sp2 = GIV(stackPointer) - BytesPerWord), object2);
 	GIV(stackPointer) = sp2;
 	/* begin push: */
-	object2 = positive32BitIntegerFor(regsPtr);
-	longAtput((sp3 = GIV(stackPointer) - BytesPerWord), object2);
+	object3 = positive32BitIntegerFor(regsPtr);
+	longAtput((sp3 = GIV(stackPointer) - BytesPerWord), object3);
 	GIV(stackPointer) = sp3;
 	/* begin push: */
-	object3 = positive32BitIntegerFor(jmpBufPtr);
-	longAtput((sp4 = GIV(stackPointer) - BytesPerWord), object3);
+	object4 = positive32BitIntegerFor(jmpBufPtr);
+	longAtput((sp4 = GIV(stackPointer) - BytesPerWord), object4);
 	GIV(stackPointer) = sp4;
 	/* begin ifAppropriateCompileToNativeCode:selector: */
 	/* begin justActivateNewMethod */
@@ -53728,8 +53736,8 @@
 		: 0);
 
 	/* begin push: */
-	object4 = ((1 + (numArgs << 8)) + (0)) + (0);
-	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object4);
+	object5 = ((1 + (numArgs << 8)) + (0)) + (0);
+	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object5);
 	GIV(stackPointer) = sp41;
 	/* begin push: */
 	longAtput((sp5 = GIV(stackPointer) - BytesPerWord), GIV(nilObj));
@@ -56452,7 +56460,7 @@
 	GIV(stackPointer) += BytesPerWord;
 	GIV(instructionPointer) = ((sqInt) top);
 	/* begin assertValidExecutionPointe:r:s: */
-	assertValidExecutionPointersimbarline(GIV(instructionPointer) + 1, GIV(framePointer), GIV(stackPointer), !0, __LINE__);
+	assertValidExecutionPointersimbarline(GIV(instructionPointer), GIV(framePointer), GIV(stackPointer), !0, __LINE__);
 }
 
 sqInt

Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nsspurstacksrc/vm/interp.c	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.598 uuid: b85d7330-2ddc-4d90-8592-4e37234f4ac2
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
    from
-	StackInterpreter VMMaker.oscog-eem.598 uuid: b85d7330-2ddc-4d90-8592-4e37234f4ac2
+	StackInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.598 uuid: b85d7330-2ddc-4d90-8592-4e37234f4ac2 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1966,7 +1966,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.598";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.600";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -53052,6 +53052,10 @@
 		if (firstTime) {
 			mapInterpreterOops();
 			/* begin mapExtraRoots */
+			if ((((longAt(GIV(specialObjectsOop))) & 0x3FFFFF) == 8)
+			 || (isYoungObject(GIV(specialObjectsOop)))) {
+				GIV(specialObjectsOop) = remapObj(GIV(specialObjectsOop));
+			}
 			assert(GIV(remapBufferCount) == 0);
 			for (i = 1; i <= GIV(extraRootCount); i += 1) {
 				oop = (GIV(extraRoots)[i])[0];
@@ -53454,6 +53458,7 @@
     sqInt object6;
     sqInt object7;
     sqInt object8;
+    sqInt object9;
     sqInt rcvr;
     char *sp;
     char *sp1;
@@ -53485,7 +53490,8 @@
 	}
 	/* begin saveCStackStateForCallbackContext: */
 	/* begin push: */
-	longAtput((sp8 = GIV(stackPointer) - BytesPerWord), longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2)));
+	object8 = longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2));
+	longAtput((sp8 = GIV(stackPointer) - BytesPerWord), object8);
 	GIV(stackPointer) = sp8;
 	
 #  if BytesPerWord == 8
@@ -53558,8 +53564,8 @@
 		: 0);
 
 	/* begin push: */
-	object8 = ((1 + (numArgs << 8)) + (0)) + (0);
-	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object8);
+	object9 = ((1 + (numArgs << 8)) + (0)) + (0);
+	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object9);
 	GIV(stackPointer) = sp41;
 	/* begin push: */
 	longAtput((sp51 = GIV(stackPointer) - BytesPerWord), GIV(nilObj));
@@ -53645,6 +53651,7 @@
     sqInt object2;
     sqInt object3;
     sqInt object4;
+    sqInt object5;
     sqInt rcvr;
     char *sp;
     char *sp1;
@@ -53673,23 +53680,24 @@
 		return 0;
 	}
 	/* begin push: */
-	longAtput((sp = GIV(stackPointer) - BytesPerWord), longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2)));
+	object = longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2));
+	longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
 	GIV(stackPointer) = sp;
 	/* begin push: */
-	object = positive32BitIntegerFor(thunkPtr);
-	longAtput((sp1 = GIV(stackPointer) - BytesPerWord), object);
+	object1 = positive32BitIntegerFor(thunkPtr);
+	longAtput((sp1 = GIV(stackPointer) - BytesPerWord), object1);
 	GIV(stackPointer) = sp1;
 	/* begin push: */
-	object1 = positive32BitIntegerFor(stackPtr);
-	longAtput((sp2 = GIV(stackPointer) - BytesPerWord), object1);
+	object2 = positive32BitIntegerFor(stackPtr);
+	longAtput((sp2 = GIV(stackPointer) - BytesPerWord), object2);
 	GIV(stackPointer) = sp2;
 	/* begin push: */
-	object2 = positive32BitIntegerFor(regsPtr);
-	longAtput((sp3 = GIV(stackPointer) - BytesPerWord), object2);
+	object3 = positive32BitIntegerFor(regsPtr);
+	longAtput((sp3 = GIV(stackPointer) - BytesPerWord), object3);
 	GIV(stackPointer) = sp3;
 	/* begin push: */
-	object3 = positive32BitIntegerFor(jmpBufPtr);
-	longAtput((sp4 = GIV(stackPointer) - BytesPerWord), object3);
+	object4 = positive32BitIntegerFor(jmpBufPtr);
+	longAtput((sp4 = GIV(stackPointer) - BytesPerWord), object4);
 	GIV(stackPointer) = sp4;
 	/* begin ifAppropriateCompileToNativeCode:selector: */
 	/* begin justActivateNewMethod */
@@ -53719,8 +53727,8 @@
 		: 0);
 
 	/* begin push: */
-	object4 = ((1 + (numArgs << 8)) + (0)) + (0);
-	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object4);
+	object5 = ((1 + (numArgs << 8)) + (0)) + (0);
+	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object5);
 	GIV(stackPointer) = sp41;
 	/* begin push: */
 	longAtput((sp5 = GIV(stackPointer) - BytesPerWord), GIV(nilObj));
@@ -56443,7 +56451,7 @@
 	GIV(stackPointer) += BytesPerWord;
 	GIV(instructionPointer) = ((sqInt) top);
 	/* begin assertValidExecutionPointe:r:s: */
-	assertValidExecutionPointersimbarline(GIV(instructionPointer) + 1, GIV(framePointer), GIV(stackPointer), !0, __LINE__);
+	assertValidExecutionPointersimbarline(GIV(instructionPointer), GIV(framePointer), GIV(stackPointer), !0, __LINE__);
 }
 
 sqInt

Modified: branches/Cog/nsspurstacksrc/vm/interp.h
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nsspurstacksrc/vm/interp.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.598 uuid: b85d7330-2ddc-4d90-8592-4e37234f4ac2
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/nsspurstacksrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nsspurstacksrc/vm/vmCallback.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/nsspurstacksrc/vm/vmCallback.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.598 uuid: b85d7330-2ddc-4d90-8592-4e37234f4ac2
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 #define VM_CALLBACK_INC 1


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Fri Jan 31 10:40:41 PST 2014
   + Fri Jan 31 17:03:23 PST 2014

Modified: branches/Cog/spursrc/vm/cogit.c
===================================================================
--- branches/Cog/spursrc/vm/cogit.c	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/spursrc/vm/cogit.c	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.595 uuid: 918a4400-df96-4b55-bdee-cbf3576f27dd
+	CCodeGenerator VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.595 uuid: 918a4400-df96-4b55-bdee-cbf3576f27dd
+	StackToRegisterMappingCogit VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.595 uuid: 918a4400-df96-4b55-bdee-cbf3576f27dd " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -575,7 +575,7 @@
 static void (*genEnilopmartForandandcalled(sqInt regArg1, sqInt regArg2, sqInt regArg3, char *trampolineName))(void) ;
 static void (*genEnilopmartForandcalled(sqInt regArg1, sqInt regArg2, char *trampolineName))(void) ;
 static void (*genEnilopmartForcalled(sqInt regArg, char *trampolineName))(void) ;
-static sqInt genEnsureObjInRegRegNotForwardedscratchReg(sqInt reg, sqInt scratch);
+static sqInt genEnsureObjInRegNotForwardedscratchReg(sqInt reg, sqInt scratch);
 static void (*genEnterPICEnilopmartNumArgs(sqInt numArgs))(void) ;
 static sqInt genExtendedSendBytecode(void);
 static sqInt genExtendedSuperBytecode(void);
@@ -10442,10 +10442,10 @@
 }
 
 
-/*	Make sure that the obejct in reg is not forwarded. */
+/*	Make sure that the object in reg is not forwarded. */
 
 static sqInt
-genEnsureObjInRegRegNotForwardedscratchReg(sqInt reg, sqInt scratch)
+genEnsureObjInRegNotForwardedscratchReg(sqInt reg, sqInt scratch)
 {
     AbstractInstruction *loop;
     AbstractInstruction *ok;
@@ -11894,7 +11894,7 @@
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, Arg0Reg, TempReg);
 	jumpImmediate = genJumpImmediateInScratchReg(TempReg);
-	genEnsureObjInRegRegNotForwardedscratchReg(Arg0Reg, TempReg);
+	genEnsureObjInRegNotForwardedscratchReg(Arg0Reg, TempReg);
 	jmpTarget(jumpImmediate, gCmpRR(Arg0Reg, ReceiverResultReg));
 	jumpCmp = (orNot
 		? (/* begin JumpZero: */
@@ -14174,7 +14174,7 @@
 
 	association = getLiteral(literalIndex);
 	annotateobjRef(gMoveCwR(association, TempReg), association);
-	genEnsureObjInRegRegNotForwardedscratchReg(TempReg, freeReg);
+	genEnsureObjInRegNotForwardedscratchReg(TempReg, freeReg);
 	genLoadSlotsourceRegdestReg(ValueIndex, TempReg, freeReg);
 	ssPushRegister(freeReg);
 	return 0;
@@ -15391,7 +15391,7 @@
 	 && (!(shouldAnnotateObjectReference(constVal)))) {
 		ssAllocateRequiredReg(ReceiverResultReg);
 		annotateobjRef(gMoveCwR(association, ReceiverResultReg), association);
-		genEnsureObjInRegRegNotForwardedscratchReg(ReceiverResultReg, TempReg);
+		genEnsureObjInRegNotForwardedscratchReg(ReceiverResultReg, TempReg);
 		ssStorePoptoPreferredReg(popBoolean, TempReg);
 		if (traceStores > 0) {
 			CallRT(ceTraceStoreTrampoline);
@@ -15412,7 +15412,7 @@
 	}
 	ssAllocateCallReg(ReceiverResultReg);
 	annotateobjRef(gMoveCwR(association, ReceiverResultReg), association);
-	genEnsureObjInRegRegNotForwardedscratchReg(ReceiverResultReg, TempReg);
+	genEnsureObjInRegNotForwardedscratchReg(ReceiverResultReg, TempReg);
 	if (traceStores > 0) {
 		/* begin MoveR:R: */
 		genoperandoperand(MoveRR, topReg, TempReg);

Modified: branches/Cog/spursrc/vm/cogit.h
===================================================================
--- branches/Cog/spursrc/vm/cogit.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/spursrc/vm/cogit.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.595 uuid: 918a4400-df96-4b55-bdee-cbf3576f27dd
+	CCodeGenerator VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 

Modified: branches/Cog/spursrc/vm/cogmethod.h
===================================================================
--- branches/Cog/spursrc/vm/cogmethod.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/spursrc/vm/cogmethod.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.595 uuid: 918a4400-df96-4b55-bdee-cbf3576f27dd
+	CCodeGenerator VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 typedef struct {

Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/spursrc/vm/cointerp.c	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
    from
-	CoInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CoInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2169,7 +2169,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 usqInt heapBase;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.597]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.600]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -6383,6 +6383,7 @@
 						/* begin internalPush: */
 						longAtPointerput((localSP -= BytesPerOop), longAt((rcvr1 + (BaseHeaderSize)) + (byte3 << 2)));
 					}
+					null;
 					goto l4;
 				}
 				if (opType == 3) {
@@ -6392,6 +6393,7 @@
 					assert(GIV(method) == (iframeMethod(localFP)));
 					object = longAt((GIV(method) + (BaseHeaderSize)) + ((byte3 + LiteralStart) << 2));
 					longAtPointerput((localSP -= BytesPerOop), object);
+					null;
 					goto l4;
 				}
 				if (opType == 4) {
@@ -6419,6 +6421,7 @@
 					/* begin internalPush: */
 					longAtPointerput((localSP -= BytesPerOop), longAt((litVar1 + (BaseHeaderSize)) + (ValueIndex << 2)));
 
+					null;
 					goto l4;
 				}
 				top = longAtPointer(localSP);
@@ -54451,6 +54454,10 @@
 		if (firstTime) {
 			mapInterpreterOops();
 			/* begin mapExtraRoots */
+			if ((((longAt(GIV(specialObjectsOop))) & 0x3FFFFF) == 8)
+			 || (isReallyYoungObject(GIV(specialObjectsOop)))) {
+				GIV(specialObjectsOop) = remapObj(GIV(specialObjectsOop));
+			}
 			assert(GIV(remapBufferCount) == 0);
 			for (i = 1; i <= GIV(extraRootCount); i += 1) {
 				oop = (GIV(extraRoots)[i])[0];
@@ -54881,6 +54888,7 @@
     sqInt object6;
     sqInt object7;
     sqInt object8;
+    sqInt object9;
     sqInt rcvr;
     char *sp;
     char *sp1;
@@ -54924,7 +54932,8 @@
 	(vmCallbackContext->savedCFramePointer = getCFramePointer());
 	memcpy(((void *)((vmCallbackContext->savedReenterInterpreter))), reenterInterpreter, sizeof(jmp_buf));
 	/* begin push: */
-	longAtput((sp8 = GIV(stackPointer) - BytesPerWord), longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2)));
+	object8 = longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2));
+	longAtput((sp8 = GIV(stackPointer) - BytesPerWord), object8);
 	GIV(stackPointer) = sp8;
 	
 #  if BytesPerWord == 8
@@ -55037,8 +55046,8 @@
 		longAtput((sp31 = GIV(stackPointer) - BytesPerWord), GIV(nilObj));
 		GIV(stackPointer) = sp31;
 		/* begin push: */
-		object8 = ((1 + (numArgs << 8)) + (0)) + (0);
-		longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object8);
+		object9 = ((1 + (numArgs << 8)) + (0)) + (0);
+		longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object9);
 		GIV(stackPointer) = sp41;
 		/* begin push: */
 		longAtput((sp51 = GIV(stackPointer) - BytesPerWord), 0);
@@ -55130,6 +55139,7 @@
     sqInt object2;
     sqInt object3;
     sqInt object4;
+    sqInt object5;
     sqInt rcvr;
     char *sp;
     char *sp1;
@@ -55167,23 +55177,24 @@
 		return 0;
 	}
 	/* begin push: */
-	longAtput((sp = GIV(stackPointer) - BytesPerWord), longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2)));
+	object = longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2));
+	longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
 	GIV(stackPointer) = sp;
 	/* begin push: */
-	object = positive32BitIntegerFor(thunkPtr);
-	longAtput((sp1 = GIV(stackPointer) - BytesPerWord), object);
+	object1 = positive32BitIntegerFor(thunkPtr);
+	longAtput((sp1 = GIV(stackPointer) - BytesPerWord), object1);
 	GIV(stackPointer) = sp1;
 	/* begin push: */
-	object1 = positive32BitIntegerFor(stackPtr);
-	longAtput((sp2 = GIV(stackPointer) - BytesPerWord), object1);
+	object2 = positive32BitIntegerFor(stackPtr);
+	longAtput((sp2 = GIV(stackPointer) - BytesPerWord), object2);
 	GIV(stackPointer) = sp2;
 	/* begin push: */
-	object2 = positive32BitIntegerFor(regsPtr);
-	longAtput((sp3 = GIV(stackPointer) - BytesPerWord), object2);
+	object3 = positive32BitIntegerFor(regsPtr);
+	longAtput((sp3 = GIV(stackPointer) - BytesPerWord), object3);
 	GIV(stackPointer) = sp3;
 	/* begin push: */
-	object3 = positive32BitIntegerFor(jmpBufPtr);
-	longAtput((sp4 = GIV(stackPointer) - BytesPerWord), object3);
+	object4 = positive32BitIntegerFor(jmpBufPtr);
+	longAtput((sp4 = GIV(stackPointer) - BytesPerWord), object4);
 	GIV(stackPointer) = sp4;
 	/* begin ifAppropriateCompileToNativeCode:selector: */
 	methodHeader = longAt((GIV(newMethod) + (BaseHeaderSize)) + (HeaderIndex << 2));
@@ -55253,8 +55264,8 @@
 		longAtput((sp31 = GIV(stackPointer) - BytesPerWord), GIV(nilObj));
 		GIV(stackPointer) = sp31;
 		/* begin push: */
-		object4 = ((1 + (numArgs << 8)) + (0)) + (0);
-		longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object4);
+		object5 = ((1 + (numArgs << 8)) + (0)) + (0);
+		longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object5);
 		GIV(stackPointer) = sp41;
 		/* begin push: */
 		longAtput((sp5 = GIV(stackPointer) - BytesPerWord), 0);
@@ -58106,9 +58117,9 @@
 transferTofrom(sqInt newProc, sqInt sourceCode)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt activeContext;
+    sqInt aProcess;
     sqInt index;
     StackPage *lastUsedPage;
-    usqInt lip;
     StackPage *lruOrFree;
     sqInt newContext;
     StackPage *newPage;
@@ -58122,10 +58133,11 @@
     sqInt value;
 
 	/* begin recordContextSwitchFrom:in: */
+	aProcess = longAt(((longAt(((longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (SchedulerAssociation << 2))) + (BaseHeaderSize)) + (ValueIndex << 2))) + (BaseHeaderSize)) + (ActiveProcessIndex << 2));
 	if (recordEventTrace()) {
 		/* begin recordTrace:thing:source: */
 		GIV(traceLog)[GIV(traceLogIndex)] = TraceContextSwitch;
-		GIV(traceLog)[GIV(traceLogIndex) + 1] = (longAt(((longAt(((longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (SchedulerAssociation << 2))) + (BaseHeaderSize)) + (ValueIndex << 2))) + (BaseHeaderSize)) + (ActiveProcessIndex << 2)));
+		GIV(traceLog)[GIV(traceLogIndex) + 1] = aProcess;
 		GIV(traceLog)[GIV(traceLogIndex) + 2] = sourceCode;
 		GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 	}
@@ -58282,8 +58294,7 @@
 	GIV(stackPointer) += BytesPerWord;
 	GIV(instructionPointer) = ((sqInt) top);
 	/* begin assertValidExecutionPointe:r:s: */
-	lip = GIV(instructionPointer) + 1;
-	assertValidExecutionPointersimbarline(lip, GIV(framePointer), GIV(stackPointer), !((((usqInt)(longAt(GIV(framePointer) + FoxMethod)))) < (startOfMemory())), __LINE__);
+	assertValidExecutionPointersimbarline(GIV(instructionPointer), GIV(framePointer), GIV(stackPointer), !((((usqInt)(longAt(GIV(framePointer) + FoxMethod)))) < (startOfMemory())), __LINE__);
 }
 
 sqInt

Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/spursrc/vm/cointerp.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 

Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c	2014-02-01 01:04:05 UTC (rev 2865)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
    from
-	CoInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CoInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2172,7 +2172,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 usqInt heapBase;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.597]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.600]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -6392,6 +6392,7 @@
 						/* begin internalPush: */
 						longAtPointerput((localSP -= BytesPerOop), longAt((rcvr1 + (BaseHeaderSize)) + (byte3 << 2)));
 					}
+					null;
 					goto l4;
 				}
 				if (opType == 3) {
@@ -6401,6 +6402,7 @@
 					assert(GIV(method) == (iframeMethod(localFP)));
 					object = longAt((GIV(method) + (BaseHeaderSize)) + ((byte3 + LiteralStart) << 2));
 					longAtPointerput((localSP -= BytesPerOop), object);
+					null;
 					goto l4;
 				}
 				if (opType == 4) {
@@ -6428,6 +6430,7 @@
 					/* begin internalPush: */
 					longAtPointerput((localSP -= BytesPerOop), longAt((litVar1 + (BaseHeaderSize)) + (ValueIndex << 2)));
 
+					null;
 					goto l4;
 				}
 				top = longAtPointer(localSP);
@@ -54460,6 +54463,10 @@
 		if (firstTime) {
 			mapInterpreterOops();
 			/* begin mapExtraRoots */
+			if ((((longAt(GIV(specialObjectsOop))) & 0x3FFFFF) == 8)
+			 || (isReallyYoungObject(GIV(specialObjectsOop)))) {
+				GIV(specialObjectsOop) = remapObj(GIV(specialObjectsOop));
+			}
 			assert(GIV(remapBufferCount) == 0);
 			for (i = 1; i <= GIV(extraRootCount); i += 1) {
 				oop = (GIV(extraRoots)[i])[0];
@@ -54890,6 +54897,7 @@
     sqInt object6;
     sqInt object7;
     sqInt object8;
+    sqInt object9;
     sqInt rcvr;
     char *sp;
     char *sp1;
@@ -54933,7 +54941,8 @@
 	(vmCallbackContext->savedCFramePointer = getCFramePointer());
 	memcpy(((void *)((vmCallbackContext->savedReenterInterpreter))), reenterInterpreter, sizeof(jmp_buf));
 	/* begin push: */
-	longAtput((sp8 = GIV(stackPointer) - BytesPerWord), longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2)));
+	object8 = longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2));
+	longAtput((sp8 = GIV(stackPointer) - BytesPerWord), object8);
 	GIV(stackPointer) = sp8;
 	
 #  if BytesPerWord == 8
@@ -55046,8 +55055,8 @@
 		longAtput((sp31 = GIV(stackPointer) - BytesPerWord), GIV(nilObj));
 		GIV(stackPointer) = sp31;
 		/* begin push: */
-		object8 = ((1 + (numArgs << 8)) + (0)) + (0);
-		longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object8);
+		object9 = ((1 + (numArgs << 8)) + (0)) + (0);
+		longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object9);
 		GIV(stackPointer) = sp41;
 		/* begin push: */
 		longAtput((sp51 = GIV(stackPointer) - BytesPerWord), 0);
@@ -55139,6 +55148,7 @@
     sqInt object2;
     sqInt object3;
     sqInt object4;
+    sqInt object5;
     sqInt rcvr;
     char *sp;
     char *sp1;
@@ -55176,23 +55186,24 @@
 		return 0;
 	}
 	/* begin push: */
-	longAtput((sp = GIV(stackPointer) - BytesPerWord), longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2)));
+	object = longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2));
+	longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
 	GIV(stackPointer) = sp;
 	/* begin push: */
-	object = positive32BitIntegerFor(thunkPtr);
-	longAtput((sp1 = GIV(stackPointer) - BytesPerWord), object);
+	object1 = positive32BitIntegerFor(thunkPtr);
+	longAtput((sp1 = GIV(stackPointer) - BytesPerWord), object1);
 	GIV(stackPointer) = sp1;
 	/* begin push: */
-	object1 = positive32BitIntegerFor(stackPtr);
-	longAtput((sp2 = GIV(stackPointer) - BytesPerWord), object1);
+	object2 = positive32BitIntegerFor(stackPtr);
+	longAtput((sp2 = GIV(stackPointer) - BytesPerWord), object2);
 	GIV(stackPointer) = sp2;
 	/* begin push: */
-	object2 = positive32BitIntegerFor(regsPtr);
-	longAtput((sp3 = GIV(stackPointer) - BytesPerWord), object2);
+	object3 = positive32BitIntegerFor(regsPtr);
+	longAtput((sp3 = GIV(stackPointer) - BytesPerWord), object3);
 	GIV(stackPointer) = sp3;
 	/* begin push: */
-	object3 = positive32BitIntegerFor(jmpBufPtr);
-	longAtput((sp4 = GIV(stackPointer) - BytesPerWord), object3);
+	object4 = positive32BitIntegerFor(jmpBufPtr);
+	longAtput((sp4 = GIV(stackPointer) - BytesPerWord), object4);
 	GIV(stackPointer) = sp4;
 	/* begin ifAppropriateCompileToNativeCode:selector: */
 	methodHeader = longAt((GIV(newMethod) + (BaseHeaderSize)) + (HeaderIndex << 2));
@@ -55262,8 +55273,8 @@
 		longAtput((sp31 = GIV(stackPointer) - BytesPerWord), GIV(nilObj));
 		GIV(stackPointer) = sp31;
 		/* begin push: */
-		object4 = ((1 + (numArgs << 8)) + (0)) + (0);
-		longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object4);
+		object5 = ((1 + (numArgs << 8)) + (0)) + (0);
+		longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object5);
 		GIV(stackPointer) = sp41;
 		/* begin push: */
 		longAtput((sp5 = GIV(stackPointer) - BytesPerWord), 0);
@@ -58115,9 +58126,9 @@
 transferTofrom(sqInt newProc, sqInt sourceCode)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt activeContext;
+    sqInt aProcess;
     sqInt index;
     StackPage *lastUsedPage;
-    usqInt lip;
     StackPage *lruOrFree;
     sqInt newContext;
     StackPage *newPage;
@@ -58131,10 +58142,11 @@
     sqInt value;
 
 	/* begin recordContextSwitchFrom:in: */
+	aProcess = longAt(((longAt(((longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (SchedulerAssociation << 2))) + (BaseHeaderSize)) + (ValueIndex << 2))) + (BaseHeaderSize)) + (ActiveProcessIndex << 2));
 	if (recordEventTrace()) {
 		/* begin recordTrace:thing:source: */
 		GIV(traceLog)[GIV(traceLogIndex)] = TraceContextSwitch;
-		GIV(traceLog)[GIV(traceLogIndex) + 1] = (longAt(((longAt(((longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (SchedulerAssociation << 2))) + (BaseHeaderSize)) + (ValueIndex << 2))) + (BaseHeaderSize)) + (ActiveProcessIndex << 2)));
+		GIV(traceLog)[GIV(traceLogIndex) + 1] = aProcess;
 		GIV(traceLog)[GIV(traceLogIndex) + 2] = sourceCode;
 		GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 	}
@@ -58291,8 +58303,7 @@
 	GIV(stackPointer) += BytesPerWord;
 	GIV(instructionPointer) = ((sqInt) top);
 	/* begin assertValidExecutionPointe:r:s: */
-	lip = GIV(instructionPointer) + 1;
-	assertValidExecutionPointersimbarline(lip, GIV(framePointer), GIV(stackPointer), !((((usqInt)(longAt(GIV(framePointer) + FoxMethod)))) < (startOfMemory())), __LINE__);
+	assertValidExecutionPointersimbarline(GIV(instructionPointer), GIV(framePointer), GIV(stackPointer), !((((usqInt)(longAt(GIV(framePointer) + FoxMethod)))) < (startOfMemory())), __LINE__);
 }
 
 sqInt

Modified: branches/Cog/spursrc/vm/interp.h
===================================================================
--- branches/Cog/spursrc/vm/interp.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/spursrc/vm/interp.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/spursrc/vm/vmCallback.h
===================================================================
--- branches/Cog/spursrc/vm/vmCallback.h	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/spursrc/vm/vmCallback.h	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/gcc3x-interp.c	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c	2014-02-01 01:04:05 UTC (rev 2865)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
    from
-	StackInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	StackInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1962,7 +1962,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.597]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.600]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -48079,6 +48079,10 @@
 		if (firstTime) {
 			mapInterpreterOops();
 			/* begin mapExtraRoots */
+			if ((((longAt(GIV(specialObjectsOop))) & 0x3FFFFF) == 8)
+			 || (isYoungObject(GIV(specialObjectsOop)))) {
+				GIV(specialObjectsOop) = remapObj(GIV(specialObjectsOop));
+			}
 			assert(GIV(remapBufferCount) == 0);
 			for (i = 1; i <= GIV(extraRootCount); i += 1) {
 				oop = (GIV(extraRoots)[i])[0];
@@ -48481,6 +48485,7 @@
     sqInt object6;
     sqInt object7;
     sqInt object8;
+    sqInt object9;
     sqInt rcvr;
     char *sp;
     char *sp1;
@@ -48512,7 +48517,8 @@
 	}
 	/* begin saveCStackStateForCallbackContext: */
 	/* begin push: */
-	longAtput((sp8 = GIV(stackPointer) - BytesPerWord), longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2)));
+	object8 = longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2));
+	longAtput((sp8 = GIV(stackPointer) - BytesPerWord), object8);
 	GIV(stackPointer) = sp8;
 	
 #  if BytesPerWord == 8
@@ -48582,8 +48588,8 @@
 	assert((headerOf(GIV(method))) == methodHeader);
 	
 	/* begin push: */
-	object8 = ((1 + (numArgs << 8)) + (0)) + (0);
-	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object8);
+	object9 = ((1 + (numArgs << 8)) + (0)) + (0);
+	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object9);
 	GIV(stackPointer) = sp41;
 	/* begin push: */
 	longAtput((sp51 = GIV(stackPointer) - BytesPerWord), GIV(nilObj));
@@ -48661,6 +48667,7 @@
     sqInt object2;
     sqInt object3;
     sqInt object4;
+    sqInt object5;
     sqInt rcvr;
     char *sp;
     char *sp1;
@@ -48689,23 +48696,24 @@
 		return 0;
 	}
 	/* begin push: */
-	longAtput((sp = GIV(stackPointer) - BytesPerWord), longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2)));
+	object = longAt((GIV(specialObjectsOop) + (BaseHeaderSize)) + (ClassAlien << 2));
+	longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
 	GIV(stackPointer) = sp;
 	/* begin push: */
-	object = positive32BitIntegerFor(thunkPtr);
-	longAtput((sp1 = GIV(stackPointer) - BytesPerWord), object);
+	object1 = positive32BitIntegerFor(thunkPtr);
+	longAtput((sp1 = GIV(stackPointer) - BytesPerWord), object1);
 	GIV(stackPointer) = sp1;
 	/* begin push: */
-	object1 = positive32BitIntegerFor(stackPtr);
-	longAtput((sp2 = GIV(stackPointer) - BytesPerWord), object1);
+	object2 = positive32BitIntegerFor(stackPtr);
+	longAtput((sp2 = GIV(stackPointer) - BytesPerWord), object2);
 	GIV(stackPointer) = sp2;
 	/* begin push: */
-	object2 = positive32BitIntegerFor(regsPtr);
-	longAtput((sp3 = GIV(stackPointer) - BytesPerWord), object2);
+	object3 = positive32BitIntegerFor(regsPtr);
+	longAtput((sp3 = GIV(stackPointer) - BytesPerWord), object3);
 	GIV(stackPointer) = sp3;
 	/* begin push: */
-	object3 = positive32BitIntegerFor(jmpBufPtr);
-	longAtput((sp4 = GIV(stackPointer) - BytesPerWord), object3);
+	object4 = positive32BitIntegerFor(jmpBufPtr);
+	longAtput((sp4 = GIV(stackPointer) - BytesPerWord), object4);
 	GIV(stackPointer) = sp4;
 	/* begin ifAppropriateCompileToNativeCode:selector: */
 	/* begin justActivateNewMethod */
@@ -48732,8 +48740,8 @@
 	assert((headerOf(GIV(method))) == methodHeader);
 	
 	/* begin push: */
-	object4 = ((1 + (numArgs << 8)) + (0)) + (0);
-	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object4);
+	object5 = ((1 + (numArgs << 8)) + (0)) + (0);
+	longAtput((sp41 = GIV(stackPointer) - BytesPerWord), object5);
 	GIV(stackPointer) = sp41;
 	/* begin push: */
 	longAtput((sp5 = GIV(stackPointer) - BytesPerWord), GIV(nilObj));
@@ -51426,7 +51434,7 @@
 	GIV(stackPointer) += BytesPerWord;
 	GIV(instructionPointer) = ((sqInt) top);
 	/* begin assertValidExecutionPointe:r:s: */
-	assertValidExecutionPointersimbarline(GIV(instructionPointer) + 1, GIV(framePointer), GIV(stackPointer), !0, __LINE__);
+	assertValidExecutionPointersimbarline(GIV(instructionPointer), GIV(framePointer), GIV(stackPointer), !0, __LINE__);
 }
 
 sqInt

Modified: branches/Cog/spurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.c	2014-01-31 18:41:22 UTC (rev 2864)
+++ branches/Cog/spurstacksrc/vm/interp.c	2014-02-01 01:04:05 UTC (rev 2865)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
    from
-	StackInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220
+	StackInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.597 uuid: c9a71dd4-c394-4a8f-aa4d-a6d4dc3ff220 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.600 uuid: 48f5953c-233c-4026-96a0-ffef9cea1c72 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1959,7 +1959,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.597]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.600]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -48070,6 +48070,10 @@
 		if (firstTime) {
 			mapInterpreterOops();
 			/* begin mapExtraRoots */
+			if ((((longAt(GIV(specialObjectsOop))) & 0x3FFFFF) == 8)
+			 || (isYoungObject(GIV(specialObjectsOop)))) {
+				GIV(specialObjectsOop) = remapObj(GIV(specialObjectsOop));
+			}
 			assert(GIV(remapBufferCount) == 0);
 			for (i = 1; i <= GIV(extraRootCount); i += 1) {

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list