[Vm-dev] [commit][3387] CogVM source as per VMMaker.oscog-eem.1371

commits at squeakvm.org commits at squeakvm.org
Sun Jun 21 21:26:02 UTC 2015


Revision: 3387
Author:   eliot
Date:     2015-06-21 14:26:01 -0700 (Sun, 21 Jun 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1371

Fix bogus assert in extSendBytecode.  Simplify
SpurMemoryManager>>classForClassTag:; its assert is superfluous.

Modified Paths:
--------------
    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/nsspurstack64src/vm/gcc3x-interp.c
    branches/Cog/nsspurstack64src/vm/interp.c
    branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsspurstacksrc/vm/interp.c
    branches/Cog/scripts/mkARMstackvmarchives
    branches/Cog/scripts/mkspurvmarchives
    branches/Cog/scripts/mkvmarchives
    branches/Cog/scripts/uploadARMvms
    branches/Cog/scripts/uploadvms
    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.h
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spurstack64src/vm/gcc3x-interp.c
    branches/Cog/spurstack64src/vm/interp.c
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.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
    branches/Cog/stacksrc/vm/gcc3x-interp.c
    branches/Cog/stacksrc/vm/interp.c

Added Paths:
-----------
    branches/Cog/scripts/printRevAndTag

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

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h	2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspursrc/vm/cogit.h	2015-06-21 21:26:01 UTC (rev 3387)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	CCodeGenerator VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c	2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspursrc/vm/cointerp.c	2015-06-21 21:26:01 UTC (rev 3387)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
    from
-	CoInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	CoInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1187,7 +1187,7 @@
 static sqInt storeImageSegmentIntooutPointersroots(sqInt segmentWordArray, sqInt outPointerArray, sqInt arrayOfRoots) NoDbgRegParms;
 extern sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
 extern sqInt storePointerofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-extern sqInt stringForCString(const char *aCString);
+extern usqInt stringForCString(const char *aCString);
 static sqInt sufficientSpaceAfterGC(sqInt numBytes) NoDbgRegParms;
 static sqInt swizzleObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
 extern void tenuringIncrementalGC(void);
@@ -2376,7 +2376,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1370";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1371";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -6050,8 +6050,6 @@
 					sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
 					if (recordSendTrace()) {
 						/* begin recordTrace:thing:source: */
-						/* begin classForClassTag: */
-						assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 						/* begin classAtIndex: */
 						assert((lkupClassTag <= (tagMask()))
 						 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -6067,7 +6065,7 @@
 						GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
 						GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 						if (printOnTrace()) {
-							printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+							printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
 							/* begin cr */
 							printf("\n");
 						}
@@ -6170,8 +6168,6 @@
 								goto l255;
 							}
 						}
-						/* begin classForClassTag: */
-						assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 						/* begin classAtIndex: */
 						assert((lkupClassTag <= (tagMask()))
 						 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13365,7 +13361,6 @@
 							? 1
 							: tagBits)
 					: (longAt(rcvr)) & 0x3FFFFF);
-				assert((classForClassTag(lkupClassTag)) != (nilObject()));
 				goto commonSend;
 			}
 			break;
