[Vm-dev] [commit][3289] CogVM source as per VMMaker.oscog-eem.1119

commits at squeakvm.org commits at squeakvm.org
Wed Mar 25 20:25:29 UTC 2015


Revision: 3289
Author:   eliot
Date:     2015-03-25 13:25:29 -0700 (Wed, 25 Mar 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1119

Rescue Spur Cog compilations by removing the bogus <api> pragma from
headerForSlots:hash:format:classIndex:.  Now that
headerForSlots:hash:format:classIndex: exists, move identityHashFullWordShift
up to SpurMemoryManager.

Modified Paths:
--------------
    branches/Cog/nsspursrc/vm/cointerp.c
    branches/Cog/nsspursrc/vm/cointerp.h
    branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
    branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsspurstacksrc/vm/interp.c
    branches/Cog/spursistasrc/vm/cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.h
    branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
    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

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

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/nsspursrc/vm/cointerp.c	2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
    from
-	CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1002,7 +1002,6 @@
 static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
 static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
 usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
 static sqInt hiddenRootSlots(void);
 sqInt identityHashHalfWordMask(void);
 static sqInt imageSegmentVersion(void);
@@ -2366,7 +2365,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.1118";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1119";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -14209,7 +14208,7 @@
     CogMethod *cogMethod;
     sqInt methodField;
     sqInt methodField1;
-    sqInt theIP;
+    usqInt theIP;
 
 	assertl(GIV(stackPage) == (mostRecentlyUsedPage()), ln);
 	assertl(addressIsInPage(GIV(stackPage), lifp), ln);
@@ -22095,7 +22094,7 @@
     int index;
     sqInt methodField;
     usqInt numArgs;
-    sqInt numTemps;
+    usqInt numTemps;
     char *rcvrAddress;
     sqInt rcvrOrClosure;
     sqInt theMethod;
@@ -22128,7 +22127,7 @@
 		numArgs = (cogMethod->cmNumArgs);
 		/* begin temporaryCountOfMethodHeader: */
 		header = (homeMethod->methodHeader);
-		numTemps = (((usqInt) header) >> MethodHeaderTempCountShift) & 0x3F;
+		numTemps = ((sqInt) ((((usqInt) header) >> MethodHeaderTempCountShift) & 0x3F));
 	}
 	else {
 		theMethod = ((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
@@ -22148,7 +22147,7 @@
 			assert((((((CogMethod *) header2))->objectHeader)) == (nullHeaderForMachineCodeMethod()));
 			header1 = ((((CogMethod *) header2))->methodHeader);
 		}
-		numTemps = (((usqInt) header1) >> MethodHeaderTempCountShift) & 0x3F;
+		numTemps = ((sqInt) ((((usqInt) header1) >> MethodHeaderTempCountShift) & 0x3F));
 	}
 	if (((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
 		? ((longAt(theFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
@@ -28395,8 +28394,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -31014,7 +31013,7 @@
     sqInt arg;
     sqInt fmt;
     sqInt i;
-    sqInt length;
+    usqInt length;
     usqInt numBytes;
     usqInt numSlots;
     usqInt numSlots1;
@@ -31055,18 +31054,18 @@
 
 			/* bytes (the common case), including CompiledMethod */
 
-			length = numBytes - (fmt & 7);
+			length = ((sqInt) (numBytes - (fmt & 7)));
 			goto l1;
 		}
 		if (fmt <= 9) {
-			length = numBytes;
+			length = ((sqInt) numBytes);
 			goto l1;
 		}
 		if (fmt >= 12) {
-			length = numBytes - ((fmt & 3) << 1);
+			length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
 			goto l1;
 		}
-		length = numBytes - ((fmt & 1) << 2);
+		length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
 	l1:	/* end numBytesOf: */;
 		if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
 			 && (length == (numBytesOf(arg))))) {
@@ -31084,9 +31083,9 @@
 		flag("endianness");
 		assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 		numSlots1 = byteAt(rcvr + 7);
-		length = ((usqInt) ((numSlots1 == 0xFF
-	? longAt(rcvr - BaseHeaderSize)
-	: numSlots1)));
+		length = (numSlots1 == 0xFF
+			? longAt(rcvr - BaseHeaderSize)
+			: numSlots1);
 		if (!((isAppropriateForCopyObject(arg))
 			 && (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
 			(GIV(primFailCode) = PrimErrBadArgument);
@@ -38411,8 +38410,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -42918,7 +42917,7 @@
     sqInt ptr2;
     sqInt slotBytes;
     usqInt smallObj;
-    sqInt start;
+    usqInt start;
 
 	classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
 	if (classIndex == 0) {
@@ -45852,7 +45851,7 @@
     sqInt fmt;
     sqInt hasYoung;
     sqInt i;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -45895,7 +45894,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			newObj = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, fmt, classIndex)));
+			newObj = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, fmt, classIndex);
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -48487,36 +48486,6 @@
 }
 
 
-/*	The header format in LSB is
-	MSB:	| 8: numSlots		| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isMarked,?})
-	| 22: identityHash	| (on a word boundary)
-	| 3 bits				|	(msb <-> lsb = {isGrey,isPinned,isRemembered}
-	| 5: format			| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isImmutable,?})
-	| 22: classIndex		| (on a word boundary) : LSB
-	The remaining bits (7) are used for
-	isImmutable	(bit 23)
-	isRemembered	(bit 29)
-	isPinned		(bit 30)
-	isGrey			(bit 31)
-	isMarked		(bit 55)
-	leaving 2 unused bits, each next to a 22-bit field, allowing those fields
-	to be
-	expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
-	} is for bits that are never set in young objects. This allows the
-	remembered table to be pruned when full by using these bits as a reference
-	count of
-	newSpace objects from the remembered table. Objects with a high count
-	should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
-	return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
 /*	Answer the number of extra root slots in the root of the hidden root
 	object. 
  */
@@ -61344,7 +61313,7 @@
 bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
 {
     sqInt bridgeSpan;
-    sqInt clifton;
+    usqInt clifton;
     usqInt segEnd;
 
 	segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -73180,7 +73149,7 @@
     sqInt sp1;
     sqInt stSize;
     sqInt totalLength;
-    usqInt valueToStore;
+    sqInt valueToStore;
 
 	hdr = long64At(array);
 	fmt = (((unsigned sqLong)hdr) >> 24) & 0x1F;
@@ -74443,8 +74412,8 @@
     sqInt totalLength;
     sqInt totalLength1;
     sqInt value;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	value = longAt(GIV(stackPointer));
 	index = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -76216,7 +76185,7 @@
     sqInt rcvr;
     char *sp;
     sqInt totalLength;
-    usqInt valueToStore;
+    sqInt valueToStore;
 
 	newValue = longAt(GIV(stackPointer));
 	/* begin stackIntegerValue: */

Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/nsspursrc/vm/cointerp.h	2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
 
 
@@ -178,7 +178,6 @@
 sqInt formatShift(void);
 sqInt freeObject(sqInt objOop);
 usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
 sqInt identityHashHalfWordMask(void);
 sqInt indexablePointersFormat(void);
 void inOrderPrintFreeTreeprintList(sqInt freeChunk, sqInt printNextList);

Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2015-03-25 20:25:29 UTC (rev 3289)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
    from
-	CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1005,7 +1005,6 @@
 static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
 static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
 usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
 static sqInt hiddenRootSlots(void);
 sqInt identityHashHalfWordMask(void);
 static sqInt imageSegmentVersion(void);
@@ -2369,7 +2368,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.1118";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1119";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -14218,7 +14217,7 @@
     CogMethod *cogMethod;
     sqInt methodField;
     sqInt methodField1;
-    sqInt theIP;
+    usqInt theIP;
 
 	assertl(GIV(stackPage) == (mostRecentlyUsedPage()), ln);
 	assertl(addressIsInPage(GIV(stackPage), lifp), ln);
@@ -22104,7 +22103,7 @@
     int index;
     sqInt methodField;
     usqInt numArgs;
-    sqInt numTemps;
+    usqInt numTemps;
     char *rcvrAddress;
     sqInt rcvrOrClosure;
     sqInt theMethod;
@@ -22137,7 +22136,7 @@
 		numArgs = (cogMethod->cmNumArgs);
 		/* begin temporaryCountOfMethodHeader: */
 		header = (homeMethod->methodHeader);
-		numTemps = (((usqInt) header) >> MethodHeaderTempCountShift) & 0x3F;
+		numTemps = ((sqInt) ((((usqInt) header) >> MethodHeaderTempCountShift) & 0x3F));
 	}
 	else {
 		theMethod = ((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
@@ -22157,7 +22156,7 @@
 			assert((((((CogMethod *) header2))->objectHeader)) == (nullHeaderForMachineCodeMethod()));
 			header1 = ((((CogMethod *) header2))->methodHeader);
 		}
-		numTemps = (((usqInt) header1) >> MethodHeaderTempCountShift) & 0x3F;
+		numTemps = ((sqInt) ((((usqInt) header1) >> MethodHeaderTempCountShift) & 0x3F));
 	}
 	if (((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
 		? ((longAt(theFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
@@ -28404,8 +28403,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -31023,7 +31022,7 @@
     sqInt arg;
     sqInt fmt;
     sqInt i;
-    sqInt length;
+    usqInt length;
     usqInt numBytes;
     usqInt numSlots;
     usqInt numSlots1;
@@ -31064,18 +31063,18 @@
 
 			/* bytes (the common case), including CompiledMethod */
 
-			length = numBytes - (fmt & 7);
+			length = ((sqInt) (numBytes - (fmt & 7)));
 			goto l1;
 		}
 		if (fmt <= 9) {
-			length = numBytes;
+			length = ((sqInt) numBytes);
 			goto l1;
 		}
 		if (fmt >= 12) {
-			length = numBytes - ((fmt & 3) << 1);
+			length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
 			goto l1;
 		}
-		length = numBytes - ((fmt & 1) << 2);
+		length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
 	l1:	/* end numBytesOf: */;
 		if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
 			 && (length == (numBytesOf(arg))))) {
@@ -31093,9 +31092,9 @@
 		flag("endianness");
 		assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 		numSlots1 = byteAt(rcvr + 7);
-		length = ((usqInt) ((numSlots1 == 0xFF
-	? longAt(rcvr - BaseHeaderSize)
-	: numSlots1)));
+		length = (numSlots1 == 0xFF
+			? longAt(rcvr - BaseHeaderSize)
+			: numSlots1);
 		if (!((isAppropriateForCopyObject(arg))
 			 && (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
 			(GIV(primFailCode) = PrimErrBadArgument);
@@ -38420,8 +38419,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -42927,7 +42926,7 @@
     sqInt ptr2;
     sqInt slotBytes;
     usqInt smallObj;
-    sqInt start;
+    usqInt start;
 
 	classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
 	if (classIndex == 0) {
@@ -45861,7 +45860,7 @@
     sqInt fmt;
     sqInt hasYoung;
     sqInt i;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -45904,7 +45903,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			newObj = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, fmt, classIndex)));
+			newObj = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, fmt, classIndex);
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -48496,36 +48495,6 @@
 }
 
 
-/*	The header format in LSB is
-	MSB:	| 8: numSlots		| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isMarked,?})
-	| 22: identityHash	| (on a word boundary)
-	| 3 bits				|	(msb <-> lsb = {isGrey,isPinned,isRemembered}
-	| 5: format			| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isImmutable,?})
-	| 22: classIndex		| (on a word boundary) : LSB
-	The remaining bits (7) are used for
-	isImmutable	(bit 23)
-	isRemembered	(bit 29)
-	isPinned		(bit 30)
-	isGrey			(bit 31)
-	isMarked		(bit 55)
-	leaving 2 unused bits, each next to a 22-bit field, allowing those fields
-	to be
-	expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
-	} is for bits that are never set in young objects. This allows the
-	remembered table to be pruned when full by using these bits as a reference
-	count of
-	newSpace objects from the remembered table. Objects with a high count
-	should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
-	return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
 /*	Answer the number of extra root slots in the root of the hidden root
 	object. 
  */
@@ -61353,7 +61322,7 @@
 bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
 {
     sqInt bridgeSpan;
-    sqInt clifton;
+    usqInt clifton;
     usqInt segEnd;
 
 	segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -73189,7 +73158,7 @@
     sqInt sp1;
     sqInt stSize;
     sqInt totalLength;
-    usqInt valueToStore;
+    sqInt valueToStore;
 
 	hdr = long64At(array);
 	fmt = (((unsigned sqLong)hdr) >> 24) & 0x1F;
@@ -74452,8 +74421,8 @@
     sqInt totalLength;
     sqInt totalLength1;
     sqInt value;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	value = longAt(GIV(stackPointer));
 	index = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -76225,7 +76194,7 @@
     sqInt rcvr;
     char *sp;
     sqInt totalLength;
-    usqInt valueToStore;
+    sqInt valueToStore;
 
 	newValue = longAt(GIV(stackPointer));
 	/* begin stackIntegerValue: */

Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2015-03-25 20:25:29 UTC (rev 3289)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
    from
-	StackInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	StackInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -753,7 +753,6 @@
 static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
 static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
 usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
 static sqInt hiddenRootSlots(void);
 sqInt identityHashHalfWordMask(void);
 static sqInt imageSegmentVersion(void);
@@ -2115,7 +2114,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1118";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1119";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -34863,36 +34862,6 @@
 }
 
 
-/*	The header format in LSB is
-	MSB:	| 8: numSlots		| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isMarked,?})
-	| 22: identityHash	| (on a word boundary)
-	| 3 bits				|	(msb <-> lsb = {isGrey,isPinned,isRemembered}
-	| 5: format			| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isImmutable,?})
-	| 22: classIndex		| (on a word boundary) : LSB
-	The remaining bits (7) are used for
-	isImmutable	(bit 23)
-	isRemembered	(bit 29)
-	isPinned		(bit 30)
-	isGrey			(bit 31)
-	isMarked		(bit 55)
-	leaving 2 unused bits, each next to a 22-bit field, allowing those fields
-	to be
-	expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
-	} is for bits that are never set in young objects. This allows the
-	remembered table to be pruned when full by using these bits as a reference
-	count of
-	newSpace objects from the remembered table. Objects with a high count
-	should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
-	return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
 /*	Answer the number of extra root slots in the root of the hidden root
 	object. 
  */

Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/nsspurstacksrc/vm/interp.c	2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
    from
-	StackInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	StackInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -750,7 +750,6 @@
 static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
 static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
 usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
 static sqInt hiddenRootSlots(void);
 sqInt identityHashHalfWordMask(void);
 static sqInt imageSegmentVersion(void);
@@ -2112,7 +2111,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1118";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1119";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -34854,36 +34853,6 @@
 }
 
 
-/*	The header format in LSB is
-	MSB:	| 8: numSlots		| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isMarked,?})
-	| 22: identityHash	| (on a word boundary)
-	| 3 bits				|	(msb <-> lsb = {isGrey,isPinned,isRemembered}
-	| 5: format			| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isImmutable,?})
-	| 22: classIndex		| (on a word boundary) : LSB
-	The remaining bits (7) are used for
-	isImmutable	(bit 23)
-	isRemembered	(bit 29)
-	isPinned		(bit 30)
-	isGrey			(bit 31)
-	isMarked		(bit 55)
-	leaving 2 unused bits, each next to a 22-bit field, allowing those fields
-	to be
-	expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
-	} is for bits that are never set in young objects. This allows the
-	remembered table to be pruned when full by using these bits as a reference
-	count of
-	newSpace objects from the remembered table. Objects with a high count
-	should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
-	return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
 /*	Answer the number of extra root slots in the root of the hidden root
 	object. 
  */


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Wed Mar 25 12:49:58 PDT 2015
   + Wed Mar 25 13:25:04 PDT 2015

Modified: branches/Cog/spursistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.c	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursistasrc/vm/cointerp.c	2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
    from
-	CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1003,7 +1003,6 @@
 static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
 static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
 usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
 static sqInt hiddenRootSlots(void);
 sqInt identityHashHalfWordMask(void);
 static sqInt imageSegmentVersion(void);
@@ -1174,7 +1173,7 @@
 static sqInt storeImageSegmentIntooutPointersroots(sqInt segmentWordArray, sqInt outPointerArray, sqInt arrayOfRoots) NoDbgRegParms;
 sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
 sqInt storePointerofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-sqInt stringForCString(const char *aCString);
+usqInt stringForCString(const char *aCString);
 static sqInt sufficientSpaceAfterGC(sqInt numBytes) NoDbgRegParms;
 static sqInt swizzleObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
 void tenuringIncrementalGC(void);
@@ -2366,7 +2365,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1118]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1119]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -14818,7 +14817,7 @@
     CogMethod *cogMethod;
     sqInt methodField;
     sqInt methodField1;
-    usqInt theIP;
+    sqInt theIP;
 
 	assertl(GIV(stackPage) == (mostRecentlyUsedPage()), ln);
 	assertl(addressIsInPage(GIV(stackPage), lifp), ln);
@@ -21678,7 +21677,7 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt currentClass;
     sqInt dictionary;
-    sqInt hash;
+    usqInt hash;
     sqInt index;
     usqInt length;
     usqInt mask;
@@ -30139,7 +30138,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			s = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex);
+			s = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex)));
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -31455,7 +31454,7 @@
     sqInt arg;
     sqInt fmt;
     sqInt i;
-    usqInt length;
+    sqInt length;
     usqInt numBytes;
     usqInt numSlots;
     usqInt numSlots1;
@@ -31496,18 +31495,18 @@
 
 			/* bytes (the common case), including CompiledMethod */
 
-			length = ((sqInt) (numBytes - (fmt & 7)));
+			length = numBytes - (fmt & 7);
 			goto l1;
 		}
 		if (fmt <= 9) {
-			length = ((sqInt) numBytes);
+			length = numBytes;
 			goto l1;
 		}
 		if (fmt >= 12) {
-			length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
+			length = numBytes - ((fmt & 3) << 1);
 			goto l1;
 		}
