[Vm-dev] [commit][3109] CogVm source as per VMMaker.oscog-eem.911

commits at squeakvm.org commits at squeakvm.org
Fri Oct 24 18:53:47 UTC 2014


Revision: 3109
Author:   eliot
Date:     2014-10-24 11:53:45 -0700 (Fri, 24 Oct 2014)
Log Message:
-----------
CogVm source as per VMMaker.oscog-eem.911

Avoid cogging methods containing unknown bytecodes early in scanMethod.  Use a
hack to avoid a test on the common path.

Fix the return type of implicitReceiverCacheAddressAt:.

Both of these together fix assert fails due to cogging mehtods containing
unknown bytecodes.

Modified Paths:
--------------
    branches/Cog/nscogsrc/vm/cogit.c
    branches/Cog/nscogsrc/vm/cogit.h
    branches/Cog/nscogsrc/vm/cointerp.c
    branches/Cog/nscogsrc/vm/cointerp.h
    branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
    branches/Cog/nsspursrc/vm/cogit.c
    branches/Cog/nsspursrc/vm/cogit.h
    branches/Cog/nsspursrc/vm/cointerp.c
    branches/Cog/nsspursrc/vm/cointerp.h
    branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
    branches/Cog/sistasrc/vm/cogit.c
    branches/Cog/sistasrc/vm/cogit.h
    branches/Cog/sistasrc/vm/cointerp.c
    branches/Cog/sistasrc/vm/cointerp.h
    branches/Cog/sistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursistasrc/vm/cogit.c
    branches/Cog/spursistasrc/vm/cogit.h
    branches/Cog/spursistasrc/vm/cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.h
    branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursrc/vm/cogit.c
    branches/Cog/spursrc/vm/cogit.h
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/src/vm/cogit.c
    branches/Cog/src/vm/cogit.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

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

Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/nscogsrc/vm/cogit.c	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	StackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -1726,8 +1726,8 @@
 	{ duplicateTopBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genPopStackBytecode, 0, needsFrameNever, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genExtNopBytecode, 0, needsFrameNever, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ extABytecode, 0, needsFrameNever, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ extBBytecode, 0, needsFrameNever, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genExtPushReceiverVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -1749,17 +1749,17 @@
 	{ genExtUnconditionalJump, v4LongBranchDistance, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0 },
 	{ genExtJumpIfTrue, v4LongBranchDistance, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0 },
 	{ genExtJumpIfFalse, v4LongBranchDistance, 0, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ callPrimitiveBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genPushRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreAndPopRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genExtPushClosureBytecode, v4BlockCodeSize, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }
+	{ unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 }
 };
 static sqInt guardPageSize;
 static sqInt hasYoungReferent;