@@ -13461,8 +13456,6 @@
 				sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
 				if (recordSendTrace()) {
 					/* begin recordTrace:thing:source: */
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13478,7 +13471,7 @@
 					GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
 					GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 					if (printOnTrace()) {
-						printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+						printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
 						/* begin cr */
 						printf("\n");
 					}
@@ -13581,8 +13574,6 @@
 							goto l266;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13910,8 +13901,6 @@
 				sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
 				if (recordSendTrace()) {
 					/* begin recordTrace:thing:source: */
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13927,7 +13916,7 @@
 					GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
 					GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 					if (printOnTrace()) {
-						printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+						printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
 						/* begin cr */
 						printf("\n");
 					}
@@ -14030,8 +14019,6 @@
 							goto l217;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14469,8 +14456,6 @@
 				sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
 				if (recordSendTrace()) {
 					/* begin recordTrace:thing:source: */
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14486,7 +14471,7 @@
 					GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
 					GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 					if (printOnTrace()) {
-						printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+						printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
 						/* begin cr */
 						printf("\n");
 					}
@@ -14589,8 +14574,6 @@
 							goto l227;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -15034,8 +15017,6 @@
 				sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
 				if (recordSendTrace()) {
 					/* begin recordTrace:thing:source: */
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -15051,7 +15032,7 @@
 					GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
 					GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 					if (printOnTrace()) {
-						printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+						printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
 						/* begin cr */
 						printf("\n");
 					}
@@ -15154,8 +15135,6 @@
 							goto l238;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -16666,8 +16645,8 @@
 			return ceDynamicSuperSendtonumArgs(selector, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
 		}
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
 			assert(0);
 		}
 	}
@@ -16802,8 +16781,8 @@
 			error("Implicit receiver lookup should have followed fowarded objects");
 		}
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(irClassTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, implicitReceiver, classForClassTag(irClassTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(irClassTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, implicitReceiver, classAtIndex(irClassTag));
 			error("UNREACHABLE3");
 		}
 	}
@@ -17389,8 +17368,8 @@
 			error("Implicit receiver lookup should have followed fowarded objects");
 		}
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(eoClassTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, enclosingObject, classForClassTag(eoClassTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(eoClassTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, enclosingObject, classAtIndex(eoClassTag));
 			error("UNREACHABLE3");
 		}
 	}
@@ -17565,8 +17544,8 @@
 			return ceSelfSendtonumArgs(selector, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
 		}
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
 			assert(0);
 		}
 	}
@@ -17675,8 +17654,8 @@
 	}
 	else {
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
 			assert(0);
 		}
 	}
@@ -17765,8 +17744,8 @@
 			return ceSendFromInLineCacheMiss(cogMethodOrPIC);
 		}
 		GIV(messageSelector) = (cogMethodOrPIC->selector);
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
 			assert(0);
 		}
 	}
@@ -17919,14 +17898,14 @@
 			return ceSendsupertonumArgs(selector, superNormalBar, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
 		}
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
 			if ((errSelIdx == SelectorDoesNotUnderstand)
 			 && ((((usqInt)((cogMethod = cogMNUPICSelectorreceivermethodOperandnumArgs(GIV(messageSelector), rcvr, mnuMethodOrNilFor(rcvr), GIV(argumentCount)))))) > (minCogMethodAddress()))) {
 				linkSendAtintooffsetreceiver(longAt(GIV(stackPointer)), mframeHomeMethod(GIV(framePointer)), cogMethod, (superNormalBar == 0
 					? entryOffset()
 					: noCheckEntryOffset()), rcvr);
 			}
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
 			assert(0);
 		}
 	}
@@ -18113,7 +18092,7 @@
 static sqInt
 checkForAndFollowForwardedPrimitiveState(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt accessorDepth;
+    signed char accessorDepth;
     sqInt firstBytecode;
     sqInt found;
     sqInt found1;
@@ -19153,8 +19132,6 @@
 				return;
 			}
 		}
-		/* begin classForClassTag: */
-		assert(classTag != (isForwardedObjectClassIndexPun()));
 		/* begin classAtIndex: */
 		assert((classTag <= (tagMask()))
 		 || (classTag >= (arrayClassIndexPun())));
@@ -20231,7 +20208,7 @@
 	}
 	if (!(lookupInMethodCacheSelclassTag(selector, classTag))) {
 		GIV(messageSelector) = selector;
-		if (((erridx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
+		if (((erridx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
 			assert(erridx <= (maxLookupNoMNUErrorCode()));
 			return erridx;
 		}
@@ -24592,7 +24569,7 @@
 		 || (addressCouldBeObj(s)))
 		 && ((c != 0)
 		 && ((addressCouldBeClassObj(c))
-		 || (addressCouldBeClassObj(classForClassTag(c))))))) {
+		 || (addressCouldBeClassObj(classAtIndex(c))))))) {
 			null;
 			printNum(i);
 			/* begin cr */
@@ -24617,7 +24594,7 @@
 				/* begin space */
 				/* begin printChar: */
 				putchar(' ');
-				shortPrintOop(classForClassTag(c));
+				shortPrintOop(classAtIndex(c));
 			}
 			/* begin tab */
 			/* begin printChar: */
