[Vm-dev] [commit][3634] CogVM source as per VMMaker.oscog-eem.1703

commits at squeakvm.org commits at squeakvm.org
Sun Feb 28 21:58:37 UTC 2016


Revision: 3634
Author:   eliot
Date:     2016-02-28 13:58:34 -0800 (Sun, 28 Feb 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1703

General:
Make the leak checker operational in the non-assert (& non-debug) VM.

64-bit Cogit:
Fix primtive 171 (primitiveImmediateAsInteger) in the Cogit for SmallFloat.
The old code only dealt with Characters.  The new code replicates the
rotatedFloatBitsOf: scheme in Spur64BitMemoryManager.

Slang:

Eliminate some C compiler warnings in the generated code.
Add returns at the end of sqInt methods that don't end with a return.
Improve the variable pruning to mirror dead code elimination.

Fix casts of functions obtained from the SecurityPlugin which, you guessed it,
should be typed using sqInt, not int.

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/platforms/unix/plugins/SocketPlugin/sqUnixSocket.c
    branches/Cog/platforms/unix/vm/aio.c
    branches/Cog/platforms/unix/vm/sqaio.h
    branches/Cog/scripts/mkspur64vmarchives
    branches/Cog/scripts/uploadvms
    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/plugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c
    branches/Cog/src/plugins/AioPlugin/AioPlugin.c
    branches/Cog/src/plugins/AsynchFilePlugin/AsynchFilePlugin.c
    branches/Cog/src/plugins/B2DPlugin/B2DPlugin.c
    branches/Cog/src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
    branches/Cog/src/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c
    branches/Cog/src/plugins/BitBltPlugin/BitBltPlugin.c
    branches/Cog/src/plugins/CroquetPlugin/CroquetPlugin.c
    branches/Cog/src/plugins/DSAPrims/DSAPrims.c
    branches/Cog/src/plugins/DropPlugin/DropPlugin.c
    branches/Cog/src/plugins/FFTPlugin/FFTPlugin.c
    branches/Cog/src/plugins/FilePlugin/FilePlugin.c
    branches/Cog/src/plugins/FloatArrayPlugin/FloatArrayPlugin.c
    branches/Cog/src/plugins/FloatMathPlugin/FloatMathPlugin.c
    branches/Cog/src/plugins/IA32ABI/IA32ABI.c
    branches/Cog/src/plugins/JPEGReaderPlugin/JPEGReaderPlugin.c
    branches/Cog/src/plugins/Klatt/Klatt.c
    branches/Cog/src/plugins/LargeIntegers/LargeIntegers.c
    branches/Cog/src/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c
    branches/Cog/src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
    branches/Cog/src/plugins/QuicktimePlugin/QuicktimePlugin.c
    branches/Cog/src/plugins/RePlugin/RePlugin.c
    branches/Cog/src/plugins/SecurityPlugin/SecurityPlugin.c
    branches/Cog/src/plugins/SocketPlugin/SocketPlugin.c
    branches/Cog/src/plugins/SoundCodecPrims/SoundCodecPrims.c
    branches/Cog/src/plugins/SoundGenerationPlugin/SoundGenerationPlugin.c
    branches/Cog/src/plugins/Squeak3D/Squeak3D.c
    branches/Cog/src/plugins/SqueakSSL/SqueakSSL.c
    branches/Cog/src/plugins/StarSqueakPlugin/StarSqueakPlugin.c
    branches/Cog/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c
    branches/Cog/src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c
    branches/Cog/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
    branches/Cog/src/plugins/ZipPlugin/ZipPlugin.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

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

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

Modified: branches/Cog/nsspur64src/vm/cogit.h
===================================================================
--- branches/Cog/nsspur64src/vm/cogit.h	2016-02-27 22:26:23 UTC (rev 3633)
+++ branches/Cog/nsspur64src/vm/cogit.h	2016-02-28 21:58:34 UTC (rev 3634)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1700 uuid: 4efaff50-3cc1-4840-8195-df0e306eb5a4
+	CCodeGenerator VMMaker.oscog-eem.1703 uuid: 9bd9e03b-fbe7-450c-8adc-5e20f7d76cdf
  */
 
 

Modified: branches/Cog/nsspur64src/vm/cogitX64.c
===================================================================
--- branches/Cog/nsspur64src/vm/cogitX64.c	2016-02-27 22:26:23 UTC (rev 3633)
+++ branches/Cog/nsspur64src/vm/cogitX64.c	2016-02-28 21:58:34 UTC (rev 3634)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1700 uuid: 4efaff50-3cc1-4840-8195-df0e306eb5a4
+	CCodeGenerator VMMaker.oscog-eem.1703 uuid: 9bd9e03b-fbe7-450c-8adc-5e20f7d76cdf
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1700 uuid: 4efaff50-3cc1-4840-8195-df0e306eb5a4
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1703 uuid: 9bd9e03b-fbe7-450c-8adc-5e20f7d76cdf
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1700 uuid: 4efaff50-3cc1-4840-8195-df0e306eb5a4 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1703 uuid: 9bd9e03b-fbe7-450c-8adc-5e20f7d76cdf " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -756,6 +756,7 @@
 static sqInt NoDbgRegParms genConvertBitsToSmallFloatInscratch(sqInt reg, sqInt scratch);
 static void NoDbgRegParms genConvertCharacterToSmallIntegerInReg(sqInt reg);
 static sqInt NoDbgRegParms genConvertIntegerToSmallIntegerInReg(sqInt reg);
+static sqInt NoDbgRegParms genConvertSmallFloatToSmallFloatHashAsIntegerInRegscratch(sqInt reg, sqInt scratch);
 static void NoDbgRegParms genConvertSmallIntegerToCharacterInReg(sqInt reg);
 static sqInt NoDbgRegParms genConvertSmallIntegerToIntegerInReg(sqInt reg);
 static sqInt NoDbgRegParms genFetchIndexRegisterfrominto(sqInt indexReg, sqInt tableObj, sqInt destReg);
@@ -776,6 +777,7 @@
 static sqInt genPrimitiveAt(void);
 static sqInt genPrimitiveAtPut(void);
 static sqInt genPrimitiveIdentityHash(void);
+static sqInt genPrimitiveImmediateAsInteger(void);
 static sqInt genPrimitiveMirrorNew(void);
 static sqInt genPrimitiveMirrorNewWithArg(void);
 static sqInt genPrimitiveNew(void);
@@ -830,7 +832,6 @@
 static sqInt NoDbgRegParms genNewArrayOfSizeinitialized(sqInt size, sqInt initialized);
 static sqInt NoDbgRegParms genNoPopCreateClosureAtnumArgsnumCopiedcontextNumArgslargeinBlock(sqInt bcpc, sqInt numArgs, sqInt numCopied, sqInt ctxtNumArgs, sqInt isLargeCtxt, sqInt isInBlock);
 static sqInt genPrimitiveAsCharacter(void);
-static sqInt genPrimitiveCharacterValue(void);
 static sqInt NoDbgRegParms genPrimitiveIdenticalOrNotIf(sqInt orNot);
 static sqInt genPrimitiveObjectAt(void);
 static sqInt genPrimitiveSize(void);
@@ -1190,6 +1191,7 @@
 static sqInt ceEnclosingObjectTrampoline;
 void (*ceEnterCogCodePopReceiverReg)(void);
 static sqInt ceFetchContextInstVarTrampoline;
+static void (*ceFlushICache)(unsigned long from, unsigned long to);
 unsigned long (*ceGetFP)(void);
 unsigned long (*ceGetSP)(void);
 static sqInt ceLargeActiveContextInBlockTrampoline;
@@ -1214,7 +1216,6 @@
 unsigned long (*ceTryLockVMOwner)(void);
 void (*ceUnlockVMOwner)(void);
 sqInt cFramePointerInUse;
-static sqInt checkedEntryAlignment;
 static sqInt closedPICSize;
 sqInt cmEntryOffset;
 sqInt cmNoCheckEntryOffset;
@@ -1229,13 +1230,11 @@
 static sqInt debugFixupBreaks;
 static sqInt debugOpcodeIndices;
 unsigned long debugPrimCallStackOffset;
-static sqInt directedSuperSendTrampolines[NumSendTrampolines];
 static sqInt disassemblingMethod;
 static sqInt dynamicSuperSendTrampolines[NumSendTrampolines];
 static AbstractInstruction * endCPICCase0;
 static sqInt endPC;
 static AbstractInstruction * entry;
-static sqInt entryPointMask;
 static sqInt enumeratingCogMethod;
 static sqInt expectedFPAlignment;
 static sqInt expectedSPAlignment;
@@ -1819,13 +1818,11 @@
 static AbstractInstruction * stackCheckLabel;
 static AbstractInstruction * stackOverflowCall;
 static sqInt superSendTrampolines[NumSendTrampolines];
-static sqInt tempOop;
 static sqInt theIRCs;
 int traceFlags = 8 /* prim trace log on by default */;
 sqInt traceStores;
 static char *trampolineAddresses[NumTrampolines*2];
 static sqInt trampolineTableIndex;
-static sqInt uncheckedEntryAlignment;
 static usqInt unpairedMethodList;
 static usqInt youngReferrers;
 
@@ -2516,7 +2513,6 @@
 static AbstractInstruction * NoDbgRegParms
 gAndCqRR(sqInt quickConstant, sqInt srcReg, sqInt destReg)
 {
-    AbstractInstruction *anInstruction;
     AbstractInstruction *anInstruction1;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *first;
@@ -4244,7 +4240,6 @@
 compileAbort(void)
 {
     AbstractInstruction *anInstruction;
-    sqInt callTarget;
 
 	/* begin MoveCq:R: */
 	anInstruction = genoperandoperand(MoveCqR, 0, ReceiverResultReg);
@@ -4307,6 +4302,7 @@
 		jmpTarget(jmp, gLabel());
 		compileBlockDispatchFromto(halfWay + 1, highBlockStartIndex);
 	}
+	return 0;
 }
 
 
@@ -4381,10 +4377,8 @@
 static void NoDbgRegParms
 compileCallFornumArgsargargargargresultRegsaveRegs(void *aRoutine, sqInt numArgs, sqInt regOrConst0, sqInt regOrConst1, sqInt regOrConst2, sqInt regOrConst3, sqInt resultRegOrNone, sqInt saveRegs)
 {
-    AbstractInstruction *abstractInstruction;
     AbstractInstruction *anInstruction;
     AbstractInstruction *anInstruction1;
-    AbstractInstruction *anInstruction11;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
     AbstractInstruction *anInstruction4;
@@ -4593,7 +4587,6 @@
 compilePICAbort(sqInt numArgs)
 {
     AbstractInstruction *anInstruction;
-    sqInt callTarget;
     sqInt callTarget1;
     AbstractInstruction * picMNUAbort;
 
@@ -4640,9 +4633,12 @@
 static void
 computeEntryOffsets(void)
 {
+    sqInt checkedEntryAlignment;
+    sqInt entryPointMask;
     sqInt fixupSize;
     sqInt opcodeSize;
     AbstractInstruction *sendMissCall;
+    sqInt uncheckedEntryAlignment;
 
 	/* begin allocateOpcodes:bytecodes: */
 	numAbstractOpcodes = 24;
@@ -5141,6 +5137,7 @@
 			? 0
 			: ((((blockStart->stackCheckLabel))->address)) - ((((blockStart->fakeHeader))->address))));
 	}
+	return 0;
 }
 
 	/* Cogit>>#fillInMethodHeader:size:selector: */
