[Vm-dev] [commit][3739] CogVM source as per VMMaker.oscog-eem.1885

commits at squeakvm.org commits at squeakvm.org
Tue Jun 7 22:35:58 UTC 2016


Revision: 3739
Author:   eliot
Date:     2016-06-07 15:35:56 -0700 (Tue, 07 Jun 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1885

Fix multiple bytecode set selection in the Spur 64-bit VM, which must use
signedIntFromLong64 to test for a negative header.

Modified Paths:
--------------
    branches/Cog/nsspur64src/vm/cogit.h
    branches/Cog/nsspur64src/vm/cogitX64.c
    branches/Cog/nsspur64src/vm/cointerp.c
    branches/Cog/nsspur64src/vm/cointerp.h
    branches/Cog/nsspur64src/vm/gcc3x-cointerp.c
    branches/Cog/nsspursrc/vm/cogit.h
    branches/Cog/nsspursrc/vm/cogitARMv5.c
    branches/Cog/nsspursrc/vm/cogitIA32.c
    branches/Cog/nsspursrc/vm/cogitMIPSEL.c
    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/spur64src/vm/cogit.h
    branches/Cog/spur64src/vm/cogitX64.c
    branches/Cog/spur64src/vm/cointerp.c
    branches/Cog/spur64src/vm/cointerp.h
    branches/Cog/spur64src/vm/gcc3x-cointerp.c
    branches/Cog/spursistasrc/vm/cogit.h
    branches/Cog/spursistasrc/vm/cogitARMv5.c
    branches/Cog/spursistasrc/vm/cogitIA32.c
    branches/Cog/spursistasrc/vm/cogitMIPSEL.c
    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/cogitARMv5.c
    branches/Cog/spursrc/vm/cogitIA32.c
    branches/Cog/spursrc/vm/cogitMIPSEL.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
    branches/Cog/src/vm/cogit.h
    branches/Cog/src/vm/cogitARMv5.c
    branches/Cog/src/vm/cogitIA32.c
    branches/Cog/src/vm/cogitMIPSEL.c
    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

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

Modified: branches/Cog/nsspur64src/vm/cogit.h
===================================================================
--- branches/Cog/nsspur64src/vm/cogit.h	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspur64src/vm/cogit.h	2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
 
 

Modified: branches/Cog/nsspur64src/vm/cogitX64.c
===================================================================
--- branches/Cog/nsspur64src/vm/cogitX64.c	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspur64src/vm/cogitX64.c	2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -602,7 +602,7 @@
 static AbstractInstruction * NoDbgRegParms gMoveCwR(sqInt wordConstant, sqInt reg);
 static AbstractInstruction * NoDbgRegParms gMoveRMwr(sqInt sourceReg, sqInt offset, sqInt baseReg);
 static AbstractInstruction * NoDbgRegParms gMoveRR(sqInt reg1, sqInt reg2);
-static usqInt NoDbgRegParms mapEndFor(CogMethod *cogMethod);
+static sqInt NoDbgRegParms mapEndFor(CogMethod *cogMethod);
 static sqInt NoDbgRegParms mapForperformUntilarg(CogMethod *cogMethod, sqInt (*functionSymbol)(sqInt annotation, char *mcpc, sqInt arg), sqInt arg);
 static sqInt NoDbgRegParms mapObjectReferencesInClosedPIC(CogMethod *cPIC);
 static void mapObjectReferencesInGeneratedRuntime(void);
@@ -2799,7 +2799,7 @@
     sqInt byte;
     BytecodeDescriptor *descriptor;
     sqInt distance;
-    sqInt endbcpc;
+    usqInt endbcpc;
     CogMethod *homeMethod;
     sqInt isBackwardBranch;
     sqInt isInBlock;
@@ -5954,12 +5954,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    sqInt delta;
+    usqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    sqInt location;
-    sqInt mapEntry;
+    usqInt location;
+    usqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 
@@ -7175,7 +7175,7 @@
 /*	Answer the address of the null byte at the end of the method map. */
 
 	/* Cogit>>#mapEndFor: */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
 mapEndFor(CogMethod *cogMethod)
 {
     usqInt end;
@@ -8237,7 +8237,7 @@
     sqInt byte;
     BytecodeDescriptor *descriptor;
     sqInt distance;
-    sqInt endbcpc;
+    usqInt endbcpc;
     CogMethod *homeMethod;
     sqInt isBackwardBranch;
     sqInt isInBlock;
@@ -23169,7 +23169,7 @@
     CogBlockMethod *cogMethod1;
     BytecodeDescriptor *descriptor;
     sqInt distance;
-    sqInt endbcpc;
+    usqInt endbcpc;
     sqInt errCode;
     CogMethod *homeMethod;
     sqInt isBackwardBranch;

Modified: branches/Cog/nsspur64src/vm/cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.c	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspur64src/vm/cointerp.c	2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
    from
-	CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -892,6 +892,7 @@
 static sqInt NoDbgRegParms fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop);
 extern sqInt floatObjectOf(double aFloat);
 extern double floatValueOf(sqInt oop);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 static sqInt NoDbgRegParms initFreeChunkWithBytesat(usqLong numBytes, sqInt address);
 static void NoDbgRegParms initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address);
 extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
@@ -1383,7 +1384,6 @@
 static sqInt NoDbgRegParms handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
 static void handleStackOverflow(void);
 static sqInt NoDbgRegParms handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 extern usqInt highBit(usqInt anUnsignedValue);
 static sqInt NoDbgRegParms ifCurrentStackPageHasValidHeadPointers(StackPage *thePage);
 static usqInt NoDbgRegParms iframeMethod(char *theFP);