@@ -25574,7 +25551,7 @@
 	classTag = (longAt(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassAlien << (shiftForWord()))))) & 0x3FFFFF;
 	GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorInvokeCallback << (shiftForWord())));
 	if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
-		if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+		if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
 			return 0;
 		}
 	}
@@ -26042,7 +26019,7 @@
 	GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorInvokeCallback << (shiftForWord())));
 	GIV(argumentCount) = 4;
 	if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
-		if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+		if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
 			return 0;
 		}
 	}
@@ -32046,7 +32023,7 @@
     usqInt newObj;
     usqInt numBytes;
     sqInt numSlots;
-    sqInt s;
+    usqInt s;
     char *sp;
     sqInt sz;
 
@@ -37752,7 +37729,7 @@
     sqInt err;
     sqInt hash;
     sqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     sqInt numSlots;
@@ -37877,7 +37854,7 @@
     sqInt i;
     usqInt instSpec;
     sqInt literalCount;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     sqInt numSlots;
@@ -43807,7 +43784,7 @@
     sqInt fillValue;
     sqInt hash;
     usqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -45939,7 +45916,7 @@
     sqInt entry;
     sqInt expectedIndex;
     sqInt expectedIndex1;
-    sqInt freeChunk;
+    usqInt freeChunk;
     sqInt i;
     sqInt i1;
     sqInt index;
@@ -45978,8 +45955,8 @@
     sqInt ptr1;
     sqInt ptr2;
     sqInt slotBytes;
-    sqInt smallObj;
-    sqInt start;
+    usqInt smallObj;
+    usqInt start;
 
 	classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
 	if (classIndex == 0) {
@@ -48655,13 +48632,16 @@
 	return longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 }
 
+
+/*	No need to check this; classAtIndex: has a stricter assert:
+	self assert: classIndex ~= self isForwardedObjectClassIndexPun. */
+
 	/* SpurMemoryManager>>#classForClassTag: */
 static sqInt
 classForClassTag(sqInt classIndex)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt classTablePage;
 
-	assert(classIndex != (isForwardedObjectClassIndexPun()));
 	/* begin classAtIndex: */
 	assert((classIndex <= (tagMask()))
 	 || (classIndex >= (arrayClassIndexPun())));
@@ -48937,7 +48917,7 @@
     sqInt fmt;
     sqInt hasYoung;
     sqInt i;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -63582,8 +63562,8 @@
     sqInt prevPrevObj;
     sqInt prevPrevObj1;
     sqInt ptr;
-    sqInt savedInHashes;
-    sqInt savedOutHashes;
+    usqInt savedInHashes;
+    usqInt savedOutHashes;
     sqInt segAddr;
     sqInt segStart;
     sqInt slotBytes;
@@ -64053,13 +64033,13 @@
 	or nil if out of memory. */
 
 	/* SpurMemoryManager>>#stringForCString: */
-sqInt
+usqInt
 stringForCString(const char *aCString)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt formatField;
     sqInt len;
     usqInt newObj;
-    sqInt newString;
+    usqInt newString;
     usqInt numBytes;
     sqInt numSlots;
 
@@ -65010,7 +64990,7 @@
     sqInt largeChild;
     sqInt newEndOfMemory;
     sqInt next;
-    usqInt node;
+    sqInt node;
     SpurSegmentInfo *seg;
     sqInt smallChild;
     sqInt treeNode;
@@ -80259,7 +80239,7 @@
 	selector = GIV(messageSelector);
 	sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(selector), lengthOfMaybeImmediate(selector), newReceiver);
 	if (printOnTrace()) {
-		printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lookupClassTag));
+		printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lookupClassTag));
 		/* begin cr */
 		printf("\n");
 	}

Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h	2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspursrc/vm/cointerp.h	2015-06-21 21:26:01 UTC (rev 3387)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
  */
 
 