@@ -5481,9 +5478,7 @@
 static sqInt
 genCheckForInterruptsTrampoline(void)
 {
-    sqInt address;
     sqInt address1;
-    AbstractInstruction *anInstruction;
     AbstractInstruction *anInstruction1;
 
 	zeroOpcodeIndex();
@@ -5611,12 +5606,10 @@
 {
     sqInt address;
     sqInt address1;
-    sqInt address2;
     AbstractInstruction *anInstruction;
     AbstractInstruction *anInstruction1;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
-    AbstractInstruction *anInstruction4;
     sqInt fixupSize;
     sqInt opcodeSize;
     sqInt quickConstant;
@@ -6241,7 +6234,6 @@
     AbstractInstruction *anInstruction;
     sqInt cacheValue;
     sqInt opcode;
-    sqInt selector;
 
 	assert((selectorIndex < 0
 		? (((-selectorIndex) >= 1) && ((-selectorIndex) <= (numSpecialSelectors())))
@@ -6258,9 +6250,7 @@
 static sqInt
 genNonLocalReturnTrampoline(void)
 {
-    sqInt address;
     sqInt address1;
-    AbstractInstruction *anInstruction;
     AbstractInstruction *anInstruction1;
 
 	zeroOpcodeIndex();
@@ -6713,17 +6703,10 @@
 void
 initializeCodeZoneFromupTo(sqInt startAddress, sqInt endAddress)
 {
-    static void (*ceFlushICache)(unsigned long from, unsigned long to);
     sqInt fixupSize;
-    sqInt fixupSize1;
-    sqInt fixupSize2;
     sqInt numberOfAbstractOpcodes;
     sqInt opcodeSize;
-    sqInt opcodeSize1;
-    sqInt opcodeSize2;
     sqInt startAddress1;
-    sqInt startAddress2;
-    sqInt startAddress3;
 
 	initializeBackend();
 	stopsFromto(backEnd, startAddress, endAddress - 1);
@@ -7564,7 +7547,7 @@
 	val = 0;
 	val1 = 0;
 	if (leakCheckFullGC()) {
-		assert(allMachineCodeObjectReferencesValid());
+		asserta(allMachineCodeObjectReferencesValid());
 	}
 	codeModified = 0;
 	markAndTraceObjectReferencesInGeneratedRuntime();
@@ -7660,7 +7643,7 @@
 		cogMethod = ((CogMethod *) (roundUpLength((((sqInt)cogMethod)) + ((cogMethod->blockSize)))));
 	}
 	if (leakCheckFullGC()) {
-		assert(allMachineCodeObjectReferencesValid());
+		asserta(allMachineCodeObjectReferencesValid());
 	}
 	if (codeModified) {
 
@@ -10453,6 +10436,7 @@
 		}
 		openPIC = ((CogMethod *) ((openPIC->nextOpenPIC)));
 	} while(1);
+	return 0;
 }
 
 
@@ -10636,6 +10620,7 @@
 	}
 	youngReferrers = dest;
 	assert(kosherYoungReferrers());
+	return 0;
 }
 
 	/* CogMethodZone>>#relocateAndPruneYoungReferrers */
@@ -10677,6 +10662,7 @@
 		source -= BytesPerWord;
 	}
 	youngReferrers = dest;
+	return 0;
 }
 
 
@@ -10731,6 +10717,7 @@
 		}
 		prevPIC = ((CogMethod *) ((prevPIC->nextOpenPIC)));
 	} while(1);
+	return 0;
 }
 
 	/* CogMethodZone>>#removeFromUnpairedMethodList: */
@@ -10754,6 +10741,7 @@
 		}
 		prevMethod = ((CogMethod *) ((prevMethod->nextMethodOrIRCs)));
 	}
+	return 0;
 }
 
 	/* CogMethodZone>>#voidYoungReferrersPostTenureAll */
@@ -11936,6 +11924,33 @@
 }
 
 