-		length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
+		length = numBytes - ((fmt & 1) << 2);
 	l1:	/* end numBytesOf: */;
 		if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
 			 && (length == (numBytesOf(arg))))) {
@@ -31525,9 +31524,9 @@
 		flag("endianness");
 		assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 		numSlots1 = byteAt(rcvr + 7);
-		length = (numSlots1 == 0xFF
-			? longAt(rcvr - BaseHeaderSize)
-			: numSlots1);
+		length = ((usqInt) ((numSlots1 == 0xFF
+	? longAt(rcvr - BaseHeaderSize)
+	: numSlots1)));
 		if (!((isAppropriateForCopyObject(arg))
 			 && (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
 			(GIV(primFailCode) = PrimErrBadArgument);
@@ -34018,7 +34017,7 @@
 static void
 primitiveIdentityHash(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt hash;
+    usqInt hash;
     sqInt integerVal;
     char *sp;
     sqInt thisReceiver;
@@ -35519,7 +35518,7 @@
     sqInt err;
     sqInt hash;
     sqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     sqInt numSlots;
@@ -35634,7 +35633,7 @@
     sqInt i;
     sqInt instSpec;
     sqInt literalCount;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     sqInt numSlots;
@@ -37683,9 +37682,9 @@
 primitiveSetIdentityHash(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt hash;
-    sqInt hash1;
+    usqInt hash1;
     sqInt integerPointer;
-    sqInt oldHash;
+    usqInt oldHash;
     sqInt oop;
     char *sp;
     sqInt thisReceiver;
@@ -41416,7 +41415,7 @@
     sqInt fillValue;
     sqInt hash;
     sqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -43309,7 +43308,7 @@
     sqInt entry;
     sqInt expectedIndex;
     sqInt expectedIndex1;
-    sqInt freeChunk;
+    usqInt freeChunk;
     sqInt i;
     sqInt i1;
     sqInt index;
@@ -43348,8 +43347,8 @@
     sqInt ptr1;
     sqInt ptr2;
     sqInt slotBytes;
-    sqInt smallObj;
-    sqInt start;
+    usqInt smallObj;
+    usqInt start;
 
 	classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
 	if (classIndex == 0) {
@@ -46283,7 +46282,7 @@
     sqInt fmt;
     sqInt hasYoung;
     sqInt i;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -48925,36 +48924,6 @@
 }
 
 
-/*	The header format in LSB is
-	MSB:	| 8: numSlots		| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isMarked,?})
-	| 22: identityHash	| (on a word boundary)
-	| 3 bits				|	(msb <-> lsb = {isGrey,isPinned,isRemembered}
-	| 5: format			| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isImmutable,?})
-	| 22: classIndex		| (on a word boundary) : LSB
-	The remaining bits (7) are used for
-	isImmutable	(bit 23)
-	isRemembered	(bit 29)
-	isPinned		(bit 30)
-	isGrey			(bit 31)
-	isMarked		(bit 55)
-	leaving 2 unused bits, each next to a 22-bit field, allowing those fields
-	to be
-	expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
-	} is for bits that are never set in young objects. This allows the
-	remembered table to be pruned when full by using these bits as a reference
-	count of
-	newSpace objects from the remembered table. Objects with a high count
-	should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
-	return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
 /*	Answer the number of extra root slots in the root of the hidden root
 	object. 
  */
@@ -57446,13 +57415,13 @@
     sqInt obj21;
     sqInt pigBytes;
     usqInt prevFree;
-    usqInt prevFreeChunk;
+    sqInt prevFreeChunk;
     usqInt prevPrevFree;
-    usqInt prevPrevFreeChunk;
+    sqInt prevPrevFreeChunk;
     sqInt slotBytes;
     sqInt slotBytes1;
     usqInt there;
-    usqInt thisFreeChunk;
+    sqInt thisFreeChunk;
     sqInt usedChunk;
     sqInt valuePointer;
     sqInt valuePointer1;
@@ -60617,8 +60586,8 @@
     sqInt prevPrevObj;
     sqInt prevPrevObj1;
     sqInt ptr;
-    sqInt savedInHashes;
-    sqInt savedOutHashes;
+    usqInt savedInHashes;
+    usqInt savedOutHashes;
     sqInt segAddr;
     sqInt segStart;
     sqInt slotBytes;
@@ -61085,13 +61054,13 @@
 /*	Answer a new String copied from a null-terminated C string,
 	or nil if out of memory. */
 
-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;
 
@@ -62007,7 +61976,7 @@
     sqInt largeChild;
     sqInt newEndOfMemory;
     sqInt next;
-    sqInt node;
+    usqInt node;
     SpurSegmentInfo *seg;
     sqInt smallChild;
     sqInt treeNode;
@@ -62318,7 +62287,7 @@
     usqLong firstSavedBridgeWord;
     sqInt nWritten;
     usqInt pier1;
-    sqInt pier2;
+    usqInt pier2;
     usqLong secondSavedBridgeWord;
 
 	pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);
@@ -67000,7 +66969,7 @@
     sqInt currentClass;
     sqInt dictionary;
     sqInt found;
-    sqInt hash;
+    usqInt hash;
     sqInt index;
     usqInt length;
     usqInt mask;
@@ -67176,7 +67145,7 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt currentClass;
     sqInt dictionary;
-    sqInt hash;
+    usqInt hash;
     sqInt index;
     sqInt index1;
     usqInt length;
@@ -67343,7 +67312,7 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt currentClass;
     sqInt dictionary;
-    sqInt hash;
+    usqInt hash;
     sqInt index;
     usqInt length;
     usqInt mask;

Modified: branches/Cog/spursistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.h	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursistasrc/vm/cointerp.h	2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
 
 
@@ -176,7 +176,6 @@
 sqInt formatShift(void);
 sqInt freeObject(sqInt objOop);
 usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
 sqInt identityHashHalfWordMask(void);
 sqInt indexablePointersFormat(void);
 void inOrderPrintFreeTreeprintList(sqInt freeChunk, sqInt printNextList);
@@ -252,7 +251,7 @@
 sqInt splObj(sqInt index);
 usqInt storeCheckBoundary(void);
 sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-sqInt stringForCString(const char *aCString);
+usqInt stringForCString(const char *aCString);
 void tenuringIncrementalGC(void);
 sqInt topRemappableOop(void);
 sqInt validFreeTree(void);

Modified: branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/gcc3x-cointerp.c	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursistasrc/vm/gcc3x-cointerp.c	2015-03-25 20:25:29 UTC (rev 3289)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
    from
-	CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1006,7 +1006,6 @@
 static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
 static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
 usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
 static sqInt hiddenRootSlots(void);
 sqInt identityHashHalfWordMask(void);
 static sqInt imageSegmentVersion(void);
@@ -1177,7 +1176,7 @@
 static sqInt storeImageSegmentIntooutPointersroots(sqInt segmentWordArray, sqInt outPointerArray, sqInt arrayOfRoots) NoDbgRegParms;
 sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
 sqInt storePointerofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-sqInt stringForCString(const char *aCString);
+usqInt stringForCString(const char *aCString);
 static sqInt sufficientSpaceAfterGC(sqInt numBytes) NoDbgRegParms;
 static sqInt swizzleObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
 void tenuringIncrementalGC(void);
@@ -2369,7 +2368,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1118]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1119]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -14827,7 +14826,7 @@
     CogMethod *cogMethod;
     sqInt methodField;
     sqInt methodField1;
-    usqInt theIP;
+    sqInt theIP;
 
 	assertl(GIV(stackPage) == (mostRecentlyUsedPage()), ln);
 	assertl(addressIsInPage(GIV(stackPage), lifp), ln);
@@ -21687,7 +21686,7 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt currentClass;
     sqInt dictionary;
-    sqInt hash;
+    usqInt hash;
     sqInt index;
     usqInt length;
     usqInt mask;
@@ -30148,7 +30147,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			s = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex);
+			s = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex)));
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -31464,7 +31463,7 @@
     sqInt arg;
     sqInt fmt;
     sqInt i;