@@ -258,7 +258,7 @@
 extern sqInt splObj(sqInt index);
 extern usqInt storeCheckBoundary(void);
 extern sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-extern sqInt stringForCString(const char *aCString);
+extern usqInt stringForCString(const char *aCString);
 extern void tenuringIncrementalGC(void);
 extern sqInt topRemappableOop(void);
 extern sqInt validFreeTree(void);

Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2015-06-21 21:26:01 UTC (rev 3387)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
    from
-	CoInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	CoInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1190,7 +1190,7 @@
 static sqInt storeImageSegmentIntooutPointersroots(sqInt segmentWordArray, sqInt outPointerArray, sqInt arrayOfRoots) NoDbgRegParms;
 extern sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
 extern sqInt storePointerofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-extern sqInt stringForCString(const char *aCString);
+extern usqInt stringForCString(const char *aCString);
 static sqInt sufficientSpaceAfterGC(sqInt numBytes) NoDbgRegParms;
 static sqInt swizzleObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
 extern void tenuringIncrementalGC(void);
@@ -2379,7 +2379,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1370";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1371";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -6059,8 +6059,6 @@
 					sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
 					if (recordSendTrace()) {
 						/* begin recordTrace:thing:source: */
-						/* begin classForClassTag: */
-						assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 						/* begin classAtIndex: */
 						assert((lkupClassTag <= (tagMask()))
 						 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -6076,7 +6074,7 @@
 						GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
 						GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 						if (printOnTrace()) {
-							printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+							printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
 							/* begin cr */
 							printf("\n");
 						}
@@ -6179,8 +6177,6 @@
 								goto l255;
 							}
 						}
-						/* begin classForClassTag: */
-						assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 						/* begin classAtIndex: */
 						assert((lkupClassTag <= (tagMask()))
 						 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13374,7 +13370,6 @@
 							? 1
 							: tagBits)
 					: (longAt(rcvr)) & 0x3FFFFF);
-				assert((classForClassTag(lkupClassTag)) != (nilObject()));
 				goto commonSend;
 			}
 			BREAK;
@@ -13470,8 +13465,6 @@
 				sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
 				if (recordSendTrace()) {
 					/* begin recordTrace:thing:source: */
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13487,7 +13480,7 @@
 					GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
 					GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 					if (printOnTrace()) {
-						printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+						printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
 						/* begin cr */
 						printf("\n");
 					}
@@ -13590,8 +13583,6 @@
 							goto l266;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13919,8 +13910,6 @@
 				sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
 				if (recordSendTrace()) {
 					/* begin recordTrace:thing:source: */
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13936,7 +13925,7 @@
 					GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
 					GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 					if (printOnTrace()) {
-						printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+						printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
 						/* begin cr */
 						printf("\n");
 					}
@@ -14039,8 +14028,6 @@
 							goto l217;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14478,8 +14465,6 @@
 				sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
 				if (recordSendTrace()) {
 					/* begin recordTrace:thing:source: */
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14495,7 +14480,7 @@
 					GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
 					GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 					if (printOnTrace()) {
-						printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+						printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
 						/* begin cr */
 						printf("\n");
 					}
@@ -14598,8 +14583,6 @@
 							goto l227;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -15043,8 +15026,6 @@
 				sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(GIV(messageSelector)), lengthOfMaybeImmediate(GIV(messageSelector)), longAtPointer(localSP + (GIV(argumentCount) * BytesPerOop)));
 				if (recordSendTrace()) {
 					/* begin recordTrace:thing:source: */
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -15060,7 +15041,7 @@
 					GIV(traceLog)[GIV(traceLogIndex) + 2] = TraceIsFromInterpreter;
 					GIV(traceLogIndex) = (GIV(traceLogIndex) + 3) % TraceBufferSize;
 					if (printOnTrace()) {
-						printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lkupClassTag));
+						printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lkupClassTag));
 						/* begin cr */
 						printf("\n");
 					}