+/*	Convert the SmallFloat in reg to its identityHash as a SmallInteger.
+	Rotate the sign bit from bit 3 (zero-relative) the sign bit. This
+	implicitly sets
+	SmallInteger tags (3 >> 1 = 1). c.f.
+	Spur64BitMemoryManager>>rotatedFloatBitsOf:  */
+
+	/* CogObjectRepresentationFor64BitSpur>>#genConvertSmallFloatToSmallFloatHashAsIntegerInReg:scratch: */
+static sqInt NoDbgRegParms
+genConvertSmallFloatToSmallFloatHashAsIntegerInRegscratch(sqInt reg, sqInt scratch)
+{
+    sqInt quickConstant;
+
+	assert((((usqInt) (smallFloatTag())) >> 1) == (smallIntegerTag()));
+	/* begin LogicalShiftRightCq:R: */
+	genoperandoperand(LogicalShiftRightCqR, 1, reg);
+	gAndCqRR(1LL << ((numTagBits()) - 1), reg, scratch);
+	/* begin SubR:R: */
+	genoperandoperand(SubRR, scratch, reg);
+	/* begin LogicalShiftLeftCq:R: */
+	quickConstant = 0x3F - ((numTagBits()) - 1);
+	genoperandoperand(LogicalShiftLeftCqR, quickConstant, scratch);
+	/* begin OrR:R: */
+	genoperandoperand(OrRR, scratch, reg);
+	return 0;
+}
+
+
 /*	Convert the SmallInteger in reg to a Character, assuming
 	the SmallInteger's value is a valid character. */
 
@@ -12360,7 +12375,6 @@
 static AbstractInstruction * NoDbgRegParms
 genJumpNotSmallFloatValueBitsscratch(sqInt reg, sqInt exponent)
 {
-    AbstractInstruction *anInstruction;
     AbstractInstruction *anInstruction1;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
@@ -12370,7 +12384,6 @@
     AbstractInstruction *jumpTest;
     AbstractInstruction *jumpZeroMantissa;
     sqInt quickConstant;
-    sqInt quickConstant1;
     sqInt quickConstant2;
     sqInt quickConstant3;
     sqInt quickConstant4;
@@ -12418,43 +12431,45 @@
 	other than SmallIntegers,
 	i.e. don't branch if both aRegister and scratchA contain SmallIntegers.
 	Answer the jump. Destroy scratchA and scratchB if required. */
-/*	Map SmallIntegers to 0 in scratchA & scratchB, add and jump non-zero. */
+/*	Straight-forward approach. Map SmallIntegers to 0 in scratchA & scratchB,
+	add and jump non-zero. */
 
 	/* CogObjectRepresentationFor64BitSpur>>#genJumpNotSmallIntegersIn:andScratch:scratch: */
 static AbstractInstruction * NoDbgRegParms
 genJumpNotSmallIntegersInandScratchscratch(sqInt aRegister, sqInt scratchA, sqInt scratchB)
 {
-    AbstractInstruction *anInstruction;
     AbstractInstruction *anInstruction1;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
-    sqInt quickConstant;
+    AbstractInstruction *anInstruction4;
     sqInt quickConstant1;
     sqInt quickConstant2;
     sqInt quickConstant3;
+    sqInt quickConstant4;
 
 	return (/* begin MoveR:R: */
 		genoperandoperand(MoveRR, aRegister, scratchB),
 		/* begin SubCq:R: */
-		(quickConstant2 = smallIntegerTag()),
+		(quickConstant3 = smallIntegerTag()),
 		/* begin gen:quickConstant:operand: */
-		(anInstruction2 = genoperandoperand(SubCqR, quickConstant2, scratchA)),
+		(anInstruction1 = genoperandoperand(SubCqR, quickConstant3, scratchA)),
 		/* begin SubCq:R: */
-		(quickConstant3 = smallIntegerTag()),
+		(quickConstant4 = smallIntegerTag()),
 		/* begin gen:quickConstant:operand: */
-		(anInstruction3 = genoperandoperand(SubCqR, quickConstant3, scratchB)),
+		(anInstruction2 = genoperandoperand(SubCqR, quickConstant4, scratchB)),
 		/* begin AndCq:R: */
-		(quickConstant = tagMask()),
+		(quickConstant1 = tagMask()),
 		/* begin gen:quickConstant:operand: */
-		(anInstruction = genoperandoperand(AndCqR, quickConstant, scratchA)),
+		(anInstruction3 = genoperandoperand(AndCqR, quickConstant1, scratchA)),
 		/* begin AndCq:R: */
-		(quickConstant1 = tagMask()),
+		(quickConstant2 = tagMask()),
 		/* begin gen:quickConstant:operand: */
-		(anInstruction1 = genoperandoperand(AndCqR, quickConstant1, scratchB)),
+		(anInstruction4 = genoperandoperand(AndCqR, quickConstant2, scratchB)),
 		/* begin AddR:R: */
 		genoperandoperand(AddRR, scratchA, scratchB),
 		/* begin JumpNonZero: */
 		genConditionalBranchoperand(JumpNonZero, ((sqInt)0)));
+
 }
 
 
@@ -13005,18 +13020,21 @@
 	return 0;
 }
 
+
+/*	Arguably we should fail for immediates, but so far no one has complained,
+	so... 
+ */
+
 	/* CogObjectRepresentationFor64BitSpur>>#genPrimitiveIdentityHash */
 static sqInt
 genPrimitiveIdentityHash(void)
 {
     AbstractInstruction *anInstruction;
     AbstractInstruction *anInstruction1;
-    AbstractInstruction *anInstruction2;
     AbstractInstruction *jumpImm;
+    AbstractInstruction *jumpNotCharacter;
     AbstractInstruction *jumpNotSet;
-    AbstractInstruction *jumpSF;
     sqInt quickConstant;
-    sqInt quickConstant1;
     AbstractInstruction * ret;
 
 
@@ -13033,25 +13051,60 @@
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	ret = genoperand(RetN, 0);
-	jmpTarget(jumpImm, gLabel());
-	gAndCqRR(tagMask(), ReceiverResultReg, TempReg);
+	jmpTarget(jumpImm, gAndCqRR(tagMask(), ReceiverResultReg, TempReg));
 	/* begin CmpCq:R: */
-	quickConstant = smallIntegerTag();
+	quickConstant = characterTag();
 	/* begin gen:quickConstant:operand: */
 	anInstruction1 = genoperandoperand(CmpCqR, quickConstant, TempReg);
-	/* begin JumpZero: */
-	genConditionalBranchoperand(JumpZero, ((sqInt)ret));
+	/* begin JumpNonZero: */
+	jumpNotCharacter = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+	genConvertCharacterToSmallIntegerInReg(ReceiverResultReg);
+	/* begin genPrimReturn */
+	assert(methodOrBlockNumArgs <= (numRegArgs()));
+	/* begin RetN: */
+	ret = genoperand(RetN, 0);
+	jmpTarget(jumpNotCharacter, gCmpCqR(smallFloatTag(), TempReg));
+	/* begin JumpNonZero: */
+	genConditionalBranchoperand(JumpNonZero, ((sqInt)ret));
+	genConvertSmallFloatToSmallFloatHashAsIntegerInRegscratch(ReceiverResultReg, TempReg);
+	/* begin genPrimReturn */
+	assert(methodOrBlockNumArgs <= (numRegArgs()));
+	/* begin RetN: */
+	genoperand(RetN, 0);
+	jmpTarget(jumpNotSet, gLabel());
+	return 0;
+}
+
+	/* CogObjectRepresentationFor64BitSpur>>#genPrimitiveImmediateAsInteger */
+static sqInt
+genPrimitiveImmediateAsInteger(void)
+{
+    AbstractInstruction *anInstruction;
+    AbstractInstruction *jumpNotCharacter;
+    sqInt quickConstant;
+    AbstractInstruction * ret;
+
+	gAndCqRR(tagMask(), ReceiverResultReg, TempReg);
 	/* begin CmpCq:R: */
-	quickConstant1 = characterTag();
+	quickConstant = characterTag();
 	/* begin gen:quickConstant:operand: */
-	anInstruction2 = genoperandoperand(CmpCqR, quickConstant1, TempReg);
+	anInstruction = genoperandoperand(CmpCqR, quickConstant, TempReg);
 	/* begin JumpNonZero: */
-	jumpSF = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+	jumpNotCharacter = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
 	genConvertCharacterToSmallIntegerInReg(ReceiverResultReg);
-	/* begin Jump: */
-	genoperand(Jump, ((sqInt)ret));
-	jmpTarget(jumpNotSet, jmpTarget(jumpSF, gLabel()));
-	return 0;
+	/* begin genPrimReturn */
+	assert(methodOrBlockNumArgs <= (numRegArgs()));
+	/* begin RetN: */
+	ret = genoperand(RetN, 0);
+	jmpTarget(jumpNotCharacter, gCmpCqR(smallFloatTag(), TempReg));
+	/* begin JumpNonZero: */
+	genConditionalBranchoperand(JumpNonZero, ((sqInt)ret));
+	genConvertSmallFloatToSmallFloatHashAsIntegerInRegscratch(ReceiverResultReg, TempReg);
+	/* begin genPrimReturn */
+	assert(methodOrBlockNumArgs <= (numRegArgs()));
+	/* begin RetN: */
+	genoperand(RetN, 0);
+	return UnfailingPrimitive;
 }
 
 