@@ -2452,7 +2452,7 @@
 	};
 sqInt checkedPluginName;
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1883";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1885";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -6038,7 +6038,7 @@
 						GIV(method) = GIV(newMethod);
 						assert(isOopCompiledMethod(GIV(method)));
 						assert((methodHeaderOf(GIV(method))) == methodHeader);
-						GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+						GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 							? 256
 							: 0);
 
@@ -6064,7 +6064,7 @@
 							   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 							localIP += 3;
 							if (GIV(primFailCode) != 0) {
-								if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+								if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
 																		? AltLongStoreBytecode
 																		: LongStoreBytecode))) {
 									/* begin getErrorObjectFromPrimFailCode */
@@ -13047,7 +13047,7 @@
 					GIV(method) = GIV(newMethod);
 					assert(isOopCompiledMethod(GIV(method)));
 					assert((methodHeaderOf(GIV(method))) == methodHeader);
-					GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+					GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 						? 256
 						: 0);
 
@@ -13073,7 +13073,7 @@
 						   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 						localIP += 3;
 						if (GIV(primFailCode) != 0) {
-							if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+							if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
 																? AltLongStoreBytecode
 																: LongStoreBytecode))) {
 								/* begin getErrorObjectFromPrimFailCode */
@@ -13407,7 +13407,7 @@
 					GIV(method) = GIV(newMethod);
 					assert(isOopCompiledMethod(GIV(method)));
 					assert((methodHeaderOf(GIV(method))) == methodHeader);
-					GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+					GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 						? 256
 						: 0);
 
@@ -13433,7 +13433,7 @@
 						   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 						localIP += 3;
 						if (GIV(primFailCode) != 0) {
-							if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+							if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
 																? AltLongStoreBytecode
 																: LongStoreBytecode))) {
 								/* begin getErrorObjectFromPrimFailCode */
@@ -13873,7 +13873,7 @@
 					GIV(method) = GIV(newMethod);
 					assert(isOopCompiledMethod(GIV(method)));
 					assert((methodHeaderOf(GIV(method))) == methodHeader);
-					GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+					GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 						? 256
 						: 0);
 
@@ -13899,7 +13899,7 @@
 						   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 						localIP += 3;
 						if (GIV(primFailCode) != 0) {
-							if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+							if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
 																? AltLongStoreBytecode
 																: LongStoreBytecode))) {
 								/* begin getErrorObjectFromPrimFailCode */
@@ -14341,7 +14341,7 @@
 					GIV(method) = GIV(newMethod);
 					assert(isOopCompiledMethod(GIV(method)));
 					assert((methodHeaderOf(GIV(method))) == methodHeader);
-					GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+					GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 						? 256
 						: 0);
 