@@ -12553,7 +12553,7 @@
 {
     sqInt *address;
     sqInt *address1;
-    sqInt cacheAddress;
+    usqInt cacheAddress;
     sqInt cacheTag;
     sqInt cacheTag1;
     sqInt cacheTagMarked;
@@ -12723,7 +12723,7 @@
 static sqInt
 markYoungObjectspcmethod(sqInt annotation, char *mcpc, sqInt cogMethod)
 {
-    sqInt cacheAddress;
+    usqInt cacheAddress;
     sqInt cacheTag;
     sqInt cacheTag1;
     sqInt class;
@@ -13814,7 +13814,7 @@
 static sqInt
 remapIfObjectRefpchasYoung(sqInt annotation, char *mcpc, sqInt hasYoungPtr)
 {
-    sqInt cacheAddress;
+    usqInt cacheAddress;
     sqInt cacheTag;
     sqInt cacheTag1;
     sqInt entryPoint;
@@ -14583,7 +14583,7 @@
 static void
 voidImplicitReceiverCacheAt(sqInt mcpc)
 {
-    sqInt cacheAddress;
+    usqInt cacheAddress;
 
 	assert(NumOopsPerIRC == 2);
 	cacheAddress = (((usqInt)mcpc)) + (jumpShortByteSize(backEnd));
@@ -22355,6 +22355,12 @@
 		byte0 = (fetchByteofObject(pc, methodObj)) + bytecodeSetOffset;
 		descriptor = generatorAt(byte0);
 		if ((descriptor->isExtension)) {
+			if (((descriptor->opcode)) == Nop) {
+
+				/* unknown bytecode tag; see Cogit class>>#generatorTableFrom: */
+
+				return EncounteredUnknownBytecode;
+			}
 			loadSubsequentBytesForDescriptorat(descriptor, pc);
 			((descriptor->generator))();
 		}

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/nscogsrc/vm/cogit.h	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/nscogsrc/vm/cointerp.c	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
    from
-	CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -852,7 +852,7 @@
 void printWronglySizedContexts(sqInt printContexts);
 static void restoreHeadersFromtofromandtofrom(sqInt firstIn, sqInt lastIn, sqInt hdrBaseIn, sqInt firstOut, sqInt lastOut, sqInt hdrBaseOut) NoDbgRegParms;
 static void runLeakCheckerForFullGC(sqInt fullGCFlag) NoDbgRegParms;
-static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
+static usqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
 static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms;
 static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms;
 static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms;
@@ -1366,9 +1366,9 @@
 _iss sqInt growHeadroom;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt preemptionYields;
-_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt statMarkCount;
+_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt gcMode;
 _iss sqInt highestRunnableProcessPriority;
 _iss sqInt lastCoggableInterpretedBlockMethod;
@@ -2085,7 +2085,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.909";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.911";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -14412,10 +14412,6 @@
 			}
 		}
 	}
-	else {
-		assert(GIV(cogCompiledCodeCompactionCalledFor)
-		 || (!(methodShouldBeCogged(aMethodObj))));
-	}
 	GIV(messageSelector) = (pic->selector);
 	GIV(newMethod) = aMethodObj;
 	/* begin primitiveIndexOfMethod:header: */
@@ -36761,17 +36757,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;
 
@@ -36782,21 +36776,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;
@@ -36811,7 +36791,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)) {
 
@@ -36865,18 +36845,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 = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart)
+	next = ((((usqInt)(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)) {
@@ -38751,7 +38731,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/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/nscogsrc/vm/cointerp.h	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
 
 

Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2014-10-24 18:53:45 UTC (rev 3109)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
    from
-	CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -855,7 +855,7 @@
 void printWronglySizedContexts(sqInt printContexts);
 static void restoreHeadersFromtofromandtofrom(sqInt firstIn, sqInt lastIn, sqInt hdrBaseIn, sqInt firstOut, sqInt lastOut, sqInt hdrBaseOut) NoDbgRegParms;
 static void runLeakCheckerForFullGC(sqInt fullGCFlag) NoDbgRegParms;
-static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
+static usqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
 static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms;
 static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms;
 static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms;
@@ -1369,9 +1369,9 @@
 _iss sqInt growHeadroom;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt preemptionYields;
-_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt statMarkCount;
+_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt gcMode;
 _iss sqInt highestRunnableProcessPriority;
 _iss sqInt lastCoggableInterpretedBlockMethod;
@@ -2088,7 +2088,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.909";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.911";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -14421,10 +14421,6 @@
 			}
 		}
 	}
-	else {
-		assert(GIV(cogCompiledCodeCompactionCalledFor)
-		 || (!(methodShouldBeCogged(aMethodObj))));
-	}
 	GIV(messageSelector) = (pic->selector);
 	GIV(newMethod) = aMethodObj;
 	/* begin primitiveIndexOfMethod:header: */
@@ -36770,17 +36766,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;
 