@@ -14794,7 +14847,6 @@
     AbstractInstruction *anInstruction34;
     AbstractInstruction *anInstruction35;
     AbstractInstruction *anInstruction4;
-    AbstractInstruction *anInstruction5;
     AbstractInstruction *anInstruction6;
     AbstractInstruction *anInstruction7;
     AbstractInstruction *anInstruction8;
@@ -15550,18 +15602,6 @@
 	return CompletePrimitive;
 }
 
-	/* CogObjectRepresentationForSpur>>#genPrimitiveCharacterValue */
-static sqInt
-genPrimitiveCharacterValue(void)
-{
-	genConvertCharacterToSmallIntegerInReg(ReceiverResultReg);
-	/* begin genPrimReturn */
-	assert(methodOrBlockNumArgs <= (numRegArgs()));
-	/* begin RetN: */
-	genoperand(RetN, 0);
-	return UnfailingPrimitive;
-}
-
 	/* CogObjectRepresentationForSpur>>#genPrimitiveIdenticalOrNotIf: */
 static sqInt NoDbgRegParms
 genPrimitiveIdenticalOrNotIf(sqInt orNot)
@@ -19932,8 +19972,6 @@
 static AbstractInstruction * NoDbgRegParms
 genPushRegisterArgsForNumArgsscratchReg(AbstractInstruction * self_in_genPushRegisterArgsForNumArgsscratchReg, sqInt numArgs, sqInt scratchReg)
 {
-    AbstractInstruction *anInstruction;
-    AbstractInstruction *anInstruction1;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
 
@@ -20859,12 +20897,6 @@
 static sqInt NoDbgRegParms
 compileInterpreterPrimitive(void (*primitiveRoutine)(void))
 {
-    AbstractInstruction *abstractInstruction;
-    AbstractInstruction *abstractInstruction1;
-    AbstractInstruction *abstractInstruction2;
-    AbstractInstruction *abstractInstruction3;
-    sqInt address;
-    sqInt address1;
     sqInt address10;
     sqInt address11;
     sqInt address12;
@@ -20872,18 +20904,9 @@
     sqInt address2;
     sqInt address3;
     sqInt address4;
-    sqInt address5;
-    sqInt address6;
     sqInt address7;
     sqInt address8;
     sqInt address9;
-    AbstractInstruction *anInstruction;
-    AbstractInstruction *anInstruction1;
-    AbstractInstruction *anInstruction10;
-    AbstractInstruction *anInstruction11;
-    AbstractInstruction *anInstruction110;
-    AbstractInstruction *anInstruction111;
-    AbstractInstruction *anInstruction112;
     AbstractInstruction *anInstruction12;
     AbstractInstruction *anInstruction13;
     AbstractInstruction *anInstruction14;
@@ -20898,7 +20921,6 @@
     AbstractInstruction *anInstruction22;
     AbstractInstruction *anInstruction23;
     AbstractInstruction *anInstruction24;
-    AbstractInstruction *anInstruction25;
     AbstractInstruction *anInstruction26;
     AbstractInstruction *anInstruction27;
     AbstractInstruction *anInstruction28;
@@ -20918,7 +20940,6 @@
     AbstractInstruction *jmp;
     AbstractInstruction *jmpSampleNonPrim;
     AbstractInstruction *jmpSamplePrim;
-    sqInt literal;
     sqInt literal1;
     sqInt offset;
     sqInt offset1;
@@ -22154,33 +22175,21 @@
 static void NoDbgRegParms
 genPrimReturnEnterCogCodeEnilopmart(sqInt profiling)
 {
-    AbstractInstruction *abstractInstruction;
-    sqInt address;
-    sqInt address1;
     sqInt address2;
-    sqInt address3;
-    sqInt address4;
     sqInt address5;
     sqInt address6;
     sqInt address7;
     sqInt address8;
     AbstractInstruction *anInstruction;
-    AbstractInstruction *anInstruction1;
     AbstractInstruction *anInstruction10;
-    AbstractInstruction *anInstruction11;
     AbstractInstruction *anInstruction12;
     AbstractInstruction *anInstruction13;
     AbstractInstruction *anInstruction14;
     AbstractInstruction *anInstruction15;
     AbstractInstruction *anInstruction16;
     AbstractInstruction *anInstruction17;
-    AbstractInstruction *anInstruction18;
-    AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
     AbstractInstruction *anInstruction4;
-    AbstractInstruction *anInstruction5;
-    AbstractInstruction *anInstruction6;
-    AbstractInstruction *anInstruction7;
     AbstractInstruction *anInstruction8;
     AbstractInstruction *anInstruction9;
     sqInt callTarget;
@@ -22871,7 +22880,7 @@
 	{ 0, -1 },
 	{ genPrimitiveNotIdentical, 1 },
 	{ genPrimitiveAsCharacter, -1 },
-	{ genPrimitiveCharacterValue, 0 },
+	{ genPrimitiveImmediateAsInteger, 0 },
 	{ 0, -1 },
 	{ 0, -1 },
 	{ 0, -1 },
@@ -23612,25 +23621,15 @@
 static void NoDbgRegParms
 adjustArgumentsForPerform(sqInt numArgs)
 {
-    AbstractInstruction *anInstruction;
-    AbstractInstruction *anInstruction1;
-    AbstractInstruction *anInstruction10;
-    AbstractInstruction *anInstruction11;
-    AbstractInstruction *anInstruction12;
     AbstractInstruction *anInstruction13;
     AbstractInstruction *anInstruction14;
     AbstractInstruction *anInstruction15;
-    AbstractInstruction *anInstruction2;
-    AbstractInstruction *anInstruction3;
     AbstractInstruction *anInstruction4;
     AbstractInstruction *anInstruction5;
-    AbstractInstruction *anInstruction6;
     AbstractInstruction *anInstruction7;
     AbstractInstruction *anInstruction8;
     AbstractInstruction *anInstruction9;
     sqInt index;
-    sqInt literal;
-    sqInt quickConstant;
     sqInt quickConstant1;
 
 	assert((numRegArgs()) <= 2);
@@ -24632,13 +24631,9 @@
 static sqInt
 genExternalizePointersForPrimitiveCall(void)
 {
-    sqInt address;
-    sqInt address1;
     sqInt address2;
     sqInt address3;
     sqInt address4;
-    AbstractInstruction *anInstruction;
-    AbstractInstruction *anInstruction1;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
     AbstractInstruction *anInstruction4;
@@ -24969,7 +24964,6 @@
 genMarshalledSendnumArgssendTable(sqInt selectorIndex, sqInt numArgs, sqInt *sendTable)
 {
     AbstractInstruction *anInstruction;
-    AbstractInstruction *anInstruction1;
     sqInt annotation;
 
 	assert(needsFrame);
@@ -25024,7 +25018,6 @@
 static sqInt NoDbgRegParms
 genMethodAbortTrampolineFor(sqInt numArgs)
 {
-    AbstractInstruction *anInstruction;
     AbstractInstruction *anInstruction1;
     AbstractInstruction *jumpSICMiss;
 
@@ -25517,6 +25510,9 @@
 static sqInt NoDbgRegParms
 genSendDirectedSupernumArgs(sqInt selectorIndex, sqInt numArgs)
 {
+    sqInt directedSuperSendTrampolines[NumSendTrampolines];
+    sqInt tempOop;
+
 	assert((((ssTop())->type)) == SSConstant);
 	tempOop = ((ssTop())->constant);
 	ssPop(1);

Modified: branches/Cog/nsspur64src/vm/cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.c	2016-02-27 22:26:23 UTC (rev 3633)
+++ branches/Cog/nsspur64src/vm/cointerp.c	2016-02-28 21:58:34 UTC (rev 3634)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1699 uuid: 186ebd51-28ef-4e7f-8411-96b61577b777
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1702 uuid: ca289ff1-8bc0-40d7-a4bb-42b583f02dd1
    from
-	CoInterpreter VMMaker.oscog-eem.1699 uuid: 186ebd51-28ef-4e7f-8411-96b61577b777
+	CoInterpreter VMMaker.oscog-eem.1702 uuid: ca289ff1-8bc0-40d7-a4bb-42b583f02dd1
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1699 uuid: 186ebd51-28ef-4e7f-8411-96b61577b777 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1702 uuid: ca289ff1-8bc0-40d7-a4bb-42b583f02dd1 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1614,8 +1614,8 @@
 _iss StackPage * stackPage;
 _iss sqInt nilObj;
 _iss sqInt argumentCount;
-_iss sqInt specialObjectsOop;
 _iss sqInt bytecodeSetSelector;
+_iss sqInt specialObjectsOop;
 _iss sqInt messageSelector;
 _iss usqInt instructionPointer;
 _iss usqInt newMethod;
@@ -1663,8 +1663,8 @@
 _iss sqInt profileSemaphore;
 _iss sqInt classTableIndex;
 _iss SpurNewSpaceSpace futureSpace;
-_iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt profileMethod;
+_iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt numRememberedEphemerons;
 _iss sqInt jmpDepth;
 _iss usqInt lastFreeChunk;
@@ -1765,8 +1765,6 @@
 _iss sqInt refCountToShrinkRT;
 _iss sqInt statCoalesces;
 _iss usqLong statIGCDeltaUsecs;
-_iss usqLong statIncrGCUsecs;
-_iss sqInt statIncrGCs;
 _iss sqInt statPendingFinalizationSignals;
 _iss sqInt statRootTableOverflows;
 _iss usqLong statSGCDeltaUsecs;
@@ -1784,8 +1782,9 @@
 _iss unsigned long byteCount;
 _iss SpurCircularBuffer highestObjects;
 _iss sqInt preferredPinningSegment;
-_iss char * stackMemory;
 _iss usqLong statFGCDeltaUsecs;
+_iss usqLong statIncrGCUsecs;
+_iss sqInt statIncrGCs;
 _iss sqInt theUnknownShort;
 #undef _iss
 #if SQ_USE_GLOBAL_STRUCT
@@ -1818,7 +1817,6 @@
 jmp_buf reenterInterpreter; /* private export */;
 sqInt checkAllocFiller;
 sqInt breakSelectorLength = MinSmallInteger;
-sqInt inIOProcessEvents;
 sqInt desiredEdenBytes;
 sqInt desiredNumStackPages;
 sqInt extraVMMemory;
@@ -1826,6 +1824,7 @@
 unsigned long maxOldSpaceSize;
 char * breakSelector;
 usqInt heapBase;
+sqInt inIOProcessEvents;
 void * showSurfaceFn;
 sqInt deferDisplayUpdates;
 struct VirtualMachine* interpreterProxy;
@@ -2442,7 +2441,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.1699";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1702";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -3594,8 +3593,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode);
@@ -3631,8 +3628,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode1);
@@ -3668,8 +3663,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode2);
@@ -3705,8 +3698,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode3);
@@ -3742,8 +3733,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode4);
@@ -3779,8 +3768,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode5);
@@ -3816,8 +3803,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode6);
@@ -3853,8 +3838,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode7);
@@ -3890,8 +3873,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode8);
@@ -3927,8 +3908,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode9);
@@ -3964,8 +3943,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode10);
@@ -4001,8 +3978,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode11);
@@ -4038,8 +4013,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode12);
@@ -4075,8 +4048,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode13);
@@ -4112,8 +4083,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode14);
@@ -4149,8 +4118,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode15);
@@ -4185,8 +4152,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode16);
@@ -4221,8 +4186,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode17);
@@ -4257,8 +4220,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode18);
@@ -4293,8 +4254,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode19);
@@ -4329,8 +4288,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode20);
@@ -4365,8 +4322,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode21);
@@ -4401,8 +4356,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode22);
@@ -4437,8 +4390,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode23);
@@ -4473,8 +4424,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode24);
@@ -4509,8 +4458,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode25);
@@ -4545,8 +4492,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode26);
@@ -4581,8 +4526,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode27);
@@ -4617,8 +4560,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode28);
@@ -4653,8 +4594,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode29);
@@ -4689,8 +4628,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode30);
@@ -4725,8 +4662,6 @@
 			/* pushLiteralVariableBytecode */
 			{
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(pushLiteralVariableBytecode31);
@@ -5693,8 +5628,6 @@
 				sqInt litVar;
 				sqInt object;
 				sqInt object1;
-				sqInt object2;
-				sqInt objOop;
 				sqInt referent;
 				sqInt variableIndex;
 				sqInt variableType;
@@ -6435,8 +6368,6 @@
 				sqInt litVar1;
 				sqInt object;
 				sqInt object1;
-				sqInt object2;
-				sqInt objOop;
 				sqInt onCurrentPage;
 				sqInt opType;
 				sqInt rcvr;
@@ -7172,24 +7103,18 @@
 			/* pushClosureCopyCopiedValuesBytecode */
 			{
 				sqInt blockSize;
-				sqInt classObj;
 				sqInt context;
 				sqInt i;
 				sqInt initialIP;
-				sqInt knownClassIndex;
 				sqInt newClosure;
 				sqInt newClosure1;
 				usqInt newObj;
-				usqInt newObj1;
 				sqInt numArgs;
 				sqInt numArgsNumCopied;
 				usqInt numBytes;
-				usqInt numBytes1;
 				sqInt numCopied;
 				sqInt numSlots;
-				sqInt numSlots1;
 				sqInt objFormat;
-				sqInt objFormat1;
 				char *theFP;
 				char *theSP;
 
@@ -12303,8 +12228,6 @@
 			{
 				sqInt index;
 				sqInt litVar;
-				sqInt object;
-				sqInt objOop;
 				sqInt referent;
 
 				VM_LABEL(extPushLiteralVariableBytecode);
@@ -14336,23 +14259,17 @@
 			{
 				sqInt blockSize;
 				sqInt byte;
-				sqInt classObj;
 				sqInt context;
 				sqInt i;
 				sqInt initialIP;
-				sqInt knownClassIndex;
 				sqInt newClosure;
 				sqInt newClosure1;
 				usqInt newObj;
-				usqInt newObj1;
 				sqInt numArgs;
 				usqInt numBytes;
-				usqInt numBytes1;
 				sqInt numCopied;
 				sqInt numSlots;
-				sqInt numSlots1;
 				sqInt objFormat;
-				sqInt objFormat1;
 				char *theFP;
 				char *theSP;
 
@@ -14860,6 +14777,7 @@
 {
 	freeStackPageNoAssert(aPage);
 	assert(pageListIsWellFormed());
+	return 0;
 }
 
 
@@ -15295,7 +15213,6 @@
     sqInt header;
     sqInt methodHeader;
     sqInt p;
-    sqInt primBits;
     sqInt primitiveIndex;
     sqInt probe;
 
@@ -15671,7 +15588,6 @@
     volatile sqInt header1;
     volatile jmp_buf savedReenterInterpreter;
     volatile sqInt wasInMachineCode;
-    volatile sqInt xArray;
 
 
 	/* For now, do not allow a callback unless we're in a primitiveResponse */
@@ -16606,7 +16522,6 @@
     sqInt header;
     sqInt methodHeader;
     CogMethod *pic;
-    sqInt primBits;
     sqInt primitiveIndex;
     sqInt top;
 
@@ -16665,7 +16580,6 @@
     sqInt firstBytecode;
     sqInt header;
     sqInt methodHeader;
-    sqInt primBits;
     sqInt primitiveIndex;
     char *sp;
     sqInt tagBits;
@@ -16728,6 +16642,7 @@
 		? (GIV(lkupClass) = longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (((long)tagBits1) << (shiftForWord()))))
 		: (GIV(lkupClass) = fetchClassOfNonImm(rcvr))));
 	assert(0);
+	return 0;
 }
 
 	/* CoInterpreter>>#ceNonLocalReturn: */