@@ -14367,7 +14367,7 @@
 						   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 						localIP += 3;
 						if (GIV(primFailCode) != 0) {
-							if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+							if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
 																? AltLongStoreBytecode
 																: LongStoreBytecode))) {
 								/* begin getErrorObjectFromPrimFailCode */
@@ -14753,7 +14753,7 @@
 		/* Store the error code if the method starts with a long store temp.  No instructionPointer skip because we're heading for machine code. */
 		initialPC = ((GIV(newMethod) + ((LiteralStart + (literalCountOfMethodHeader(methodHeader))) * BytesPerOop)) + BaseHeaderSize) + (3);
 		if (GIV(primFailCode) != 0) {
-			if ((byteAt(initialPC)) == (((((int) methodHeader)) < 0
+			if ((byteAt(initialPC)) == (((((sqLong) methodHeader)) < 0
 								? AltLongStoreBytecode
 								: LongStoreBytecode))) {
 				/* begin getErrorObjectFromPrimFailCode */
@@ -14848,7 +14848,7 @@
 	GIV(method) = GIV(newMethod);
 	assert(isOopCompiledMethod(GIV(method)));
 	assert((methodHeaderOf(GIV(method))) == methodHeader);
-	GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+	GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 		? 256
 		: 0);
 
@@ -14879,7 +14879,7 @@
 		   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 		GIV(instructionPointer) += 3;
 		if (GIV(primFailCode) != 0) {
-			if ((byteAt(GIV(instructionPointer) + 1)) == (((((int) methodHeader)) < 0
+			if ((byteAt(GIV(instructionPointer) + 1)) == (((((sqLong) methodHeader)) < 0
 								? AltLongStoreBytecode
 								: LongStoreBytecode))) {
 				/* begin getErrorObjectFromPrimFailCode */
@@ -17629,7 +17629,7 @@
     sqInt i;
     sqInt methodField;
     sqInt ok;
-    usqInt oop;
+    sqInt oop;
     char *theFP;
     StackPage *thePage;
     char *theSP;
@@ -23700,7 +23700,7 @@
     usqInt index;
     sqInt methodField;
     usqInt numArgs;
-    usqInt numTemps;
+    sqInt numTemps;
     char *rcvrAddress;
     sqInt rcvrOrClosure;
     sqInt theMethod;
@@ -24951,7 +24951,7 @@
 		GIV(method) = GIV(newMethod);
 		assert(isOopCompiledMethod(GIV(method)));
 		assert((methodHeaderOf(GIV(method))) == methodHeader1);
-		GIV(bytecodeSetSelector) = ((((int) methodHeader1)) < 0
+		GIV(bytecodeSetSelector) = ((((sqLong) methodHeader1)) < 0
 			? 256
 			: 0);
 
@@ -24986,7 +24986,7 @@
 			GIV(instructionPointer) = initialIP;
 		}
 		if (GIV(primFailCode) != 0) {
-			if ((byteAt(initialIP + 1)) == (((((int) methodHeader1)) < 0
+			if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader1)) < 0
 								? AltLongStoreBytecode
 								: LongStoreBytecode))) {
 				/* begin getErrorObjectFromPrimFailCode */
@@ -25179,7 +25179,7 @@
 		GIV(method) = GIV(newMethod);
 		assert(isOopCompiledMethod(GIV(method)));
 		assert((methodHeaderOf(GIV(method))) == methodHeader1);
-		GIV(bytecodeSetSelector) = ((((int) methodHeader1)) < 0
+		GIV(bytecodeSetSelector) = ((((sqLong) methodHeader1)) < 0
 			? 256
 			: 0);
 
@@ -25214,7 +25214,7 @@
 			GIV(instructionPointer) = initialIP;
 		}
 		if (GIV(primFailCode) != 0) {
-			if ((byteAt(initialIP + 1)) == (((((int) methodHeader1)) < 0
+			if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader1)) < 0
 								? AltLongStoreBytecode
 								: LongStoreBytecode))) {
 				/* begin getErrorObjectFromPrimFailCode */
@@ -31031,7 +31031,7 @@
 	GIV(method) = theMethod;
 	assert(isOopCompiledMethod(GIV(method)));
 	assert((methodHeaderOf(GIV(method))) == methodHeader);
-	GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+	GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 		? 256
 		: 0);
 
@@ -31288,7 +31288,7 @@
 	GIV(method) = theMethod;
 	assert(isOopCompiledMethod(GIV(method)));
 	assert((methodHeaderOf(GIV(method))) == methodHeader);
-	GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+	GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 		? 256
 		: 0);
 
@@ -31578,7 +31578,7 @@
 	GIV(method) = theMethod;
 	assert(isOopCompiledMethod(GIV(method)));
 	assert((methodHeaderOf(GIV(method))) == methodHeader);
-	GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+	GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 		? 256
 		: 0);
 
@@ -42965,6 +42965,16 @@
 }
 
 
+/*	A negative header selects the alternate bytecode set. */
+
+	/* Spur64BitMemoryManager>>#headerIndicatesAlternateBytecodeSet: */
+sqInt
+headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
+{
+	return (((sqLong) methodHeader)) < 0;
+}
+
+
 /*	must have room for a header (single or double) plus the next free pointer */
 
 	/* Spur64BitMemoryManager>>#initFreeChunkWithBytes:at: */
@@ -67496,7 +67506,7 @@
 static void
 postSnapshot(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    usqInt address;
+    sqInt address;
     sqInt bytes;
     usqInt freeChunk;
     sqInt i;
@@ -71885,16 +71895,6 @@
 }
 
 
-/*	A negative header selects the alternate bytecode set. */
-
-	/* StackInterpreter>>#headerIndicatesAlternateBytecodeSet: */
-sqInt
-headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
-{
-	return (((int) methodHeader)) < 0;
-}
-
-
 /*	This is a C implementation needed by ioSetMaxExtSemTableSize
 	and e.g. stackPageByteSize. */
 
@@ -72872,7 +72872,7 @@
 sqInt
 longStoreBytecodeForHeader(sqInt methodHeader)
 {
-	return ((((int) methodHeader)) < 0
+	return ((((sqLong) methodHeader)) < 0
 				? AltLongStoreBytecode
 				: LongStoreBytecode);
 }
@@ -74967,7 +74967,7 @@
 		assert((((((CogMethod *) header))->objectHeader)) == (nullHeaderForMachineCodeMethod()));
 		methodHeader = ((((CogMethod *) header))->methodHeader);
 	}
-	return (((int) methodHeader)) < 0;
+	return (((sqLong) methodHeader)) < 0;
 }
 
 
@@ -75304,12 +75304,12 @@
 }
 
 
-/*	Note: With the Squeak V0 format we now have 10 bits of primitive index,
-	but they are in
-	two places for temporary backward compatibility. The time to unpack is
+/*	Note: With the Squeak V3 format we now have 10 bits of primitive index,
+	but they are
+	in two places for temporary backward compatibility. The time to unpack is
 	negligible, since the derived primitive function pointer is stored in the
-	method cache. With the new
-	format we assume a 3-byte CallPrimitive with a little-endian 16-bit
+	method cache. With the
+	Spur format we assume a 3-byte CallPrimitive with a little-endian 16-bit
 	primitive index. */
 
 	/* StackInterpreter>>#primitiveIndexOfMethod:header: */
@@ -78490,7 +78490,7 @@
 static sqInt
 retryPrimitiveOnFailure(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    signed char accessorDepth;
+    sqInt accessorDepth;
     sqInt canRetry;
     sqInt firstBytecode;
     sqInt followDone;
@@ -79581,7 +79581,7 @@
 			GIV(method) = GIV(newMethod);
 			assert(isOopCompiledMethod(GIV(method)));
 			assert((methodHeaderOf(GIV(method))) == methodHeader);
-			GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+			GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 				? 256
 				: 0);
 
@@ -79616,7 +79616,7 @@
 				GIV(instructionPointer) = initialIP;
 			}
 			if (GIV(primFailCode) != 0) {
-				if ((byteAt(initialIP + 1)) == (((((int) methodHeader)) < 0
+				if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader)) < 0
 										? AltLongStoreBytecode
 										: LongStoreBytecode))) {
 					/* begin getErrorObjectFromPrimFailCode */

Modified: branches/Cog/nsspur64src/vm/cointerp.h
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.h	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspur64src/vm/cointerp.h	2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
 
 
@@ -132,6 +132,7 @@
 extern usqInt specialObjectsArrayAddress(void);
 extern sqInt withoutForwardingOnandwithsendToCogit(sqInt obj1, sqInt obj2, sqInt aBool, sqInt (*selector)(sqInt,sqInt,sqInt));
 extern sqInt byteSwapped(sqInt w);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
 extern sqInt isIntegerValue(sqInt intValue);
 extern sqInt isMarked(sqInt objOop);
@@ -272,7 +273,6 @@
 extern void (*functionPointerForinClass(sqInt primIdx,sqInt theClass))(void) ;
 extern usqLong getNextWakeupUsecs(void);
 extern sqInt * getStackPointer(void);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 extern usqInt highBit(usqInt anUnsignedValue);
 extern sqInt isFloatObject(sqInt oop);
 extern sqInt isKindOfInteger(sqInt oop);

Modified: branches/Cog/nsspur64src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/gcc3x-cointerp.c	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspur64src/vm/gcc3x-cointerp.c	2016-06-07 22:35:56 UTC (rev 3739)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
    from
-	CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -895,6 +895,7 @@
 static sqInt NoDbgRegParms fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop);
 extern sqInt floatObjectOf(double aFloat);
 extern double floatValueOf(sqInt oop);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 static sqInt NoDbgRegParms initFreeChunkWithBytesat(usqLong numBytes, sqInt address);
 static void NoDbgRegParms initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address);
 extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
@@ -1386,7 +1387,6 @@
 static sqInt NoDbgRegParms handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
 static void handleStackOverflow(void);
 static sqInt NoDbgRegParms handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 extern usqInt highBit(usqInt anUnsignedValue);
 static sqInt NoDbgRegParms ifCurrentStackPageHasValidHeadPointers(StackPage *thePage);
 static usqInt NoDbgRegParms iframeMethod(char *theFP);
@@ -2455,7 +2455,7 @@
 	};
 sqInt checkedPluginName;
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1883";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1885";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -6047,7 +6047,7 @@
 						GIV(method) = GIV(newMethod);
 						assert(isOopCompiledMethod(GIV(method)));
 						assert((methodHeaderOf(GIV(method))) == methodHeader);