@@ -15163,8 +15144,6 @@
 							goto l238;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -16675,8 +16654,8 @@
 			return ceDynamicSuperSendtonumArgs(selector, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
 		}
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
 			assert(0);
 		}
 	}
@@ -16811,8 +16790,8 @@
 			error("Implicit receiver lookup should have followed fowarded objects");
 		}
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(irClassTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, implicitReceiver, classForClassTag(irClassTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(irClassTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, implicitReceiver, classAtIndex(irClassTag));
 			error("UNREACHABLE3");
 		}
 	}
@@ -17398,8 +17377,8 @@
 			error("Implicit receiver lookup should have followed fowarded objects");
 		}
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(eoClassTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, enclosingObject, classForClassTag(eoClassTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(eoClassTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, enclosingObject, classAtIndex(eoClassTag));
 			error("UNREACHABLE3");
 		}
 	}
@@ -17574,8 +17553,8 @@
 			return ceSelfSendtonumArgs(selector, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
 		}
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
 			assert(0);
 		}
 	}
@@ -17684,8 +17663,8 @@
 	}
 	else {
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
 			assert(0);
 		}
 	}
@@ -17774,8 +17753,8 @@
 			return ceSendFromInLineCacheMiss(cogMethodOrPIC);
 		}
 		GIV(messageSelector) = (cogMethodOrPIC->selector);
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
 			assert(0);
 		}
 	}
@@ -17928,14 +17907,14 @@
 			return ceSendsupertonumArgs(selector, superNormalBar, handleForwardedSendFaultForReceiverstackDelta(rcvr, 1), numArgs);
 		}
 		GIV(messageSelector) = selector;
-		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
+		if (((errSelIdx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
 			if ((errSelIdx == SelectorDoesNotUnderstand)
 			 && ((((usqInt)((cogMethod = cogMNUPICSelectorreceivermethodOperandnumArgs(GIV(messageSelector), rcvr, mnuMethodOrNilFor(rcvr), GIV(argumentCount)))))) > (minCogMethodAddress()))) {
 				linkSendAtintooffsetreceiver(longAt(GIV(stackPointer)), mframeHomeMethod(GIV(framePointer)), cogMethod, (superNormalBar == 0
 					? entryOffset()
 					: noCheckEntryOffset()), rcvr);
 			}
-			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classForClassTag(classTag));
+			handleMNUInMachineCodeToclassForMessage(errSelIdx, rcvr, classAtIndex(classTag));
 			assert(0);
 		}
 	}
@@ -18122,7 +18101,7 @@
 static sqInt
 checkForAndFollowForwardedPrimitiveState(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt accessorDepth;
+    signed char accessorDepth;
     sqInt firstBytecode;
     sqInt found;
     sqInt found1;
@@ -19162,8 +19141,6 @@
 				return;
 			}
 		}
-		/* begin classForClassTag: */
-		assert(classTag != (isForwardedObjectClassIndexPun()));
 		/* begin classAtIndex: */
 		assert((classTag <= (tagMask()))
 		 || (classTag >= (arrayClassIndexPun())));
@@ -20240,7 +20217,7 @@
 	}
 	if (!(lookupInMethodCacheSelclassTag(selector, classTag))) {
 		GIV(messageSelector) = selector;
-		if (((erridx = lookupMethodNoMNUEtcInClass(classForClassTag(classTag)))) != 0) {
+		if (((erridx = lookupMethodNoMNUEtcInClass(classAtIndex(classTag)))) != 0) {
 			assert(erridx <= (maxLookupNoMNUErrorCode()));
 			return erridx;
 		}
@@ -24601,7 +24578,7 @@
 		 || (addressCouldBeObj(s)))
 		 && ((c != 0)
 		 && ((addressCouldBeClassObj(c))
-		 || (addressCouldBeClassObj(classForClassTag(c))))))) {
+		 || (addressCouldBeClassObj(classAtIndex(c))))))) {
 			null;
 			printNum(i);
 			/* begin cr */
@@ -24626,7 +24603,7 @@
 				/* begin space */
 				/* begin printChar: */
 				putchar(' ');
-				shortPrintOop(classForClassTag(c));
+				shortPrintOop(classAtIndex(c));
 			}
 			/* begin tab */
 			/* begin printChar: */