@@ -17858,7 +17773,6 @@
     sqInt index;
     sqInt methodHeader;
     sqInt oop;
-    sqInt primBits;
     sqInt primIndex;
     sqInt referent;
     sqInt scannedStackFrame;
@@ -18283,7 +18197,7 @@
 	GIV(statCodeCompactionUsecs) += (ioUTCMicrosecondsNow()) - startTime;
 	if (checkForLeaks != 0) {
 		clearLeakMapAndMapAccessibleObjects();
-		assert(checkCodeIntegrity(0));
+		asserta(checkCodeIntegrity(0));
 	}
 }
 
@@ -18739,6 +18653,7 @@
 	else {
 		activateNewMethod();
 	}
+	return 0;
 }
 
 
@@ -18926,6 +18841,7 @@
 	if (methodHasCogMethod(methodObj)) {
 		rewritePrimInvocationInto(cogMethodOf(methodObj), primitiveExternalCall);
 	}
+	return 0;
 }
 
 
@@ -23862,7 +23778,6 @@
 primitivePropertyFlags(sqInt primIndex)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt baseFlags;
-    sqInt baseFlags1;
 
 	/* begin primitivePropertyFlagsForSpur: */
 	baseFlags = PrimCallNeedsPrimitiveFunction + PrimCallNeedsNewMethod;