@@ -36791,21 +36785,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;
@@ -36820,7 +36800,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)) {
 
@@ -36874,18 +36854,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 = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart)
+	next = ((((usqInt)(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)) {
@@ -38760,7 +38740,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/nsspursrc/vm/cogit.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.c	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/nsspursrc/vm/cogit.c	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	StackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -1744,8 +1744,8 @@
 	{ duplicateTopBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genPopStackBytecode, 0, needsFrameNever, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genExtNopBytecode, 0, needsFrameNever, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ extABytecode, 0, needsFrameNever, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ extBBytecode, 0, needsFrameNever, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genExtPushReceiverVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -1767,17 +1767,17 @@
 	{ genExtUnconditionalJump, v4LongBranchDistance, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0 },
 	{ genExtJumpIfTrue, v4LongBranchDistance, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0 },
 	{ genExtJumpIfFalse, v4LongBranchDistance, 0, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ callPrimitiveBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genPushRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreAndPopRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genExtPushClosureBytecode, v4BlockCodeSize, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }
+	{ unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 }
 };
 static sqInt guardPageSize;
 static sqInt hasYoungReferent;
@@ -12625,7 +12625,7 @@
 		}
 		if (entryPoint1 == ceImplicitReceiverTrampoline) {
 			assert(NumOopsPerIRC == 2);
-			cacheAddress = implicitReceiveCacheAt(backEnd, mcpc);
+			cacheAddress = ((usqInt)(implicitReceiveCacheAt(backEnd, mcpc)));
 			if (((class = unalignedLongAt(backEnd, cacheAddress))) != 0) {
 				if (((mixin = unalignedLongAt(backEnd, cacheAddress + BytesPerOop))) != 0) {
 					markAndTraceLiteralinat(mixin, ((CogMethod *) cogMethod), (cacheAddress + BytesPerOop));
@@ -13801,7 +13801,7 @@
 			/* Examine an implicit receiver cache. */
 
 			assert(NumOopsPerIRC == 2);
-			cacheAddress = implicitReceiveCacheAt(backEnd, mcpc);
+			cacheAddress = ((usqInt)(implicitReceiveCacheAt(backEnd, mcpc)));
 			if (((oop = unalignedLongAt(backEnd, cacheAddress))) != 0) {
 
 				/* First look at the classTag entry.  This is an inline cache tag and so might not be an object. */
@@ -14066,7 +14066,7 @@
 		else {
 			if (entryPoint == ceImplicitReceiverTrampoline) {
 				assert(NumOopsPerIRC == 2);
-				cacheAddress = implicitReceiveCacheAt(backEnd, mcpc);
+				cacheAddress = ((usqInt)(implicitReceiveCacheAt(backEnd, mcpc)));
 				if ((isForwardedClassIndex(unalignedLongAt(backEnd, cacheAddress)))
 				 || (isForwardedClassIndex(unalignedLongAt(backEnd, cacheAddress + BytesPerOop)))) {
 					voidImplicitReceiverCacheAt(mcpc);
@@ -14614,7 +14614,7 @@
     usqInt cacheAddress;
 
 	assert(NumOopsPerIRC == 2);
-	cacheAddress = implicitReceiveCacheAt(backEnd, mcpc);
+	cacheAddress = ((usqInt)(implicitReceiveCacheAt(backEnd, mcpc)));
 	unalignedLongAtput(backEnd, cacheAddress, 0);
 	unalignedLongAtput(backEnd, cacheAddress + BytesPerOop, 0);
 	
@@ -24183,6 +24183,12 @@
 		byte0 = (fetchByteofObject(pc, methodObj)) + bytecodeSetOffset;
 		descriptor = generatorAt(byte0);
 		if ((descriptor->isExtension)) {
+			if (((descriptor->opcode)) == Nop) {
+
+				/* unknown bytecode tag; see Cogit class>>#generatorTableFrom: */
+
+				return EncounteredUnknownBytecode;
+			}
 			loadSubsequentBytesForDescriptorat(descriptor, pc);
 			((descriptor->generator))();
 		}

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/nsspursrc/vm/cogit.h	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/nsspursrc/vm/cointerp.c	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
    from
-	CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1582,10 +1582,10 @@
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt metaclassNumSlots;
 _iss sqInt preemptionYields;
-_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt lkupClass;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt numSegInfos;
+_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt highestRunnableProcessPriority;
 _iss sqInt lastCoggableInterpretedBlockMethod;
 _iss sqInt lastUncoggableInterpretedBlockMethod;
@@ -2335,7 +2335,7 @@
 /*540*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.909";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.911";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -16301,10 +16301,6 @@
 			}
 		}
 	}
-	else {
-		assert(GIV(cogCompiledCodeCompactionCalledFor)
-		 || (!(methodShouldBeCogged(aMethodObj))));
-	}
 	GIV(messageSelector) = (pic->selector);
 	GIV(newMethod) = aMethodObj;
 	/* begin primitiveIndexOfMethod:header: */

Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/nsspursrc/vm/cointerp.h	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
 
 

Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2014-10-24 18:53:45 UTC (rev 3109)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
    from
-	CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1585,10 +1585,10 @@
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt metaclassNumSlots;
 _iss sqInt preemptionYields;
-_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt lkupClass;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt numSegInfos;
+_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt highestRunnableProcessPriority;
 _iss sqInt lastCoggableInterpretedBlockMethod;
 _iss sqInt lastUncoggableInterpretedBlockMethod;
@@ -2338,7 +2338,7 @@
 /*540*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.909";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.911";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -16310,10 +16310,6 @@
 			}
 		}
 	}
-	else {
-		assert(GIV(cogCompiledCodeCompactionCalledFor)
-		 || (!(methodShouldBeCogged(aMethodObj))));
-	}
 	GIV(messageSelector) = (pic->selector);
 	GIV(newMethod) = aMethodObj;
 	/* begin primitiveIndexOfMethod:header: */


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Thu Oct 23 17:35:33 PDT 2014
   + Fri Oct 24 11:52:39 PDT 2014

Modified: branches/Cog/sistasrc/vm/cogit.c
===================================================================
--- branches/Cog/sistasrc/vm/cogit.c	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/sistasrc/vm/cogit.c	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -1380,8 +1380,8 @@
 	{ genReturnNil, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },
 	{ genReturnTopFromMethod, 0, needsFrameIfInBlock, -1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },
 	{ genReturnTopFromBlock, 0, needsFrameNever, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ extendedPushBytecode, 0, needsFrameNever, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ extendedStoreBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ extendedStoreAndPopBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -1393,7 +1393,7 @@
 	{ duplicateTopBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genPushActiveContextBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genPushNewArrayBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genPushRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreAndPopRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -1594,10 +1594,10 @@
 	{ genPushConstantOneBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genExtPushPseudoVariable, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ duplicateTopBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genReturnReceiver, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },
 	{ genReturnTrue, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },
 	{ genReturnFalse, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },
@@ -1727,13 +1727,13 @@
 	{ genStoreAndPopTemporaryVariableBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreAndPopTemporaryVariableBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genPopStackBytecode, 0, needsFrameNever, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ extABytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ extBBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genExtPushReceiverVariableBytecode, 0, needsFrameNever, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -1756,16 +1756,16 @@
 	{ genExtStoreReceiverVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genExtStoreLiteralVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genLongStoreTemporaryVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genCallPrimitiveBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genExtPushClosureBytecode, v4BlockCodeSize, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0 },
 	{ genPushRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreAndPopRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }
+	{ unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 }
 };
 static sqInt guardPageSize;
 static sqInt hasYoungReferent;
@@ -19348,6 +19348,12 @@
 		byte0 = (fetchByteofObject(pc, methodObj)) + bytecodeSetOffset;
 		descriptor = generatorAt(byte0);
 		if ((descriptor->isExtension)) {
+			if (((descriptor->opcode)) == Nop) {
+
+				/* unknown bytecode tag; see Cogit class>>#generatorTableFrom: */
+
+				return EncounteredUnknownBytecode;
+			}
 			loadSubsequentBytesForDescriptorat(descriptor, pc);
 			((descriptor->generator))();
 		}

Modified: branches/Cog/sistasrc/vm/cogit.h
===================================================================
--- branches/Cog/sistasrc/vm/cogit.h	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/sistasrc/vm/cogit.h	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
 
 

Modified: branches/Cog/sistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/sistasrc/vm/cointerp.c	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/sistasrc/vm/cointerp.c	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
    from
-	CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -851,7 +851,7 @@
 void printWronglySizedContexts(sqInt printContexts);
 static void restoreHeadersFromtofromandtofrom(sqInt firstIn, sqInt lastIn, sqInt hdrBaseIn, sqInt firstOut, sqInt lastOut, sqInt hdrBaseOut) NoDbgRegParms;
 static void runLeakCheckerForFullGC(sqInt fullGCFlag) NoDbgRegParms;
-static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
+static usqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
 static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms;
 static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms;
 static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms;
@@ -1362,9 +1362,9 @@
 _iss sqInt growHeadroom;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt preemptionYields;
-_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt statMarkCount;
+_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt gcMode;
 _iss sqInt highestRunnableProcessPriority;
 _iss sqInt lastCoggableInterpretedBlockMethod;
@@ -2081,7 +2081,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.909]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -14651,10 +14651,6 @@
 			}
 		}
 	}
-	else {
-		assert(GIV(cogCompiledCodeCompactionCalledFor)
-		 || (!(methodShouldBeCogged(aMethodObj))));
-	}
 	GIV(messageSelector) = (pic->selector);
 	GIV(newMethod) = aMethodObj;
 	/* begin primitiveIndexOfMethod:header: */
@@ -36840,17 +36836,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;
 
@@ -36861,21 +36855,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;
@@ -36890,7 +36870,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)) {
 
@@ -36944,18 +36924,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 = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart)
+	next = ((((usqInt)(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)) {
@@ -38830,7 +38810,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/sistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/sistasrc/vm/cointerp.h	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/sistasrc/vm/cointerp.h	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
 
 

Modified: branches/Cog/sistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/sistasrc/vm/gcc3x-cointerp.c	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/sistasrc/vm/gcc3x-cointerp.c	2014-10-24 18:53:45 UTC (rev 3109)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
    from
-	CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d
+	CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -854,7 +854,7 @@
 void printWronglySizedContexts(sqInt printContexts);
 static void restoreHeadersFromtofromandtofrom(sqInt firstIn, sqInt lastIn, sqInt hdrBaseIn, sqInt firstOut, sqInt lastOut, sqInt hdrBaseOut) NoDbgRegParms;
 static void runLeakCheckerForFullGC(sqInt fullGCFlag) NoDbgRegParms;
-static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
+static usqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
 static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms;
 static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms;
 static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms;
@@ -1365,9 +1365,9 @@
 _iss sqInt growHeadroom;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt preemptionYields;
-_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt statMarkCount;
+_iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt gcMode;
 _iss sqInt highestRunnableProcessPriority;
 _iss sqInt lastCoggableInterpretedBlockMethod;
@@ -2084,7 +2084,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.909]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -14660,10 +14660,6 @@
 			}
 		}
 	}
-	else {
-		assert(GIV(cogCompiledCodeCompactionCalledFor)
-		 || (!(methodShouldBeCogged(aMethodObj))));
-	}
 	GIV(messageSelector) = (pic->selector);
 	GIV(newMethod) = aMethodObj;
 	/* begin primitiveIndexOfMethod:header: */
@@ -36849,17 +36845,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;
 
@@ -36870,21 +36864,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;
@@ -36899,7 +36879,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)) {
 
@@ -36953,18 +36933,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 = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart)
+	next = ((((usqInt)(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)) {
@@ -38839,7 +38819,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/spursistasrc/vm/cogit.c
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.c	2014-10-24 12:46:01 UTC (rev 3108)
+++ branches/Cog/spursistasrc/vm/cogit.c	2014-10-24 18:53:45 UTC (rev 3109)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -1398,8 +1398,8 @@
 	{ genReturnNil, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },
 	{ genReturnTopFromMethod, 0, needsFrameIfInBlock, -1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },
 	{ genReturnTopFromBlock, 0, needsFrameNever, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ extendedPushBytecode, 0, needsFrameNever, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ extendedStoreBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ extendedStoreAndPopBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -1612,10 +1612,10 @@
 	{ genPushConstantOneBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genExtPushPseudoVariable, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ duplicateTopBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genReturnReceiver, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },
 	{ genReturnTrue, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },
 	{ genReturnFalse, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },
@@ -1745,13 +1745,13 @@
 	{ genStoreAndPopTemporaryVariableBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreAndPopTemporaryVariableBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genPopStackBytecode, 0, needsFrameNever, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ extABytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ extBBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genExtPushReceiverVariableBytecode, 0, needsFrameNever, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -1774,16 +1774,16 @@
 	{ genExtStoreReceiverVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genExtStoreLiteralVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genLongStoreTemporaryVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genCallPrimitiveBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 },
 	{ genExtPushClosureBytecode, v4BlockCodeSize, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0 },
 	{ genPushRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
 	{ genStoreAndPopRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
-	{ unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }
+	{ unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 },
+	{ unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 }
 };
 static sqInt guardPageSize;
 static sqInt hasYoungReferent;
@@ -20838,6 +20838,12 @@
 		byte0 = (fetchByteofObject(pc, methodObj)) + bytecodeSetOffset;
 		descriptor = generatorAt(byte0);
 		if ((descriptor->isExtension)) {

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list