@@ -25583,7 +25560,7 @@
 	classTag = (longAt(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassAlien << (shiftForWord()))))) & 0x3FFFFF;
 	GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorInvokeCallback << (shiftForWord())));
 	if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
-		if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+		if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
 			return 0;
 		}
 	}
@@ -26051,7 +26028,7 @@
 	GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorInvokeCallback << (shiftForWord())));
 	GIV(argumentCount) = 4;
 	if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
-		if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+		if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
 			return 0;
 		}
 	}
@@ -32055,7 +32032,7 @@
     usqInt newObj;
     usqInt numBytes;
     sqInt numSlots;
-    sqInt s;
+    usqInt s;
     char *sp;
     sqInt sz;
 
@@ -37761,7 +37738,7 @@
     sqInt err;
     sqInt hash;
     sqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     sqInt numSlots;
@@ -37886,7 +37863,7 @@
     sqInt i;
     usqInt instSpec;
     sqInt literalCount;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     sqInt numSlots;
@@ -43816,7 +43793,7 @@
     sqInt fillValue;
     sqInt hash;
     usqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -45948,7 +45925,7 @@
     sqInt entry;
     sqInt expectedIndex;
     sqInt expectedIndex1;
-    sqInt freeChunk;
+    usqInt freeChunk;
     sqInt i;
     sqInt i1;
     sqInt index;
@@ -45987,8 +45964,8 @@
     sqInt ptr1;
     sqInt ptr2;
     sqInt slotBytes;
-    sqInt smallObj;
-    sqInt start;
+    usqInt smallObj;
+    usqInt start;
 
 	classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
 	if (classIndex == 0) {
@@ -48664,13 +48641,16 @@
 	return longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 }
 
+
+/*	No need to check this; classAtIndex: has a stricter assert:
+	self assert: classIndex ~= self isForwardedObjectClassIndexPun. */
+
 	/* SpurMemoryManager>>#classForClassTag: */
 static sqInt
 classForClassTag(sqInt classIndex)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt classTablePage;
 
-	assert(classIndex != (isForwardedObjectClassIndexPun()));
 	/* begin classAtIndex: */
 	assert((classIndex <= (tagMask()))
 	 || (classIndex >= (arrayClassIndexPun())));
@@ -48946,7 +48926,7 @@
     sqInt fmt;
     sqInt hasYoung;
     sqInt i;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -63591,8 +63571,8 @@
     sqInt prevPrevObj;
     sqInt prevPrevObj1;
     sqInt ptr;
-    sqInt savedInHashes;
-    sqInt savedOutHashes;
+    usqInt savedInHashes;
+    usqInt savedOutHashes;
     sqInt segAddr;
     sqInt segStart;
     sqInt slotBytes;
@@ -64062,13 +64042,13 @@
 	or nil if out of memory. */
 
 	/* SpurMemoryManager>>#stringForCString: */
-sqInt
+usqInt
 stringForCString(const char *aCString)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt formatField;
     sqInt len;
     usqInt newObj;
-    sqInt newString;
+    usqInt newString;
     usqInt numBytes;
     sqInt numSlots;
 
@@ -65019,7 +64999,7 @@
     sqInt largeChild;
     sqInt newEndOfMemory;
     sqInt next;
-    usqInt node;
+    sqInt node;
     SpurSegmentInfo *seg;
     sqInt smallChild;
     sqInt treeNode;
@@ -80268,7 +80248,7 @@
 	selector = GIV(messageSelector);
 	sendBreakpointreceiver(firstFixedFieldOfMaybeImmediate(selector), lengthOfMaybeImmediate(selector), newReceiver);
 	if (printOnTrace()) {
-		printActivationNameForSelectorstartClass(GIV(messageSelector), classForClassTag(lookupClassTag));
+		printActivationNameForSelectorstartClass(GIV(messageSelector), classAtIndex(lookupClassTag));
 		/* begin cr */
 		printf("\n");
 	}