@@ -23906,7 +23821,6 @@
     sqInt address;
     sqInt firstBytecode;
     sqInt methodHeader;
-    sqInt primBits;
     sqInt primitive;
     sqInt theMethod;
 
@@ -24276,6 +24190,7 @@
 			}
 		}
 	}
+	return 0;
 }
 
 	/* CoInterpreter>>#printLogEntryAt: */
@@ -24478,6 +24393,7 @@
 			/* return self */
 		}
 	}
+	return 0;
 }
 
 	/* CoInterpreter>>#quickPrimitiveConstantFor: */
@@ -25199,12 +25115,7 @@
 	/* CoInterpreter>>#roomToPushNArgs: */
 static sqInt NoDbgRegParms
 roomToPushNArgs(sqInt n)
-{   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt cntxSize;
-    sqInt header;
-    sqInt methodHeader;
-    sqInt methodObj;
-
+{
 	
 	/* simpler code that simply insists args are <= max arg count */
 	return n <= (LargeContextSlots - CtxtTempFrameStart);
@@ -25246,7 +25157,6 @@
     sqInt errorCode;
     sqInt i;
     usqInt initialIP;
-    sqInt integerValue;
     sqInt methodHeader;
     sqInt methodHeader1;
     sqInt numArgs;
@@ -25738,6 +25648,7 @@
 	/* begin space */
 	putchar(' ');
 	shortPrintOop(rcvr);
+	return 0;
 }
 
 
@@ -26364,7 +26275,6 @@
 validInstructionPointerinMethodframePointer(usqInt instrPointer, usqInt aMethod, char *fp)
 {
     CogMethod *cogMethod;
-    sqInt header;
     sqInt methodField;
     usqInt theInstrPointer;
 
@@ -27054,7 +26964,6 @@
     sqInt i;
     sqInt methodHeader;
     sqInt oldMethod;
-    sqInt primBits;
     sqInt primIdx;
     sqInt probe;
 
@@ -27174,6 +27083,7 @@
 	if (flushState) {
 		siglongjmp(reenterInterpreter, ReturnToInterpreter);
 	}
+	return 0;
 }
 
 
@@ -27455,6 +27365,7 @@
 	if (flushState) {
 		siglongjmp(reenterInterpreter, ReturnToInterpreter);
 	}
+	return 0;
 }
 
 
@@ -28194,7 +28105,6 @@
     sqInt prevObj1;
     sqInt prevPrevObj;
     sqInt prevPrevObj1;
-    sqInt primBits;
     sqInt primIdx;
     sqInt probe;
     sqInt senderOop;
@@ -28907,7 +28817,6 @@
 static sqInt NoDbgRegParms
 magnitude64BitIntegerForneg(usqLong magnitude, sqInt isNegative)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    usqInt highWord;
     sqInt isSmall;
     sqInt largeClass;
     sqInt newLargeInteger;
@@ -29045,10 +28954,6 @@
 usqInt
 positive32BitValueOf(sqInt oop)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt ccIndex;