-    usqInt length;
+    sqInt length;
     usqInt numBytes;
     usqInt numSlots;
     usqInt numSlots1;
@@ -31505,18 +31504,18 @@
 
 			/* bytes (the common case), including CompiledMethod */
 
-			length = ((sqInt) (numBytes - (fmt & 7)));
+			length = numBytes - (fmt & 7);
 			goto l1;
 		}
 		if (fmt <= 9) {
-			length = ((sqInt) numBytes);
+			length = numBytes;
 			goto l1;
 		}
 		if (fmt >= 12) {
-			length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
+			length = numBytes - ((fmt & 3) << 1);
 			goto l1;
 		}
-		length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
+		length = numBytes - ((fmt & 1) << 2);
 	l1:	/* end numBytesOf: */;
 		if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
 			 && (length == (numBytesOf(arg))))) {
@@ -31534,9 +31533,9 @@
 		flag("endianness");
 		assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 		numSlots1 = byteAt(rcvr + 7);
-		length = (numSlots1 == 0xFF
-			? longAt(rcvr - BaseHeaderSize)
-			: numSlots1);
+		length = ((usqInt) ((numSlots1 == 0xFF
+	? longAt(rcvr - BaseHeaderSize)
+	: numSlots1)));
 		if (!((isAppropriateForCopyObject(arg))
 			 && (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
 			(GIV(primFailCode) = PrimErrBadArgument);
@@ -34027,7 +34026,7 @@
 static void
 primitiveIdentityHash(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt hash;
+    usqInt hash;
     sqInt integerVal;
     char *sp;
     sqInt thisReceiver;
@@ -35528,7 +35527,7 @@
     sqInt err;
     sqInt hash;
     sqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     sqInt numSlots;
@@ -35643,7 +35642,7 @@
     sqInt i;
     sqInt instSpec;
     sqInt literalCount;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     sqInt numSlots;
@@ -37692,9 +37691,9 @@
 primitiveSetIdentityHash(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt hash;
-    sqInt hash1;
+    usqInt hash1;
     sqInt integerPointer;
-    sqInt oldHash;
+    usqInt oldHash;
     sqInt oop;
     char *sp;
     sqInt thisReceiver;
@@ -41425,7 +41424,7 @@
     sqInt fillValue;
     sqInt hash;
     sqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -43318,7 +43317,7 @@
     sqInt entry;
     sqInt expectedIndex;
     sqInt expectedIndex1;
-    sqInt freeChunk;
+    usqInt freeChunk;
     sqInt i;
     sqInt i1;
     sqInt index;
@@ -43357,8 +43356,8 @@
     sqInt ptr1;
     sqInt ptr2;
     sqInt slotBytes;
-    sqInt smallObj;
-    sqInt start;
+    usqInt smallObj;
+    usqInt start;
 
 	classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
 	if (classIndex == 0) {
@@ -46292,7 +46291,7 @@
     sqInt fmt;
     sqInt hasYoung;
     sqInt i;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -48934,36 +48933,6 @@
 }
 
 
-/*	The header format in LSB is
-	MSB:	| 8: numSlots		| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isMarked,?})
-	| 22: identityHash	| (on a word boundary)
-	| 3 bits				|	(msb <-> lsb = {isGrey,isPinned,isRemembered}
-	| 5: format			| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isImmutable,?})
-	| 22: classIndex		| (on a word boundary) : LSB
-	The remaining bits (7) are used for
-	isImmutable	(bit 23)
-	isRemembered	(bit 29)
-	isPinned		(bit 30)
-	isGrey			(bit 31)
-	isMarked		(bit 55)
-	leaving 2 unused bits, each next to a 22-bit field, allowing those fields
-	to be
-	expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
-	} is for bits that are never set in young objects. This allows the
-	remembered table to be pruned when full by using these bits as a reference
-	count of
-	newSpace objects from the remembered table. Objects with a high count
-	should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
-	return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
 /*	Answer the number of extra root slots in the root of the hidden root
 	object. 
  */
@@ -57455,13 +57424,13 @@
     sqInt obj21;
     sqInt pigBytes;
     usqInt prevFree;
-    usqInt prevFreeChunk;
+    sqInt prevFreeChunk;
     usqInt prevPrevFree;
-    usqInt prevPrevFreeChunk;
+    sqInt prevPrevFreeChunk;
     sqInt slotBytes;
     sqInt slotBytes1;
     usqInt there;
-    usqInt thisFreeChunk;
+    sqInt thisFreeChunk;
     sqInt usedChunk;
     sqInt valuePointer;
     sqInt valuePointer1;
@@ -60626,8 +60595,8 @@
     sqInt prevPrevObj;
     sqInt prevPrevObj1;
     sqInt ptr;
-    sqInt savedInHashes;
-    sqInt savedOutHashes;
+    usqInt savedInHashes;
+    usqInt savedOutHashes;
     sqInt segAddr;
     sqInt segStart;
     sqInt slotBytes;
@@ -61094,13 +61063,13 @@
 /*	Answer a new String copied from a null-terminated C string,
 	or nil if out of memory. */
 
-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;
 
@@ -62016,7 +61985,7 @@
     sqInt largeChild;
     sqInt newEndOfMemory;
     sqInt next;
-    sqInt node;
+    usqInt node;
     SpurSegmentInfo *seg;
     sqInt smallChild;
     sqInt treeNode;
@@ -62327,7 +62296,7 @@
     usqLong firstSavedBridgeWord;
     sqInt nWritten;
     usqInt pier1;
-    sqInt pier2;
+    usqInt pier2;
     usqLong secondSavedBridgeWord;
 
 	pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);
@@ -67009,7 +66978,7 @@
     sqInt currentClass;
     sqInt dictionary;
     sqInt found;
-    sqInt hash;
+    usqInt hash;
     sqInt index;
     usqInt length;
     usqInt mask;
@@ -67185,7 +67154,7 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt currentClass;
     sqInt dictionary;
-    sqInt hash;
+    usqInt hash;
     sqInt index;
     sqInt index1;
     usqInt length;
@@ -67352,7 +67321,7 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt currentClass;
     sqInt dictionary;
-    sqInt hash;
+    usqInt hash;
     sqInt index;
     usqInt length;
     usqInt mask;

Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursrc/vm/cointerp.c	2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
    from
-	CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -995,7 +995,6 @@
 static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
 static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
 usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
 static sqInt hiddenRootSlots(void);
 sqInt identityHashHalfWordMask(void);
 static sqInt imageSegmentVersion(void);
@@ -2355,7 +2354,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1118]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1119]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -24034,8 +24033,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    sqInt valueToStore;
-    sqInt valueToStore1;
+    usqInt valueToStore;
+    usqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -34031,8 +34030,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    sqInt valueToStore;
-    sqInt valueToStore1;
+    usqInt valueToStore;
+    usqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -44107,36 +44106,6 @@
 }
 
 
-/*	The header format in LSB is
-	MSB:	| 8: numSlots		| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isMarked,?})
-	| 22: identityHash	| (on a word boundary)
-	| 3 bits				|	(msb <-> lsb = {isGrey,isPinned,isRemembered}
-	| 5: format			| (on a byte boundary)
-	| 2 bits				|	(msb,lsb = {isImmutable,?})
-	| 22: classIndex		| (on a word boundary) : LSB
-	The remaining bits (7) are used for
-	isImmutable	(bit 23)
-	isRemembered	(bit 29)
-	isPinned		(bit 30)
-	isGrey			(bit 31)
-	isMarked		(bit 55)
-	leaving 2 unused bits, each next to a 22-bit field, allowing those fields
-	to be
-	expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
-	} is for bits that are never set in young objects. This allows the
-	remembered table to be pruned when full by using these bits as a reference
-	count of
-	newSpace objects from the remembered table. Objects with a high count
-	should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
-	return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
 /*	Answer the number of extra root slots in the root of the hidden root
 	object. 
  */
@@ -57491,7 +57460,7 @@
     usqLong firstSavedBridgeWord;
     sqInt nWritten;
     usqInt pier1;
-    sqInt pier2;
+    usqInt pier2;
     usqLong secondSavedBridgeWord;
 
 	pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);
@@ -68694,7 +68663,7 @@
     sqInt sp1;
     sqInt stSize;
     sqInt totalLength;
-    sqInt valueToStore;
+    usqInt valueToStore;
 
 	hdr = long64At(array);
 	fmt = (((unsigned sqLong)hdr) >> 24) & 0x1F;
@@ -69957,8 +69926,8 @@
     sqInt totalLength;
     sqInt totalLength1;
     sqInt value;
-    sqInt valueToStore;
-    sqInt valueToStore1;
+    usqInt valueToStore;
+    usqInt valueToStore1;
 
 	value = longAt(GIV(stackPointer));
 	index = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -71730,7 +71699,7 @@
     sqInt rcvr;
     char *sp;
     sqInt totalLength;
-    sqInt valueToStore;
+    usqInt valueToStore;
 
 	newValue = longAt(GIV(stackPointer));
 	/* begin stackIntegerValue: */
@@ -71965,7 +71934,7 @@
     sqInt header1;
     sqInt i;
     sqInt methodHeader;
-    usqInt numSlots;
+    sqInt numSlots;
     usqInt numSlots1;
     sqInt rcvr;
     char *sp;
@@ -72021,9 +71990,9 @@
 			flag("endianness");
 			assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 			numSlots1 = byteAt(rcvr + 7);
-			numSlots = (numSlots1 == 0xFF
-				? longAt(rcvr - BaseHeaderSize)
-				: numSlots1);
+			numSlots = ((usqInt) ((numSlots1 == 0xFF
+	? longAt(rcvr - BaseHeaderSize)
+	: numSlots1)));
 		}
 	}
 	else {

Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursrc/vm/cointerp.h	2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
 
 
@@ -174,7 +174,6 @@
 sqInt formatShift(void);
 sqInt freeObject(sqInt objOop);
 usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
 sqInt identityHashHalfWordMask(void);
 sqInt indexablePointersFormat(void);
 void inOrderPrintFreeTreeprintList(sqInt freeChunk, sqInt printNextList);

Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c	2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c	2015-03-25 20:25:29 UTC (rev 3289)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
    from
-	CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+	CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list