Modified: branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/gcc3x-interp.c	2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspurstack64src/vm/gcc3x-interp.c	2015-06-21 21:26:01 UTC (rev 3387)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
    from
-	StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2146,7 +2146,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1370";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1371";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -5772,8 +5772,6 @@
 							goto l203;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13369,7 +13367,6 @@
 				lkupClassTag = (((tagBits = rcvr & 7)) != 0
 					? tagBits
 					: (longAt(rcvr)) & 0x3FFFFF);
-				assert((classForClassTag(lkupClassTag)) != (nilObject()));
 				goto commonSend;
 			}
 			BREAK;
@@ -13693,8 +13690,6 @@
 						goto l215;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14020,8 +14015,6 @@
 						goto l167;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14418,8 +14411,6 @@
 						goto l175;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14842,8 +14833,6 @@
 						goto l185;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -36047,13 +36036,16 @@
 	return longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)ClassFloat) << (shiftForWord())));
 }
 
+
+/*	No need to check this; classAtIndex: has a stricter assert:
+	self assert: classIndex ~= self isForwardedObjectClassIndexPun. */
+
 	/* SpurMemoryManager>>#classForClassTag: */
 static sqInt
 classForClassTag(sqInt classIndex)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt classTablePage;
 
-	assert(classIndex != (isForwardedObjectClassIndexPun()));
 	/* begin classAtIndex: */
 	assert((classIndex <= (tagMask()))
 	 || (classIndex >= (arrayClassIndexPun())));
@@ -58334,8 +58326,6 @@
 				return null;
 			}
 		}
-		/* begin classForClassTag: */
-		assert(classTag != (isForwardedObjectClassIndexPun()));
 		/* begin classAtIndex: */
 		assert((classTag <= (tagMask()))
 		 || (classTag >= (arrayClassIndexPun())));
@@ -65346,7 +65336,7 @@
 		 || (addressCouldBeObj(s)))
 		 && ((c != 0)
 		 && ((addressCouldBeClassObj(c))
-		 || (addressCouldBeClassObj(classForClassTag(c))))))) {
+		 || (addressCouldBeClassObj(classAtIndex(c))))))) {
 			null;
 			printNum(i);
 			/* begin cr */
@@ -65371,7 +65361,7 @@
 				/* begin space */
 				/* begin printChar: */
 				putchar(' ');
-				shortPrintOop(classForClassTag(c));
+				shortPrintOop(classAtIndex(c));
 			}
 			/* begin tab */
 			/* begin printChar: */
@@ -67599,7 +67589,7 @@
 	classTag = (longAt(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)ClassAlien) << (shiftForWord()))))) & 0x3FFFFF;
 	GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)SelectorInvokeCallback) << (shiftForWord())));
 	if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
-		if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+		if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
 			return 0;
 		}
 	}
@@ -67773,7 +67763,7 @@
 	GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)SelectorInvokeCallback) << (shiftForWord())));
 	GIV(argumentCount) = 4;
 	if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
-		if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+		if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
 			return 0;
 		}
 	}

Modified: branches/Cog/nsspurstack64src/vm/interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/interp.c	2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspurstack64src/vm/interp.c	2015-06-21 21:26:01 UTC (rev 3387)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
    from
-	StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2143,7 +2143,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1370";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1371";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -5763,8 +5763,6 @@
 							goto l203;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13360,7 +13358,6 @@
 				lkupClassTag = (((tagBits = rcvr & 7)) != 0
 					? tagBits
 					: (longAt(rcvr)) & 0x3FFFFF);
-				assert((classForClassTag(lkupClassTag)) != (nilObject()));
 				goto commonSend;
 			}
 			break;