-    sqInt fmt;
-    sqInt ok;
-    sqInt sz;
     sqInt value;
 
 	if ((((oop) & 7) == 1)) {
@@ -29533,7 +29438,6 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt characterCode;
     sqInt characterObject;
-    sqInt objOop;
     sqInt reasonCode;
     char *sp;
 
@@ -29586,7 +29490,6 @@
     sqInt integerValue;
     usqInt numSlots;
     usqInt numSlots1;
-    sqInt objOop;
     sqInt rcvr;
     sqInt reasonCode;
     sqInt result;
@@ -29729,37 +29632,23 @@
 static void
 primitiveAtPut(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt class;
     sqInt class1;
-    sqInt fixedFields;
     sqInt fixedFields1;
-    sqInt fmt;
     sqInt fmt1;
-    sqLong hdr;
     sqLong hdr1;
     sqInt index;
-    usqInt numSlots;
-    usqInt numSlots1;
     usqInt numSlots11;
     usqInt numSlots2;
     sqInt rcvr;
-    sqInt reasonCode;
     sqInt reasonCode1;
-    sqInt signedValueToStore;
     sqInt signedValueToStore1;
     char *sp;
-    sqInt sp1;
     sqInt sp11;
-    sqInt sp2;
     sqInt sp3;
-    sqInt stSize;
     sqInt stSize1;
-    sqInt totalLength;
     sqInt totalLength1;
-    usqInt unsignedValueToStore;
     usqInt unsignedValueToStore1;
     sqInt value;
-    sqInt value1;
 
 	/* begin commonAtPut: */
 	GIV(primFailCode) = 0;
@@ -30292,11 +30181,8 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     usqLong integerArgument;
     usqLong integerReceiver;
-    sqInt integerValue;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
 
 	integerArgument = longAt(GIV(stackPointer));
 
@@ -30349,11 +30235,8 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     usqLong integerArgument;
     usqLong integerReceiver;
-    sqInt integerValue;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
 
 	integerArgument = longAt(GIV(stackPointer));
 
@@ -30547,13 +30430,10 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     usqLong integerArgument;
     usqLong integerReceiver;
-    sqInt integerValue;
     sqInt oop;
     sqInt oop1;
-    sqInt oop2;
     char *sp;
     char *sp1;
-    char *sp2;
 
 	integerArgument = longAt(GIV(stackPointer));
 	integerReceiver = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -31026,6 +30906,7 @@
 	oop1 = oop2;
 	longAtput((sp = GIV(stackPointer) + ((2 - 1) * BytesPerWord)), oop1);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 	/* InterpreterPrimitives>>#primitiveClosureValue */
@@ -32261,6 +32142,7 @@
 	crashInThisOrAnotherThread(crashInThisThread);
 	/* begin pop: */
 	GIV(stackPointer) += 1 * BytesPerWord;
+	return 0;
 }
 
 
@@ -32297,6 +32179,7 @@
 		/* begin pop: */
 		GIV(stackPointer) += 1 * BytesPerWord;
 	}
+	return 0;
 }
 
 	/* InterpreterPrimitives>>#primitiveDiv */
@@ -32624,6 +32507,7 @@
 	if (!GIV(primFailCode)) {
 		GIV(primFailCode) = 1;
 	}
+	return 0;
 }
 
 
@@ -33924,7 +33808,6 @@
     sqInt prevObj1;
     sqInt prevPrevObj;
     sqInt prevPrevObj1;
-    sqInt primBits;
     sqInt primIdx;
     sqInt slotBytes;
     sqInt slotBytes1;
@@ -34421,6 +34304,7 @@
 	/* begin push: */
 	longAtput((sp = GIV(stackPointer) - BytesPerWord), stringOop);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -34578,6 +34462,7 @@
 	/* begin push: */
 	longAtput((sp = GIV(stackPointer) - BytesPerWord), labelOop);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -34649,6 +34534,7 @@
 	object = pointResult;
 	longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 	/* InterpreterPrimitives>>#primitiveGreaterOrEqual */
@@ -34794,6 +34680,7 @@
 l1:	/* end positive32BitIntegerFor: */;
 	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -34818,6 +34705,7 @@
 	object = positive64BitIntegerFor(ioHighResClock());
 	longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -34916,6 +34804,7 @@
 l1:	/* end positive32BitIntegerFor: */;
 	longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -35337,6 +35226,7 @@
 	oop = (((ioHeartbeatMilliseconds()) << 3) | 1);
 	longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -35456,6 +35346,7 @@
 		? GIV(trueObj)
 		: GIV(falseObj)));
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -35508,6 +35399,7 @@
 		: GIV(falseObj));
 	longAtput((sp = GIV(stackPointer) - BytesPerWord), object);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -36061,6 +35953,7 @@
 	/* begin pop:thenPush: */
 	longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), (((sqInt)MillisecondClockMask << 3) | 1));
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 	/* InterpreterPrimitives>>#primitiveMod */
@@ -36379,7 +36272,6 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt classFormat;
     sqInt classIndex;
-    sqInt classObj;
     sqInt classObj1;
     sqInt err;
     sqInt hash;
@@ -36389,14 +36281,10 @@
     usqInt numBytes;
     sqInt numSlots;
     sqInt obj;
-    sqInt oop;
     usqInt p;
     sqInt reasonCode;
     char *sp;
-    char *sp1;
-    sqInt spaceOkay;
 
-	spaceOkay = 0;
 	
 	/* For the mirror prims check that the class obj is actually a valid class. */
 	if (!((GIV(argumentCount) < 1)
@@ -36658,21 +36546,16 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt bs;
     sqInt ccIndex;
-    sqInt classObj;
     sqInt fmt;
     sqInt instSpec;
     sqInt obj;
     sqInt ok;
-    sqInt oop;
     sqInt oop1;
     sqInt reasonCode;
     unsigned long size;
     char *sp;
-    char *sp1;
-    sqInt spaceOkay;
     sqInt value;
 
-	spaceOkay = 0;
 	
 	/* For the mirror prims check that the class obj is actually a valid class. */
 	if (!((GIV(argumentCount) < 2)
@@ -37088,6 +36971,7 @@
 	oop = ((((ioOldMSecs()) & MillisecondClockMask) << 3) | 1);
 	longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -37396,6 +37280,7 @@
 	/* begin pop:thenPush: */
 	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), path);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 	/* InterpreterPrimitives>>#primitivePerformInSuperclass */
@@ -37561,8 +37446,6 @@
     sqInt argumentArray;
     usqInt arraySize;
     sqInt delta;
-    sqInt err;
-    sqInt hash;
     sqInt index;
     sqInt nItems;
     usqInt numSlots;
@@ -37681,6 +37564,7 @@
 	longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), GIV(profileMethod));
 	GIV(stackPointer) = sp;
 	GIV(profileMethod) = GIV(nilObj);
+	return 0;
 }
 
 
@@ -37706,6 +37590,7 @@
 	longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), GIV(profileProcess));
 	GIV(stackPointer) = sp;
 	GIV(profileProcess) = GIV(nilObj);
+	return 0;
 }
 
 
@@ -37759,6 +37644,7 @@
 		/* begin pop: */
 		GIV(stackPointer) += 1 * BytesPerWord;
 	}
+	return 0;
 }
 
 	/* InterpreterPrimitives>>#primitiveQuit */
@@ -38362,6 +38248,7 @@
 	/* begin pop:thenPushInteger: */
 	longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), ((depth << 3) | 1));
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -38735,6 +38622,7 @@
 		/* begin pop: */
 		GIV(stackPointer) += GIV(argumentCount) * BytesPerWord;
 	}
+	return 0;
 }
 
 	/* InterpreterPrimitives>>#primitiveSetOrHasIdentityHash */
@@ -38877,6 +38765,7 @@
 		/* begin pop: */
 		GIV(stackPointer) += GIV(argumentCount) * BytesPerWord;
 	}
+	return 0;
 }
 
 
@@ -38928,6 +38817,7 @@
 		/* begin pop: */
 		GIV(stackPointer) += GIV(argumentCount) * BytesPerWord;
 	}
+	return 0;
 }
 
 
@@ -40553,7 +40443,6 @@
     sqInt integerValue;
     usqInt numSlots;
     usqInt numSlots1;
-    sqInt objOop;
     sqInt rcvr;
     sqInt reasonCode;
     sqInt result;
@@ -40700,34 +40589,21 @@
 primitiveStringAtPut(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt class;
-    sqInt class1;
     sqInt fixedFields;
-    sqInt fixedFields1;
     sqInt fmt;
-    sqInt fmt1;
     sqLong hdr;
-    sqLong hdr1;
     sqInt index;
     usqInt numSlots;
     usqInt numSlots1;
-    usqInt numSlots11;
-    usqInt numSlots2;
     sqInt rcvr;
     sqInt reasonCode;
-    sqInt reasonCode1;
     sqInt signedValueToStore;
-    sqInt signedValueToStore1;
     char *sp;
     sqInt sp1;
-    sqInt sp11;
     sqInt sp2;
-    sqInt sp3;
     sqInt stSize;
-    sqInt stSize1;
     sqInt totalLength;
-    sqInt totalLength1;
     usqInt unsignedValueToStore;
-    usqInt unsignedValueToStore1;
     sqInt value;
     sqInt value1;
 
@@ -41483,7 +41359,6 @@
     sqInt prevObj1;
     sqInt prevPrevObj;
     sqInt prevPrevObj1;
-    sqInt primBits;
     sqInt primIdx;
     sqInt slotBytes;
     sqInt slotBytes1;
@@ -41817,6 +41692,7 @@
 	/* begin pop:thenPush: */
 	longAtput((sp = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), resultArray);
 	GIV(stackPointer) = sp;
+	return 0;
 }
 
 