-						GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+						GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 							? 256
 							: 0);
 
@@ -6073,7 +6073,7 @@
 							   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 							localIP += 3;
 							if (GIV(primFailCode) != 0) {
-								if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+								if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
 																		? AltLongStoreBytecode
 																		: LongStoreBytecode))) {
 									/* begin getErrorObjectFromPrimFailCode */
@@ -13056,7 +13056,7 @@
 					GIV(method) = GIV(newMethod);
 					assert(isOopCompiledMethod(GIV(method)));
 					assert((methodHeaderOf(GIV(method))) == methodHeader);
-					GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+					GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 						? 256
 						: 0);
 
@@ -13082,7 +13082,7 @@
 						   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 						localIP += 3;
 						if (GIV(primFailCode) != 0) {
-							if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+							if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
 																? AltLongStoreBytecode
 																: LongStoreBytecode))) {
 								/* begin getErrorObjectFromPrimFailCode */
@@ -13416,7 +13416,7 @@
 					GIV(method) = GIV(newMethod);
 					assert(isOopCompiledMethod(GIV(method)));
 					assert((methodHeaderOf(GIV(method))) == methodHeader);
-					GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+					GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 						? 256
 						: 0);
 
@@ -13442,7 +13442,7 @@
 						   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 						localIP += 3;
 						if (GIV(primFailCode) != 0) {
-							if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+							if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
 																? AltLongStoreBytecode
 																: LongStoreBytecode))) {
 								/* begin getErrorObjectFromPrimFailCode */
@@ -13882,7 +13882,7 @@
 					GIV(method) = GIV(newMethod);
 					assert(isOopCompiledMethod(GIV(method)));
 					assert((methodHeaderOf(GIV(method))) == methodHeader);
-					GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+					GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 						? 256
 						: 0);
 
@@ -13908,7 +13908,7 @@
 						   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 						localIP += 3;
 						if (GIV(primFailCode) != 0) {
-							if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+							if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
 																? AltLongStoreBytecode
 																: LongStoreBytecode))) {
 								/* begin getErrorObjectFromPrimFailCode */
@@ -14350,7 +14350,7 @@
 					GIV(method) = GIV(newMethod);
 					assert(isOopCompiledMethod(GIV(method)));
 					assert((methodHeaderOf(GIV(method))) == methodHeader);
-					GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+					GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 						? 256
 						: 0);
 