@@ -13684,8 +13681,6 @@
 						goto l215;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14011,8 +14006,6 @@
 						goto l167;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14409,8 +14402,6 @@
 						goto l175;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14833,8 +14824,6 @@
 						goto l185;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -36038,13 +36027,16 @@
 	return longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)ClassFloat) << (shiftForWord())));
 }
 
+
+/*	No need to check this; classAtIndex: has a stricter assert:
+	self assert: classIndex ~= self isForwardedObjectClassIndexPun. */
+
 	/* SpurMemoryManager>>#classForClassTag: */
 static sqInt
 classForClassTag(sqInt classIndex)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt classTablePage;
 
-	assert(classIndex != (isForwardedObjectClassIndexPun()));
 	/* begin classAtIndex: */
 	assert((classIndex <= (tagMask()))
 	 || (classIndex >= (arrayClassIndexPun())));
@@ -58325,8 +58317,6 @@
 				return null;
 			}
 		}
-		/* begin classForClassTag: */
-		assert(classTag != (isForwardedObjectClassIndexPun()));
 		/* begin classAtIndex: */
 		assert((classTag <= (tagMask()))
 		 || (classTag >= (arrayClassIndexPun())));
@@ -65337,7 +65327,7 @@
 		 || (addressCouldBeObj(s)))
 		 && ((c != 0)
 		 && ((addressCouldBeClassObj(c))
-		 || (addressCouldBeClassObj(classForClassTag(c))))))) {
+		 || (addressCouldBeClassObj(classAtIndex(c))))))) {
 			null;
 			printNum(i);
 			/* begin cr */
@@ -65362,7 +65352,7 @@
 				/* begin space */
 				/* begin printChar: */
 				putchar(' ');
-				shortPrintOop(classForClassTag(c));
+				shortPrintOop(classAtIndex(c));
 			}
 			/* begin tab */
 			/* begin printChar: */
@@ -67590,7 +67580,7 @@
 	classTag = (longAt(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)ClassAlien) << (shiftForWord()))))) & 0x3FFFFF;
 	GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)SelectorInvokeCallback) << (shiftForWord())));
 	if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
-		if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+		if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
 			return 0;
 		}
 	}
@@ -67764,7 +67754,7 @@
 	GIV(messageSelector) = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((long)SelectorInvokeCallback) << (shiftForWord())));
 	GIV(argumentCount) = 4;
 	if (!(lookupInMethodCacheSelclassTag(GIV(messageSelector), classTag))) {
-		if ((lookupMethodNoMNUEtcInClass(classForClassTag(classTag))) != 0) {
+		if ((lookupMethodNoMNUEtcInClass(classAtIndex(classTag))) != 0) {
 			return 0;
 		}
 	}

Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2015-06-20 22:42:13 UTC (rev 3386)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2015-06-21 21:26:01 UTC (rev 3387)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
    from
-	StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a
+	StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1370 uuid: 779d3751-cd1b-4882-b870-156bf7da752a " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1371 uuid: a51022d9-e5d7-4dbf-83d3-4326bd5ea61f " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2117,7 +2117,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1370";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1371";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -5745,8 +5745,6 @@
 							goto l249;
 						}
 					}
-					/* begin classForClassTag: */
-					assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 					/* begin classAtIndex: */
 					assert((lkupClassTag <= (tagMask()))
 					 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -12700,7 +12698,6 @@
 							? 1
 							: tagBits)
 					: (longAt(rcvr)) & 0x3FFFFF);
-				assert((classForClassTag(lkupClassTag)) != (nilObject()));
 				goto commonSend;
 			}
 			BREAK;
@@ -13028,8 +13025,6 @@
 						goto l261;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13355,8 +13350,6 @@
 						goto l213;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -13755,8 +13748,6 @@
 						goto l221;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))
 				 || (lkupClassTag >= (arrayClassIndexPun())));
@@ -14181,8 +14172,6 @@
 						goto l231;
 					}
 				}
-				/* begin classForClassTag: */
-				assert(lkupClassTag != (isForwardedObjectClassIndexPun()));
 				/* begin classAtIndex: */
 				assert((lkupClassTag <= (tagMask()))

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list