@@ -42327,6 +42203,7 @@
 			GIV(primFailCode) = 1;
 		}
 	}
+	return 0;
 }
 
 	/* Spur64BitCoMemoryManager>>#ceScheduleScavenge */
@@ -43833,8 +43710,6 @@
 addToEphemeronList(sqInt ephemeronCorpse)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt ephemeronListOffset;
-    sqInt format;
-    sqInt hash;
 
 	assert(!(isScavengeSurvivor(keyOfEphemeron(followForwarded(ephemeronCorpse)))));
 	ephemeronListOffset = (!(GIV(ephemeronList))
@@ -43862,8 +43737,6 @@
 static void NoDbgRegParms NeverInline
 addToWeakList(sqInt weakCorpse)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt format;
-    sqInt hash;
     sqInt weakListOffset;
 
 	weakListOffset = (!(GIV(weakList))
@@ -45236,8 +45109,6 @@
     sqInt corpseOffset;
     sqInt ephemeron;
     sqInt ephemeronCorpse;
-    sqInt format;
-    sqInt hash;
     sqInt nextCorpseOffset;
     sqInt previousCorpse;
     sqInt referent;
@@ -45433,6 +45304,7 @@
 			return objAfter;
 		}
 	}
+	return 0;
 }
 
 
@@ -50682,6 +50554,7 @@
 			return PrimErrLimitExceeded;
 		}
 	}
+	return 0;
 }
 
 	/* SpurMemoryManager>>#ephemeronFormat */
@@ -51599,6 +51472,7 @@
 		firstPage = stackOrNil;
 	}
 	assert(isValidObjStackAt(objStackRootIndex));
+	return 0;
 }
 
 
@@ -53062,21 +52936,16 @@
 inPlaceBecomeandcopyHashFlag(sqInt obj1, sqInt obj2, sqInt copyHashFlag)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt fmt;
-    sqInt hash;
     sqLong hash1;
     sqLong hash2;
-    sqInt hashTemp;
     sqLong header1;
     sqLong header2;
-    sqLong headerTemp;
     sqInt i;
     sqInt iLimiT;
     sqInt o1HasYoung;
     sqInt o2HasYoung;
     sqLong remembered1;
-    sqInt remembered11;
     sqLong remembered2;
-    sqInt remembered21;
     sqInt temp1;
     sqInt temp2;
 
@@ -61538,7 +61407,7 @@
     usqInt prevFree;
     usqInt prevFreeChunk;
     usqInt prevPrevFree;
-    sqInt prevPrevFreeChunk;
+    usqInt prevPrevFreeChunk;
     sqInt slotBytes;
     sqInt slotBytes1;
     usqInt there;
@@ -65189,7 +65058,7 @@
 	if (gcModes & GCModeFreeSpace) {
 		reverseDisplayFromto(16, 19);
 		clearLeakMapAndMapAccessibleFreeSpace();
-		assert(checkHeapFreeSpaceIntegrity());
+		asserta(checkHeapFreeSpaceIntegrity());
 	}
 }
 
@@ -65206,10 +65075,10 @@
 			reverseDisplayFromto(8, 15);
 		}
 		clearLeakMapAndMapAccessibleObjects();
-		assert(checkHeapIntegrityclassIndicesShouldBeValid(0, 1));
-		assert(checkInterpreterIntegrity());
-		assert(checkStackIntegrity());
-		assert(checkCodeIntegrity(gcModes));
+		asserta(checkHeapIntegrityclassIndicesShouldBeValid(0, 1));
+		asserta(checkInterpreterIntegrity());
+		asserta(checkStackIntegrity());
+		asserta(checkCodeIntegrity(gcModes));
 	}
 	return;
 }
@@ -65227,10 +65096,10 @@
 			reverseDisplayFromto(8, 15);
 		}
 		clearLeakMapAndMapAccessibleObjects();
-		assert(checkHeapIntegrityclassIndicesShouldBeValid(excludeUnmarkedNewSpaceObjs, classIndicesShouldBeValid));
-		assert(checkInterpreterIntegrity());
-		assert(checkStackIntegrity());
-		assert(checkCodeIntegrity(gcModes));
+		asserta(checkHeapIntegrityclassIndicesShouldBeValid(excludeUnmarkedNewSpaceObjs, classIndicesShouldBeValid));
+		asserta(checkInterpreterIntegrity());
+		asserta(checkStackIntegrity());
+		asserta(checkCodeIntegrity(gcModes));
 	}
 }
 
@@ -67072,6 +66941,7 @@
 			return (&(GIV(segments)[nextx]));
 		}
 	}
+	return 0;
 }
 
 
@@ -67634,7 +67504,6 @@
     sqInt header;
     sqInt methodHeader;
     sqInt p;
-    sqInt primBits;
     sqInt primitiveIndex;
     usqInt probe;
 
@@ -67782,6 +67651,7 @@
 	if (!GIV(primFailCode)) {
 		GIV(primFailCode) = 1;
 	}
+	return 0;
 }
 
 
@@ -67885,7 +67755,6 @@
 canContextSwitchIfActivatingheader(sqInt theMethod, sqInt methodHeader)
 {
     sqInt firstBytecode;
-    sqInt primBits;
     sqInt primitiveIndex;
 
 	if (methodHeader & AlternateHeaderHasPrimFlag) {
@@ -67914,8 +67783,6 @@
 sqInt
 characterForAscii(sqInt ascii)
 {
-    sqInt objOop;
-
 	return (((long)ascii) << (numTagBits())) + (characterTag());
 }
 
@@ -68744,25 +68611,13 @@
 createActualMessageTo(sqInt lookupClass)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt argumentArray;
-    sqInt classObj;
-    sqInt classObj1;
     sqInt i;
-    sqInt knownClassIndex;
-    sqInt knownClassIndex1;
     sqInt message;
     usqInt newObj;
     usqInt newObj1;
-    usqInt newObj2;
-    usqInt newObj3;
     usqInt numBytes;
     usqInt numBytes1;
-    usqInt numBytes2;
-    usqInt numBytes3;
     sqInt numSlots;
-    sqInt numSlots1;
-    sqInt numSlots2;
-    sqInt objFormat;
-    sqInt objFormat1;
     char *sp;
 
 
@@ -68963,6 +68818,7 @@
 			ioShowDisplay(dispBitsIndex, w, h, d, left, right, top, bottom);
 		}
 	}
+	return 0;
 }
 
 	/* StackInterpreter>>#divorceAllFrames */
@@ -70094,6 +69950,7 @@
 	assert(GIV(stackPage) == (mostRecentlyUsedPage()));
 	assert(pageListIsWellFormed());
 	assert(validStackPageBaseFrames());
+	return 0;
 }
 
 
@@ -70995,6 +70852,7 @@
 		iccFunc();
 	}
 	GIV(statForceInterruptCheck) += 1;
+	return 0;
 }
 
 
@@ -72968,6 +72826,7 @@
 		currentClass = objOop1;
 	}
 	error("Recursive not understood error encountered");
+	return 0;
 }
 
 
@@ -73940,7 +73799,6 @@
     sqInt callerContextOrNil;
     sqInt context;
     sqInt i;
-    sqInt i1;
     sqInt index;
     sqInt index1;

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list