@@ -14376,7 +14376,7 @@
 						   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 						localIP += 3;
 						if (GIV(primFailCode) != 0) {
-							if ((byteAt(localIP + 1)) == (((((int) methodHeader)) < 0
+							if ((byteAt(localIP + 1)) == (((((sqLong) methodHeader)) < 0
 																? AltLongStoreBytecode
 																: LongStoreBytecode))) {
 								/* begin getErrorObjectFromPrimFailCode */
@@ -14762,7 +14762,7 @@
 		/* Store the error code if the method starts with a long store temp.  No instructionPointer skip because we're heading for machine code. */
 		initialPC = ((GIV(newMethod) + ((LiteralStart + (literalCountOfMethodHeader(methodHeader))) * BytesPerOop)) + BaseHeaderSize) + (3);
 		if (GIV(primFailCode) != 0) {
-			if ((byteAt(initialPC)) == (((((int) methodHeader)) < 0
+			if ((byteAt(initialPC)) == (((((sqLong) methodHeader)) < 0
 								? AltLongStoreBytecode
 								: LongStoreBytecode))) {
 				/* begin getErrorObjectFromPrimFailCode */
@@ -14857,7 +14857,7 @@
 	GIV(method) = GIV(newMethod);
 	assert(isOopCompiledMethod(GIV(method)));
 	assert((methodHeaderOf(GIV(method))) == methodHeader);
-	GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+	GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 		? 256
 		: 0);
 
@@ -14888,7 +14888,7 @@
 		   with a long store temp.  Strictly no need to skip the store because it's effectively a noop. */
 		GIV(instructionPointer) += 3;
 		if (GIV(primFailCode) != 0) {
-			if ((byteAt(GIV(instructionPointer) + 1)) == (((((int) methodHeader)) < 0
+			if ((byteAt(GIV(instructionPointer) + 1)) == (((((sqLong) methodHeader)) < 0
 								? AltLongStoreBytecode
 								: LongStoreBytecode))) {
 				/* begin getErrorObjectFromPrimFailCode */
@@ -17638,7 +17638,7 @@
     sqInt i;
     sqInt methodField;
     sqInt ok;
-    usqInt oop;
+    sqInt oop;
     char *theFP;
     StackPage *thePage;
     char *theSP;
@@ -23709,7 +23709,7 @@
     usqInt index;
     sqInt methodField;
     usqInt numArgs;
-    usqInt numTemps;
+    sqInt numTemps;
     char *rcvrAddress;
     sqInt rcvrOrClosure;
     sqInt theMethod;
@@ -24960,7 +24960,7 @@
 		GIV(method) = GIV(newMethod);
 		assert(isOopCompiledMethod(GIV(method)));
 		assert((methodHeaderOf(GIV(method))) == methodHeader1);
-		GIV(bytecodeSetSelector) = ((((int) methodHeader1)) < 0
+		GIV(bytecodeSetSelector) = ((((sqLong) methodHeader1)) < 0
 			? 256
 			: 0);
 
@@ -24995,7 +24995,7 @@
 			GIV(instructionPointer) = initialIP;
 		}
 		if (GIV(primFailCode) != 0) {
-			if ((byteAt(initialIP + 1)) == (((((int) methodHeader1)) < 0
+			if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader1)) < 0
 								? AltLongStoreBytecode
 								: LongStoreBytecode))) {
 				/* begin getErrorObjectFromPrimFailCode */
@@ -25188,7 +25188,7 @@
 		GIV(method) = GIV(newMethod);
 		assert(isOopCompiledMethod(GIV(method)));
 		assert((methodHeaderOf(GIV(method))) == methodHeader1);
-		GIV(bytecodeSetSelector) = ((((int) methodHeader1)) < 0
+		GIV(bytecodeSetSelector) = ((((sqLong) methodHeader1)) < 0
 			? 256
 			: 0);
 
@@ -25223,7 +25223,7 @@
 			GIV(instructionPointer) = initialIP;
 		}
 		if (GIV(primFailCode) != 0) {
-			if ((byteAt(initialIP + 1)) == (((((int) methodHeader1)) < 0
+			if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader1)) < 0
 								? AltLongStoreBytecode
 								: LongStoreBytecode))) {
 				/* begin getErrorObjectFromPrimFailCode */
@@ -31040,7 +31040,7 @@
 	GIV(method) = theMethod;
 	assert(isOopCompiledMethod(GIV(method)));
 	assert((methodHeaderOf(GIV(method))) == methodHeader);
-	GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+	GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 		? 256
 		: 0);
 
@@ -31297,7 +31297,7 @@
 	GIV(method) = theMethod;
 	assert(isOopCompiledMethod(GIV(method)));
 	assert((methodHeaderOf(GIV(method))) == methodHeader);
-	GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+	GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 		? 256
 		: 0);
 
@@ -31587,7 +31587,7 @@
 	GIV(method) = theMethod;
 	assert(isOopCompiledMethod(GIV(method)));
 	assert((methodHeaderOf(GIV(method))) == methodHeader);
-	GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+	GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 		? 256
 		: 0);
 
@@ -42974,6 +42974,16 @@
 }
 
 
+/*	A negative header selects the alternate bytecode set. */
+
+	/* Spur64BitMemoryManager>>#headerIndicatesAlternateBytecodeSet: */
+sqInt
+headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
+{
+	return (((sqLong) methodHeader)) < 0;
+}
+
+
 /*	must have room for a header (single or double) plus the next free pointer */
 
 	/* Spur64BitMemoryManager>>#initFreeChunkWithBytes:at: */
@@ -67505,7 +67515,7 @@
 static void
 postSnapshot(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    usqInt address;
+    sqInt address;
     sqInt bytes;
     usqInt freeChunk;
     sqInt i;
@@ -71894,16 +71904,6 @@
 }
 
 
-/*	A negative header selects the alternate bytecode set. */
-
-	/* StackInterpreter>>#headerIndicatesAlternateBytecodeSet: */
-sqInt
-headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
-{
-	return (((int) methodHeader)) < 0;
-}
-
-
 /*	This is a C implementation needed by ioSetMaxExtSemTableSize
 	and e.g. stackPageByteSize. */
 
@@ -72881,7 +72881,7 @@
 sqInt
 longStoreBytecodeForHeader(sqInt methodHeader)
 {
-	return ((((int) methodHeader)) < 0
+	return ((((sqLong) methodHeader)) < 0
 				? AltLongStoreBytecode
 				: LongStoreBytecode);
 }
@@ -74976,7 +74976,7 @@
 		assert((((((CogMethod *) header))->objectHeader)) == (nullHeaderForMachineCodeMethod()));
 		methodHeader = ((((CogMethod *) header))->methodHeader);
 	}
-	return (((int) methodHeader)) < 0;
+	return (((sqLong) methodHeader)) < 0;
 }
 
 
@@ -75313,12 +75313,12 @@
 }
 
 
-/*	Note: With the Squeak V0 format we now have 10 bits of primitive index,
-	but they are in
-	two places for temporary backward compatibility. The time to unpack is
+/*	Note: With the Squeak V3 format we now have 10 bits of primitive index,
+	but they are
+	in two places for temporary backward compatibility. The time to unpack is
 	negligible, since the derived primitive function pointer is stored in the
-	method cache. With the new
-	format we assume a 3-byte CallPrimitive with a little-endian 16-bit
+	method cache. With the
+	Spur format we assume a 3-byte CallPrimitive with a little-endian 16-bit
 	primitive index. */
 
 	/* StackInterpreter>>#primitiveIndexOfMethod:header: */
@@ -78499,7 +78499,7 @@
 static sqInt
 retryPrimitiveOnFailure(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    signed char accessorDepth;
+    sqInt accessorDepth;
     sqInt canRetry;
     sqInt firstBytecode;
     sqInt followDone;
@@ -79590,7 +79590,7 @@
 			GIV(method) = GIV(newMethod);
 			assert(isOopCompiledMethod(GIV(method)));
 			assert((methodHeaderOf(GIV(method))) == methodHeader);
-			GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+			GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 				? 256
 				: 0);
 
@@ -79625,7 +79625,7 @@
 				GIV(instructionPointer) = initialIP;
 			}
 			if (GIV(primFailCode) != 0) {
-				if ((byteAt(initialIP + 1)) == (((((int) methodHeader)) < 0
+				if ((byteAt(initialIP + 1)) == (((((sqLong) methodHeader)) < 0
 										? AltLongStoreBytecode
 										: LongStoreBytecode))) {
 					/* begin getErrorObjectFromPrimFailCode */

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cogit.h	2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c	2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 

Modified: branches/Cog/nsspursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitIA32.c	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c	2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 

Modified: branches/Cog/nsspursrc/vm/cogitMIPSEL.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitMIPSEL.c	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cogitMIPSEL.c	2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGenerator VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -2682,7 +2682,7 @@
     sqInt byte;
     BytecodeDescriptor *descriptor;
     sqInt distance;
-    sqInt endbcpc;
+    usqInt endbcpc;
     CogMethod *homeMethod;
     sqInt isBackwardBranch;
     sqInt isInBlock;
@@ -3188,7 +3188,7 @@
     usqInt cacheTag1;
     sqInt classTag;
     sqInt enclosingObject;
-    usqInt entryPoint;
+    sqInt entryPoint;
     usqInt entryPoint1;
     usqInt entryPoint2;
     sqInt literal;
@@ -4741,7 +4741,7 @@
 static sqInt NoDbgRegParms
 cPICHasFreedTargets(CogMethod *cPIC)
 {
-    sqInt entryPoint;
+    usqInt entryPoint;
     sqInt i;
     sqInt pc;
     CogMethod *targetMethod;
@@ -5808,12 +5808,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    sqInt delta;
+    usqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    sqInt location;
-    sqInt mapEntry;
+    usqInt location;
+    usqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 
@@ -8078,7 +8078,7 @@
     sqInt byte;
     BytecodeDescriptor *descriptor;
     sqInt distance;
-    sqInt endbcpc;
+    usqInt endbcpc;
     CogMethod *homeMethod;
     sqInt isBackwardBranch;
     sqInt isInBlock;
@@ -8754,7 +8754,7 @@
 relocateCallsInClosedPIC(CogMethod *cPIC)
 {
     sqLong callDelta;
-    sqInt entryPoint;
+    usqInt entryPoint;
     sqInt i;
     sqInt pc;
     sqLong refDelta;
@@ -9624,7 +9624,7 @@
 unlinkIfLinkedSendpcto(sqInt annotation, char *mcpc, sqInt theCogMethod)
 {
     usqInt cacheAddress;
-    usqInt entryPoint;
+    sqInt entryPoint;
     usqInt entryPoint1;
     char *mcpc1;
     NSSendCache *nsSendCache;
@@ -14780,7 +14780,7 @@
 static AbstractInstruction * NoDbgRegParms
 relocateMethodReferenceBeforeAddressby(AbstractInstruction * self_in_relocateMethodReferenceBeforeAddressby, sqInt pc, sqInt delta)
 {
-    usqInt newValue;
+    sqInt newValue;
     usqInt oldValue;
 
 	if (((opcodeAtAddress(self_in_relocateMethodReferenceBeforeAddressby, pc - 8)) == ADDIU)
@@ -22263,7 +22263,7 @@
     CogBlockMethod *cogMethod1;
     BytecodeDescriptor *descriptor;
     sqInt distance;
-    sqInt endbcpc;
+    usqInt endbcpc;
     sqInt errCode;
     CogMethod *homeMethod;
     sqInt isBackwardBranch;

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cointerp.c	2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
    from
-	CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -870,6 +870,7 @@
 extern sqInt floatObjectOf(double aFloat);
 extern double floatValueOf(sqInt oop);
 static sqInt hasSixtyFourBitImmediates(void);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 static sqInt NoDbgRegParms initFreeChunkWithBytesat(usqLong numBytes, sqInt address);
 static void NoDbgRegParms initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address);
 extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
@@ -1358,7 +1359,6 @@
 static sqInt NoDbgRegParms handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
 static void handleStackOverflow(void);
 static sqInt NoDbgRegParms handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 extern usqInt highBit(usqInt anUnsignedValue);
 static sqInt NoDbgRegParms ifCurrentStackPageHasValidHeadPointers(StackPage *thePage);
 static usqInt NoDbgRegParms iframeMethod(char *theFP);
@@ -2428,7 +2428,7 @@
 	};
 sqInt checkedPluginName;
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1883";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1885";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -23022,7 +23022,7 @@
     usqInt index;
     sqInt methodField;
     usqInt numArgs;
-    sqInt numTemps;
+    usqInt numTemps;
     char *rcvrAddress;
     sqInt rcvrOrClosure;
     sqInt theMethod;
@@ -41803,7 +41803,7 @@
     sqInt fmt;
     usqInt instBytes;
     sqInt instFormat;
-    sqInt newFormat;
+    usqInt newFormat;
     sqInt normalizedInstFormat;
     usqInt numBytes;
     usqInt numSlots;
@@ -42074,6 +42074,16 @@
 }
 
 
+/*	A negative header selects the alternate bytecode set. */
+
+	/* Spur32BitMemoryManager>>#headerIndicatesAlternateBytecodeSet: */
+sqInt
+headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
+{
+	return (((int) methodHeader)) < 0;
+}
+
+
 /*	must have room for a header (single or double) plus the next free pointer */
 
 	/* Spur32BitMemoryManager>>#initFreeChunkWithBytes:at: */
@@ -66226,7 +66236,7 @@
 bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
 {
     usqInt bridgeSpan;
-    usqInt clifton;
+    sqInt clifton;
     usqInt segEnd;
 
 	segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -66407,7 +66417,7 @@
 static void
 postSnapshot(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt address;
+    usqInt address;
     sqInt bytes;
     usqInt freeChunk;
     sqInt i;
@@ -70822,16 +70832,6 @@
 }
 
 
-/*	A negative header selects the alternate bytecode set. */
-
-	/* StackInterpreter>>#headerIndicatesAlternateBytecodeSet: */
-sqInt
-headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
-{
-	return (((int) methodHeader)) < 0;
-}
-
-
 /*	This is a C implementation needed by ioSetMaxExtSemTableSize
 	and e.g. stackPageByteSize. */
 
@@ -74372,12 +74372,12 @@
 }
 
 
-/*	Note: With the Squeak V0 format we now have 10 bits of primitive index,
-	but they are in
-	two places for temporary backward compatibility. The time to unpack is
+/*	Note: With the Squeak V3 format we now have 10 bits of primitive index,
+	but they are
+	in two places for temporary backward compatibility. The time to unpack is
 	negligible, since the derived primitive function pointer is stored in the
-	method cache. With the new
-	format we assume a 3-byte CallPrimitive with a little-endian 16-bit
+	method cache. With the
+	Spur format we assume a 3-byte CallPrimitive with a little-endian 16-bit
 	primitive index. */
 
 	/* StackInterpreter>>#primitiveIndexOfMethod:header: */
@@ -77506,7 +77506,7 @@
 static sqInt
 retryPrimitiveOnFailure(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    signed char accessorDepth;
+    sqInt accessorDepth;
     sqInt canRetry;
     sqInt firstBytecode;
     sqInt followDone;

Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/cointerp.h	2016-06-07 22:35:56 UTC (rev 3739)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
 
 
@@ -131,6 +131,7 @@
 extern usqInt scavengeThresholdAddress(void);
 extern sqInt withoutForwardingOnandwithsendToCogit(sqInt obj1, sqInt obj2, sqInt aBool, sqInt (*selector)(sqInt,sqInt,sqInt));
 extern sqInt byteSwapped(sqInt w);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
 extern sqInt isIntegerValue(sqInt intValue);
 extern sqInt isMarked(sqInt objOop);
@@ -271,7 +272,6 @@
 extern void (*functionPointerForinClass(sqInt primIdx,sqInt theClass))(void) ;
 extern usqLong getNextWakeupUsecs(void);
 extern sqInt * getStackPointer(void);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 extern usqInt highBit(usqInt anUnsignedValue);
 extern sqInt isFloatObject(sqInt oop);
 extern sqInt isKindOfInteger(sqInt oop);

Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2016-06-07 22:35:56 UTC (rev 3739)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
    from
-	CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -873,6 +873,7 @@
 extern sqInt floatObjectOf(double aFloat);
 extern double floatValueOf(sqInt oop);
 static sqInt hasSixtyFourBitImmediates(void);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 static sqInt NoDbgRegParms initFreeChunkWithBytesat(usqLong numBytes, sqInt address);
 static void NoDbgRegParms initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address);
 extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
@@ -1361,7 +1362,6 @@
 static sqInt NoDbgRegParms handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
 static void handleStackOverflow(void);
 static sqInt NoDbgRegParms handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 extern usqInt highBit(usqInt anUnsignedValue);
 static sqInt NoDbgRegParms ifCurrentStackPageHasValidHeadPointers(StackPage *thePage);
 static usqInt NoDbgRegParms iframeMethod(char *theFP);
@@ -2431,7 +2431,7 @@
 	};
 sqInt checkedPluginName;
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1883";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1885";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -23031,7 +23031,7 @@
     usqInt index;
     sqInt methodField;
     usqInt numArgs;
-    sqInt numTemps;
+    usqInt numTemps;
     char *rcvrAddress;
     sqInt rcvrOrClosure;
     sqInt theMethod;
@@ -41812,7 +41812,7 @@
     sqInt fmt;
     usqInt instBytes;
     sqInt instFormat;
-    sqInt newFormat;
+    usqInt newFormat;
     sqInt normalizedInstFormat;
     usqInt numBytes;
     usqInt numSlots;
@@ -42083,6 +42083,16 @@
 }
 
 
+/*	A negative header selects the alternate bytecode set. */
+
+	/* Spur32BitMemoryManager>>#headerIndicatesAlternateBytecodeSet: */
+sqInt
+headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
+{
+	return (((int) methodHeader)) < 0;
+}
+
+
 /*	must have room for a header (single or double) plus the next free pointer */
 
 	/* Spur32BitMemoryManager>>#initFreeChunkWithBytes:at: */
@@ -66235,7 +66245,7 @@
 bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
 {
     usqInt bridgeSpan;
-    usqInt clifton;
+    sqInt clifton;
     usqInt segEnd;
 
 	segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -66416,7 +66426,7 @@
 static void
 postSnapshot(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt address;
+    usqInt address;
     sqInt bytes;
     usqInt freeChunk;
     sqInt i;
@@ -70831,16 +70841,6 @@
 }
 
 
-/*	A negative header selects the alternate bytecode set. */
-
-	/* StackInterpreter>>#headerIndicatesAlternateBytecodeSet: */
-sqInt
-headerIndicatesAlternateBytecodeSet(sqInt methodHeader)
-{
-	return (((int) methodHeader)) < 0;
-}
-
-
 /*	This is a C implementation needed by ioSetMaxExtSemTableSize
 	and e.g. stackPageByteSize. */
 
@@ -74381,12 +74381,12 @@
 }
 
 
-/*	Note: With the Squeak V0 format we now have 10 bits of primitive index,
-	but they are in
-	two places for temporary backward compatibility. The time to unpack is
+/*	Note: With the Squeak V3 format we now have 10 bits of primitive index,
+	but they are
+	in two places for temporary backward compatibility. The time to unpack is
 	negligible, since the derived primitive function pointer is stored in the
-	method cache. With the new
-	format we assume a 3-byte CallPrimitive with a little-endian 16-bit
+	method cache. With the
+	Spur format we assume a 3-byte CallPrimitive with a little-endian 16-bit
 	primitive index. */
 
 	/* StackInterpreter>>#primitiveIndexOfMethod:header: */
@@ -77515,7 +77515,7 @@
 static sqInt
 retryPrimitiveOnFailure(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    signed char accessorDepth;
+    sqInt accessorDepth;
     sqInt canRetry;
     sqInt firstBytecode;
     sqInt followDone;

Modified: branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/gcc3x-interp.c	2016-06-07 03:03:08 UTC (rev 3738)
+++ branches/Cog/nsspurstack64src/vm/gcc3x-interp.c	2016-06-07 22:35:56 UTC (rev 3739)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
    from
-	StackInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d
+	StackInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1883 uuid: a87f979f-7e5b-44d1-804d-fc8403bde06d " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1885 uuid: 3c9ce24b-d7c4-4160-ac59-56aed18461a1 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -632,6 +632,7 @@
 static sqInt NoDbgRegParms fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop);
 extern sqInt floatObjectOf(double aFloat);
 extern double floatValueOf(sqInt oop);
+extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 static sqInt NoDbgRegParms initFreeChunkWithBytesat(usqLong numBytes, sqInt address);
 static void NoDbgRegParms initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address);
 extern sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
@@ -1140,7 +1141,6 @@
 static sqInt NoDbgRegParms handleSpecialSelectorSendFaultForfpsp(sqInt obj, char *theFP, char *theSP);
 static void handleStackOverflow(void);
 static sqInt NoDbgRegParms handleStackOverflowOrEventAllowContextSwitch(sqInt mayContextSwitch);
-extern sqInt headerIndicatesAlternateBytecodeSet(sqInt methodHeader);
 extern usqInt highBit(usqInt anUnsignedValue);
 static sqInt NoDbgRegParms ifCurrentStackPageHasValidHeadPointers(StackPage *thePage);
 static usqInt NoDbgRegParms iframeMethod(char *theFP);
@@ -2193,7 +2193,7 @@
  0 };
 sqInt checkedPluginName;
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1883";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1885";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -5623,7 +5623,7 @@
 					GIV(method) = GIV(newMethod);
 					assert(isOopCompiledMethod(GIV(method)));
 					assert((methodHeaderOf(GIV(method))) == methodHeader);
-					GIV(bytecodeSetSelector) = ((((int) methodHeader)) < 0
+					GIV(bytecodeSetSelector) = ((((sqLong) methodHeader)) < 0
 						? 256
 						: 0);
 
@@ -5647,7 +5647,7 @@

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list