[Vm-dev] [commit][3555] CogVM source as per VMMaker.oscog-eem.1639

commits at squeakvm.org commits at squeakvm.org
Sat Jan 16 04:22:19 UTC 2016


Revision: 3555
Author:   eliot
Date:     2016-01-15 20:22:18 -0800 (Fri, 15 Jan 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1639

Cogit:
Fix slip in immutability jumps.  jumpTarget is not a selector.
getJmpTarget is.

64-bit Spur Cogit:
Generate cleaner SmallFloat arithmetic and comparison code by
extracting arg tag once.

Implement MoveRM[16|b]r for MIPSEL and correct machine code size of
MoveMbrR/RMbrR.

Spur:
Add some commentary on default sizes, explaining why 64-bit Spur
has the same default eden size as 32-bits.

Modified Paths:
--------------
    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

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

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cogit.h	2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c	2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -1005,6 +1005,7 @@
 static sqInt genLongUnconditionalForwardJump(void);
 static sqInt NoDbgRegParms genLookupForPerformNumArgs(sqInt numArgs);
 static AbstractInstruction * NoDbgRegParms genMoveConstantR(sqInt constant, sqInt reg);
+static AbstractInstruction * NoDbgRegParms genMoveFalseR(sqInt reg);
 static sqInt NoDbgRegParms genMoveTrueR(sqInt reg);
 static sqInt NoDbgRegParms genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName);
 static void NoDbgRegParms genPrimReturnEnterCogCodeEnilopmart(sqInt profiling);
@@ -10446,12 +10447,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    usqInt delta;
+    sqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    usqInt location;
-    usqInt mapEntry;
+    sqInt location;
+    sqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 
@@ -15515,7 +15516,7 @@
 
 	/* FP jumps are a little weird */
 	jumpCond = jumpOpcodeGenerator(0);
-	/* begin genMoveConstant:R: */
+	/* begin genMoveFalseR: */
 	constant = falseObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -16194,6 +16195,7 @@
 	jumpNotSI = genJumpNotSmallInteger(Arg0Reg);
 	genShiftAwaySmallIntegerTagsInScratchReg(ClassReg);
 	genRemoveSmallIntegerTagsInScratchReg(Arg1Reg);
+	/* begin MulR:R: */
 	genMulRR(backEnd, Arg1Reg, ClassReg);
 	/* begin JumpOverflow: */
 	jumpOvfl = genConditionalBranchoperand(JumpOverflow, ((sqInt)0));
@@ -16340,7 +16342,7 @@
 	/* begin CmpR:R: */
 	genoperandoperand(CmpRR, Arg0Reg, ReceiverResultReg);
 	jumpTrue = genConditionalBranchoperand(jumpOpcode, 0);
-	/* begin genMoveConstant:R: */
+	/* begin genMoveFalseR: */
 	constant = falseObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -16411,7 +16413,7 @@
 
 	/* FP jumps are a little weird */
 	jumpCond = jumpFPOpcodeGenerator(0);
-	/* begin genMoveConstant:R: */
+	/* begin genMoveFalseR: */
 	constant = falseObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -20504,7 +20506,7 @@
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpCmp, genMoveConstantR(falseObject(), ReceiverResultReg));
+	jmpTarget(jumpCmp, genMoveFalseR(ReceiverResultReg));
 	/* begin genPrimReturn */
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
@@ -23469,6 +23471,25 @@
 			anInstruction));
 }
 
+	/* SimpleStackBasedCogit>>#genMoveFalseR: */
+static AbstractInstruction * NoDbgRegParms
+genMoveFalseR(sqInt reg)
+{
+    AbstractInstruction *anInstruction;
+    sqInt constant;
+
+	/* begin genMoveConstant:R: */
+	constant = falseObject();
+	return (shouldAnnotateObjectReference(constant)
+		? annotateobjRef(gMoveCwR(constant, reg), constant)
+		: (/* begin MoveCq:R: */
+			(anInstruction = genoperandoperand(MoveCqR, constant, reg)),
+			(usesOutOfLineLiteral(anInstruction)
+					? (anInstruction->dependent = locateLiteral(constant))
+					: 0),
+			anInstruction));
+}
+
 	/* SimpleStackBasedCogit>>#genMoveTrueR: */
 static sqInt NoDbgRegParms
 genMoveTrueR(sqInt reg)

Modified: branches/Cog/nsspursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitIA32.c	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c	2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -843,7 +843,7 @@
 static sqInt NoDbgRegParms genGetClassIndexOfNonImminto(sqInt sourceReg, sqInt destReg);
 static sqInt NoDbgRegParms genGetClassObjectOfClassIndexintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
 static sqInt NoDbgRegParms genGetClassObjectOfintoscratchReginstRegIsReceiver(sqInt instReg, sqInt destReg, sqInt scratchReg, sqInt instRegIsReceiver);
-static sqInt NoDbgRegParms genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
+static AbstractInstruction * NoDbgRegParms genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
 static sqInt NoDbgRegParms genGetCompactClassIndexNonImmOfinto(sqInt instReg, sqInt destReg);
 static sqInt NoDbgRegParms genGetDoubleValueOfinto(sqInt srcReg, sqInt destFPReg);
 static sqInt NoDbgRegParms genGetFormatOfinto(sqInt srcReg, sqInt destReg);
@@ -929,8 +929,8 @@
 static sqInt genLongUnconditionalBackwardJump(void);
 static sqInt genLongUnconditionalForwardJump(void);
 static sqInt NoDbgRegParms genLookupForPerformNumArgs(sqInt numArgs);
-static AbstractInstruction * NoDbgRegParms genMoveConstantR(sqInt constant, sqInt reg);
-static sqInt NoDbgRegParms genMoveTrueR(sqInt reg);
+static AbstractInstruction * NoDbgRegParms genMoveFalseR(sqInt reg);
+static AbstractInstruction * NoDbgRegParms genMoveTrueR(sqInt reg);
 static sqInt NoDbgRegParms genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName);
 static void NoDbgRegParms genPrimReturnEnterCogCodeEnilopmart(sqInt profiling);
 static sqInt genPushClosureTempsBytecode(void);
@@ -3158,7 +3158,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset16) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset16) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset16) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpLongNonZero:
@@ -3198,7 +3198,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset18) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset18) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset18) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case Jump:
@@ -3263,7 +3263,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset110) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset110) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset110) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpNonNegative:
@@ -3301,7 +3301,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset111) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset111) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset111) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpOverflow:
@@ -3339,7 +3339,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset112) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset112) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset112) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpNoOverflow:
@@ -3377,7 +3377,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset113) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset113) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset113) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpCarry:
@@ -3417,7 +3417,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset114) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset114) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset114) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpNoCarry:
@@ -3457,7 +3457,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset115) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset115) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset115) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpLess:
@@ -3495,7 +3495,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset116) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset116) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset116) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpGreaterOrEqual:
@@ -3533,7 +3533,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset117) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset117) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset117) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpGreater:
@@ -3571,7 +3571,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset118) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset118) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset118) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpLessOrEqual:
@@ -3609,7 +3609,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset119) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset119) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset119) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpAbove:
@@ -3648,7 +3648,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset120) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset120) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset120) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpBelowOrEqual:
@@ -3687,7 +3687,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset121) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset121) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset121) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpFPOrdered:
@@ -3725,7 +3725,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset122) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset122) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset122) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case JumpFPUnordered:
@@ -3763,7 +3763,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset123) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset123) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset123) >> 24) & 0xFF);
-		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
+		((self_in_dispatchConcretize->machineCodeSize) = 6);
 		return;
 
 	case RetN:
@@ -9600,12 +9600,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    usqInt delta;
+    sqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    usqInt location;
-    usqInt mapEntry;
+    sqInt location;
+    sqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 
@@ -14640,7 +14640,7 @@
 
 	/* FP jumps are a little weird */
 	jumpCond = jumpOpcodeGenerator(0);
-	/* begin genMoveConstant:R: */
+	/* begin genMoveFalseR: */
 	constant = falseObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -14653,7 +14653,7 @@
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpCond, genMoveConstantR(trueObject(), ReceiverResultReg));
+	jmpTarget(jumpCond, genMoveTrueR(ReceiverResultReg));
 	/* begin genPrimReturn */
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
@@ -15423,7 +15423,7 @@
 	/* begin CmpR:R: */
 	genoperandoperand(CmpRR, Arg0Reg, ReceiverResultReg);
 	jumpTrue = genConditionalBranchoperand(jumpOpcode, 0);
-	/* begin genMoveConstant:R: */
+	/* begin genMoveFalseR: */
 	constant = falseObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -15436,7 +15436,7 @@
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpTrue, genMoveConstantR(trueObject(), ReceiverResultReg));
+	jmpTarget(jumpTrue, genMoveTrueR(ReceiverResultReg));
 	/* begin genPrimReturn */
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
@@ -15491,7 +15491,7 @@
 
 	/* FP jumps are a little weird */
 	jumpCond = jumpFPOpcodeGenerator(0);
-	/* begin genMoveConstant:R: */
+	/* begin genMoveFalseR: */
 	constant = falseObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -15504,7 +15504,7 @@
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpCond, genMoveConstantR(trueObject(), ReceiverResultReg));
+	jmpTarget(jumpCond, genMoveTrueR(ReceiverResultReg));
 	/* begin genPrimReturn */
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
@@ -18380,7 +18380,7 @@
 }
 
 	/* CogObjectRepresentationForSpur>>#genGetClassTagOf:into:scratchReg: */
-static sqInt NoDbgRegParms
+static AbstractInstruction * NoDbgRegParms
 genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg)
 {
 	return genGetInlineCacheClassTagFromintoforEntry(instReg, destReg, 1);
@@ -18781,7 +18781,7 @@
 		/* begin JumpNonZero: */
 		jumpCmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
 	}
-	/* begin genMoveConstant:R: */
+	/* begin genMoveTrueR: */
 	constant = trueObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -18794,7 +18794,7 @@
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpCmp, genMoveConstantR(falseObject(), ReceiverResultReg));
+	jmpTarget(jumpCmp, genMoveFalseR(ReceiverResultReg));
 	/* begin genPrimReturn */
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
@@ -20866,12 +20866,15 @@
 	return 0;
 }
 
-	/* SimpleStackBasedCogit>>#genMoveConstant:R: */
+	/* SimpleStackBasedCogit>>#genMoveFalseR: */
 static AbstractInstruction * NoDbgRegParms
-genMoveConstantR(sqInt constant, sqInt reg)
+genMoveFalseR(sqInt reg)
 {
     AbstractInstruction *anInstruction;
+    sqInt constant;
 
+	/* begin genMoveConstant:R: */
+	constant = falseObject();
 	return (shouldAnnotateObjectReference(constant)
 		? annotateobjRef(gMoveCwR(constant, reg), constant)
 		: (/* begin MoveCq:R: */
@@ -20880,7 +20883,7 @@
 }
 
 	/* SimpleStackBasedCogit>>#genMoveTrueR: */
-static sqInt NoDbgRegParms
+static AbstractInstruction * NoDbgRegParms
 genMoveTrueR(sqInt reg)
 {
     AbstractInstruction *anInstruction;

Modified: branches/Cog/nsspursrc/vm/cogitMIPSEL.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitMIPSEL.c	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cogitMIPSEL.c	2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -757,11 +757,11 @@
 static sqInt NoDbgRegParms computeMaximumSize(AbstractInstruction * self_in_computeMaximumSize);
 static usqInt NoDbgRegParms concretizeAddCheckOverflowCqR(AbstractInstruction * self_in_concretizeAddCheckOverflowCqR);
 static usqInt NoDbgRegParms concretizeAddCheckOverflowRR(AbstractInstruction * self_in_concretizeAddCheckOverflowRR);
-static sqInt NoDbgRegParms concretizeAddCqR(AbstractInstruction * self_in_concretizeAddCqR);
+static usqInt NoDbgRegParms concretizeAddCqR(AbstractInstruction * self_in_concretizeAddCqR);
 static usqInt NoDbgRegParms concretizeAddCwR(AbstractInstruction * self_in_concretizeAddCwR);
 static usqInt NoDbgRegParms concretizeAddRR(AbstractInstruction * self_in_concretizeAddRR);
 static AbstractInstruction * NoDbgRegParms concretizeAlignmentNops(AbstractInstruction * self_in_concretizeAlignmentNops);
-static sqInt NoDbgRegParms concretizeAndCqR(AbstractInstruction * self_in_concretizeAndCqR);
+static usqInt NoDbgRegParms concretizeAndCqR(AbstractInstruction * self_in_concretizeAndCqR);
 static usqInt NoDbgRegParms concretizeAndCqRR(AbstractInstruction * self_in_concretizeAndCqRR);
 static usqInt NoDbgRegParms concretizeAndCwR(AbstractInstruction * self_in_concretizeAndCwR);
 static usqInt NoDbgRegParms concretizeAndRR(AbstractInstruction * self_in_concretizeAndRR);
@@ -780,7 +780,7 @@
 static usqInt NoDbgRegParms concretizeBrUnsignedGreaterRR(AbstractInstruction * self_in_concretizeBrUnsignedGreaterRR);
 static usqInt NoDbgRegParms concretizeBrUnsignedLessEqualRR(AbstractInstruction * self_in_concretizeBrUnsignedLessEqualRR);
 static usqInt NoDbgRegParms concretizeBrUnsignedLessRR(AbstractInstruction * self_in_concretizeBrUnsignedLessRR);
-static usqInt NoDbgRegParms concretizeCall(AbstractInstruction * self_in_concretizeCall);
+static sqInt NoDbgRegParms concretizeCall(AbstractInstruction * self_in_concretizeCall);
 static usqInt NoDbgRegParms concretizeCallFull(AbstractInstruction * self_in_concretizeCallFull);
 static sqInt NoDbgRegParms concretizeCmpCqR(AbstractInstruction * self_in_concretizeCmpCqR);
 static sqInt NoDbgRegParms concretizeCmpCwR(AbstractInstruction * self_in_concretizeCmpCwR);
@@ -812,7 +812,7 @@
 static usqInt NoDbgRegParms concretizeLogicalShiftRightRR(AbstractInstruction * self_in_concretizeLogicalShiftRightRR);
 static usqInt NoDbgRegParms concretizeMoveAbR(AbstractInstruction * self_in_concretizeMoveAbR);
 static usqInt NoDbgRegParms concretizeMoveAwR(AbstractInstruction * self_in_concretizeMoveAwR);
-static sqInt NoDbgRegParms concretizeMoveCqR(AbstractInstruction * self_in_concretizeMoveCqR);
+static usqInt NoDbgRegParms concretizeMoveCqR(AbstractInstruction * self_in_concretizeMoveCqR);
 static usqInt NoDbgRegParms concretizeMoveCwR(AbstractInstruction * self_in_concretizeMoveCwR);
 static usqInt NoDbgRegParms concretizeMoveHighR(AbstractInstruction * self_in_concretizeMoveHighR);
 static usqInt NoDbgRegParms concretizeMoveLowR(AbstractInstruction * self_in_concretizeMoveLowR);
@@ -821,6 +821,8 @@
 static usqInt NoDbgRegParms concretizeMoveMwrR(AbstractInstruction * self_in_concretizeMoveMwrR);
 static usqInt NoDbgRegParms concretizeMoveRAb(AbstractInstruction * self_in_concretizeMoveRAb);
 static usqInt NoDbgRegParms concretizeMoveRAw(AbstractInstruction * self_in_concretizeMoveRAw);
+static usqInt NoDbgRegParms concretizeMoveRM16r(AbstractInstruction * self_in_concretizeMoveRM16r);
+static usqInt NoDbgRegParms concretizeMoveRMbr(AbstractInstruction * self_in_concretizeMoveRMbr);
 static usqInt NoDbgRegParms concretizeMoveRMwr(AbstractInstruction * self_in_concretizeMoveRMwr);
 static usqInt NoDbgRegParms concretizeMoveRR(AbstractInstruction * self_in_concretizeMoveRR);
 static usqInt NoDbgRegParms concretizeMoveRXbrR(AbstractInstruction * self_in_concretizeMoveRXbrR);
@@ -830,22 +832,22 @@
 static usqInt NoDbgRegParms concretizeMulCheckOverflowRR(AbstractInstruction * self_in_concretizeMulCheckOverflowRR);
 static usqInt NoDbgRegParms concretizeNegateR(AbstractInstruction * self_in_concretizeNegateR);
 static usqInt NoDbgRegParms concretizeNop(AbstractInstruction * self_in_concretizeNop);
-static usqInt NoDbgRegParms concretizeOrCqR(AbstractInstruction * self_in_concretizeOrCqR);
+static sqInt NoDbgRegParms concretizeOrCqR(AbstractInstruction * self_in_concretizeOrCqR);
 static usqInt NoDbgRegParms concretizeOrCwR(AbstractInstruction * self_in_concretizeOrCwR);
 static usqInt NoDbgRegParms concretizeOrRR(AbstractInstruction * self_in_concretizeOrRR);
 static usqInt NoDbgRegParms concretizePopR(AbstractInstruction * self_in_concretizePopR);
 static usqInt NoDbgRegParms concretizePrefetchAw(AbstractInstruction * self_in_concretizePrefetchAw);
-static usqInt NoDbgRegParms concretizePushCq(AbstractInstruction * self_in_concretizePushCq);
+static sqInt NoDbgRegParms concretizePushCq(AbstractInstruction * self_in_concretizePushCq);
 static usqInt NoDbgRegParms concretizePushCw(AbstractInstruction * self_in_concretizePushCw);
 static usqInt NoDbgRegParms concretizePushR(AbstractInstruction * self_in_concretizePushR);
 static usqInt NoDbgRegParms concretizeRetN(AbstractInstruction * self_in_concretizeRetN);
 static usqInt NoDbgRegParms concretizeStop(AbstractInstruction * self_in_concretizeStop);
 static usqInt NoDbgRegParms concretizeSubCheckOverflowCqR(AbstractInstruction * self_in_concretizeSubCheckOverflowCqR);
 static usqInt NoDbgRegParms concretizeSubCheckOverflowRR(AbstractInstruction * self_in_concretizeSubCheckOverflowRR);
-static sqInt NoDbgRegParms concretizeSubCqR(AbstractInstruction * self_in_concretizeSubCqR);
+static usqInt NoDbgRegParms concretizeSubCqR(AbstractInstruction * self_in_concretizeSubCqR);
 static usqInt NoDbgRegParms concretizeSubCwR(AbstractInstruction * self_in_concretizeSubCwR);
 static usqInt NoDbgRegParms concretizeSubRR(AbstractInstruction * self_in_concretizeSubRR);
-static sqInt NoDbgRegParms concretizeTstCqR(AbstractInstruction * self_in_concretizeTstCqR);
+static usqInt NoDbgRegParms concretizeTstCqR(AbstractInstruction * self_in_concretizeTstCqR);
 static usqInt NoDbgRegParms concretizeTstCwR(AbstractInstruction * self_in_concretizeTstCwR);
 static sqInt NoDbgRegParms concretizeUnimplemented(AbstractInstruction * self_in_concretizeUnimplemented);
 static usqInt NoDbgRegParms concretizeXorCwR(AbstractInstruction * self_in_concretizeXorCwR);
@@ -5710,12 +5712,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;
 
@@ -10803,8 +10805,6 @@
 	case BrLongNotEqualRR:
 	case AndCqR:
 	case MoveRMwr:
-	case MoveMbrR:
-	case MoveRMbr:
 	case MoveMwrR:
 	case PushCw:
 	case PushCq:
@@ -10838,7 +10838,10 @@
 	case SqrtRd:
 	case MoveRR:
 	case MoveRdRd:
+	case MoveMbrR:
+	case MoveRMbr:
 	case MoveM16rR:
+	case MoveRM16r:
 		return 4;
 
 	case Label:
@@ -10966,7 +10969,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizeAddCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
 concretizeAddCqR(AbstractInstruction * self_in_concretizeAddCqR)
 {
     sqInt aWord;
@@ -11042,7 +11045,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizeAndCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
 concretizeAndCqR(AbstractInstruction * self_in_concretizeAndCqR)
 {
     sqInt aWord;
@@ -11620,7 +11623,7 @@
 	the method zone. */
 
 	/* CogMIPSELCompiler>>#concretizeCall */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
 concretizeCall(AbstractInstruction * self_in_concretizeCall)
 {
 	return concretizeCallFull(self_in_concretizeCall);
@@ -12097,7 +12100,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizeMoveCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
 concretizeMoveCqR(AbstractInstruction * self_in_concretizeMoveCqR)
 {
     sqInt aWord;
@@ -12302,6 +12305,42 @@
 	return ((self_in_concretizeMoveRAw->machineCodeSize) = 12);
 }
 
+	/* CogMIPSELCompiler>>#concretizeMoveRM16r */
+static usqInt NoDbgRegParms
+concretizeMoveRM16r(AbstractInstruction * self_in_concretizeMoveRM16r)
+{
+    sqInt aWord;
+    unsigned long destReg;
+    sqInt offset;
+    unsigned long srcReg;
+
+	srcReg = ((self_in_concretizeMoveRM16r->operands))[0];
+	offset = ((self_in_concretizeMoveRM16r->operands))[1];
+	destReg = ((self_in_concretizeMoveRM16r->operands))[2];
+	/* begin machineCodeAt:put: */
+	aWord = shRbaseoffset(self_in_concretizeMoveRM16r, srcReg, destReg, offset);
+	((self_in_concretizeMoveRM16r->machineCode))[0 / 4] = aWord;
+	return ((self_in_concretizeMoveRM16r->machineCodeSize) = 4);
+}
+
+	/* CogMIPSELCompiler>>#concretizeMoveRMbr */
+static usqInt NoDbgRegParms
+concretizeMoveRMbr(AbstractInstruction * self_in_concretizeMoveRMbr)
+{
+    sqInt aWord;
+    unsigned long destReg;
+    sqInt offset;
+    unsigned long srcReg;
+
+	srcReg = ((self_in_concretizeMoveRMbr->operands))[0];
+	offset = ((self_in_concretizeMoveRMbr->operands))[1];
+	destReg = ((self_in_concretizeMoveRMbr->operands))[2];
+	/* begin machineCodeAt:put: */
+	aWord = sbRbaseoffset(self_in_concretizeMoveRMbr, srcReg, destReg, offset);
+	((self_in_concretizeMoveRMbr->machineCode))[0 / 4] = aWord;
+	return ((self_in_concretizeMoveRMbr->machineCodeSize) = 4);
+}
+
 	/* CogMIPSELCompiler>>#concretizeMoveRMwr */
 static usqInt NoDbgRegParms
 concretizeMoveRMwr(AbstractInstruction * self_in_concretizeMoveRMwr)
@@ -12489,7 +12528,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizeOrCqR */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
 concretizeOrCqR(AbstractInstruction * self_in_concretizeOrCqR)
 {
     sqInt aWord;
@@ -12591,7 +12630,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizePushCq */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
 concretizePushCq(AbstractInstruction * self_in_concretizePushCq)
 {
 	return concretizePushCw(self_in_concretizePushCq);
@@ -12754,7 +12793,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizeSubCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
 concretizeSubCqR(AbstractInstruction * self_in_concretizeSubCqR)
 {
     sqInt aWord;
@@ -12816,7 +12855,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizeTstCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
 concretizeTstCqR(AbstractInstruction * self_in_concretizeTstCqR)
 {
     sqInt aWord;
@@ -13263,6 +13302,10 @@
 		concretizeMoveM16rR(self_in_dispatchConcretize);
 		return;
 
+	case MoveRM16r:
+		concretizeMoveRM16r(self_in_dispatchConcretize);
+		return;
+
 	case MoveMwrR:
 		concretizeMoveMwrR(self_in_dispatchConcretize);
 		return;

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cointerp.c	2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
    from
-	CoInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CoInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -842,7 +842,7 @@
 extern void ensureNoForwardedLiteralsIn(sqInt aMethodObj);
 extern usqInt freeStartAddress(void);
 extern usqInt getScavengeThreshold(void);
-static sqInt NoDbgRegParms headerWhileForwardingOf(sqInt aCompiledMethodObjOop);
+static sqLong NoDbgRegParms headerWhileForwardingOf(sqInt aCompiledMethodObjOop);
 extern sqInt isForwardedClassIndex(sqInt maybeClassIndex);
 extern sqInt isImmediateClass(sqInt classObj);
 extern sqInt isReallyYoungObject(sqInt objOop);
@@ -2399,7 +2399,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.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1639";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -42051,7 +42051,7 @@
 	(which shouldn't happen with Spur). */
 
 	/* Spur32BitCoMemoryManager>>#headerWhileForwardingOf: */
-static sqInt NoDbgRegParms
+static sqLong NoDbgRegParms
 headerWhileForwardingOf(sqInt aCompiledMethodObjOop)
 {
 	assert(!(isForwarded(aCompiledMethodObjOop)));
@@ -48139,7 +48139,14 @@
 /*	Answer the default amount of memory to allocate for the eden space.
 	The actual value can be set via vmParameterAt: and/or a preference in the
 	ini file.
-	The shootout tests seem to plateau at 5 or 6Mb */
+	The shootout tests seem to plateau at 5 or 6Mb.
+	
+	Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+	the simulator on image start-up, the 64-bit system's eden at the same
+	point in start-up (the first copyBits) is only 8% larger in bytes because
+	it allocates
+	26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+	are large integers and floats that are representable as 64-bit immediates. */
 
 	/* SpurMemoryManager>>#defaultEdenBytes */
 static sqInt
@@ -58772,7 +58779,7 @@
     usqInt prevFree;
     usqInt prevFreeChunk;
     usqInt prevPrevFree;
-    sqInt prevPrevFreeChunk;
+    usqInt prevPrevFreeChunk;
     sqInt slotBytes;
     sqInt slotBytes1;
     usqInt there;
@@ -63467,7 +63474,7 @@
 static void
 postSnapshot(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt address;
+    usqInt address;
     sqInt bytes;
     usqInt freeChunk;
     sqInt i;

Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/cointerp.h	2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
 
 

Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2016-01-16 04:22:18 UTC (rev 3555)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
    from
-	CoInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CoInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -845,7 +845,7 @@
 extern void ensureNoForwardedLiteralsIn(sqInt aMethodObj);
 extern usqInt freeStartAddress(void);
 extern usqInt getScavengeThreshold(void);
-static sqInt NoDbgRegParms headerWhileForwardingOf(sqInt aCompiledMethodObjOop);
+static sqLong NoDbgRegParms headerWhileForwardingOf(sqInt aCompiledMethodObjOop);
 extern sqInt isForwardedClassIndex(sqInt maybeClassIndex);
 extern sqInt isImmediateClass(sqInt classObj);
 extern sqInt isReallyYoungObject(sqInt objOop);
@@ -2402,7 +2402,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.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1639";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -42060,7 +42060,7 @@
 	(which shouldn't happen with Spur). */
 
 	/* Spur32BitCoMemoryManager>>#headerWhileForwardingOf: */
-static sqInt NoDbgRegParms
+static sqLong NoDbgRegParms
 headerWhileForwardingOf(sqInt aCompiledMethodObjOop)
 {
 	assert(!(isForwarded(aCompiledMethodObjOop)));
@@ -48148,7 +48148,14 @@
 /*	Answer the default amount of memory to allocate for the eden space.
 	The actual value can be set via vmParameterAt: and/or a preference in the
 	ini file.
-	The shootout tests seem to plateau at 5 or 6Mb */
+	The shootout tests seem to plateau at 5 or 6Mb.
+	
+	Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+	the simulator on image start-up, the 64-bit system's eden at the same
+	point in start-up (the first copyBits) is only 8% larger in bytes because
+	it allocates
+	26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+	are large integers and floats that are representable as 64-bit immediates. */
 
 	/* SpurMemoryManager>>#defaultEdenBytes */
 static sqInt
@@ -58781,7 +58788,7 @@
     usqInt prevFree;
     usqInt prevFreeChunk;
     usqInt prevPrevFree;
-    sqInt prevPrevFreeChunk;
+    usqInt prevPrevFreeChunk;
     sqInt slotBytes;
     sqInt slotBytes1;
     usqInt there;
@@ -63476,7 +63483,7 @@
 static void
 postSnapshot(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt address;
+    usqInt address;
     sqInt bytes;
     usqInt freeChunk;
     sqInt i;

Modified: branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/gcc3x-interp.c	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspurstack64src/vm/gcc3x-interp.c	2016-01-16 04:22:18 UTC (rev 3555)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
    from
-	StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2166,7 +2166,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1639";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -35537,7 +35537,14 @@
 /*	Answer the default amount of memory to allocate for the eden space.
 	The actual value can be set via vmParameterAt: and/or a preference in the
 	ini file.
-	The shootout tests seem to plateau at 5 or 6Mb */
+	The shootout tests seem to plateau at 5 or 6Mb.
+	
+	Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+	the simulator on image start-up, the 64-bit system's eden at the same
+	point in start-up (the first copyBits) is only 8% larger in bytes because
+	it allocates
+	26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+	are large integers and floats that are representable as 64-bit immediates. */
 
 	/* SpurMemoryManager>>#defaultEdenBytes */
 static sqInt

Modified: branches/Cog/nsspurstack64src/vm/interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/interp.c	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspurstack64src/vm/interp.c	2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
    from
-	StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2163,7 +2163,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1639";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -35528,7 +35528,14 @@
 /*	Answer the default amount of memory to allocate for the eden space.
 	The actual value can be set via vmParameterAt: and/or a preference in the
 	ini file.
-	The shootout tests seem to plateau at 5 or 6Mb */
+	The shootout tests seem to plateau at 5 or 6Mb.
+	
+	Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+	the simulator on image start-up, the 64-bit system's eden at the same
+	point in start-up (the first copyBits) is only 8% larger in bytes because
+	it allocates
+	26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+	are large integers and floats that are representable as 64-bit immediates. */
 
 	/* SpurMemoryManager>>#defaultEdenBytes */
 static sqInt

Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2016-01-16 04:22:18 UTC (rev 3555)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
    from
-	StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2136,7 +2136,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1639";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -33470,7 +33470,14 @@
 /*	Answer the default amount of memory to allocate for the eden space.
 	The actual value can be set via vmParameterAt: and/or a preference in the
 	ini file.
-	The shootout tests seem to plateau at 5 or 6Mb */
+	The shootout tests seem to plateau at 5 or 6Mb.
+	
+	Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+	the simulator on image start-up, the 64-bit system's eden at the same
+	point in start-up (the first copyBits) is only 8% larger in bytes because
+	it allocates
+	26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+	are large integers and floats that are representable as 64-bit immediates. */
 
 	/* SpurMemoryManager>>#defaultEdenBytes */
 static sqInt

Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/nsspurstacksrc/vm/interp.c	2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
    from
-	StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2133,7 +2133,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1636";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1639";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -33461,7 +33461,14 @@
 /*	Answer the default amount of memory to allocate for the eden space.
 	The actual value can be set via vmParameterAt: and/or a preference in the
 	ini file.
-	The shootout tests seem to plateau at 5 or 6Mb */
+	The shootout tests seem to plateau at 5 or 6Mb.
+	
+	Both the 32-bit and 64-bit versions use the same 4Mb default. Measuring
+	the simulator on image start-up, the 64-bit system's eden at the same
+	point in start-up (the first copyBits) is only 8% larger in bytes because
+	it allocates
+	26% fewer objects. Some 21% of the objects in the 32-bit version's eden
+	are large integers and floats that are representable as 64-bit immediates. */
 
 	/* SpurMemoryManager>>#defaultEdenBytes */
 static sqInt


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Fri Jan 15 13:53:15 PST 2016
   + Fri Jan 15 20:20:41 PST 2016

Modified: branches/Cog/spur64src/vm/cogit.h
===================================================================
--- branches/Cog/spur64src/vm/cogit.h	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/spur64src/vm/cogit.h	2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
 
 

Modified: branches/Cog/spur64src/vm/cogitX64.c
===================================================================
--- branches/Cog/spur64src/vm/cogitX64.c	2016-01-15 22:02:25 UTC (rev 3554)
+++ branches/Cog/spur64src/vm/cogitX64.c	2016-01-16 04:22:18 UTC (rev 3555)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1636 uuid: b30fe4bc-4de8-4dde-9709-3ad459f46862 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -787,7 +787,7 @@
 static sqInt NoDbgRegParms genGetClassIndexOfNonImminto(sqInt sourceReg, sqInt destReg);
 static sqInt NoDbgRegParms genGetClassObjectOfClassIndexintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
 static sqInt NoDbgRegParms genGetClassObjectOfintoscratchReginstRegIsReceiver(sqInt instReg, sqInt destReg, sqInt scratchReg, sqInt instRegIsReceiver);
-static AbstractInstruction * NoDbgRegParms genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
+static sqInt NoDbgRegParms genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg);
 static sqInt NoDbgRegParms genGetCompactClassIndexNonImmOfinto(sqInt instReg, sqInt destReg);
 static sqInt NoDbgRegParms genGetDoubleValueOfinto(sqInt srcReg, sqInt destFPReg);
 static sqInt NoDbgRegParms genGetFormatOfinto(sqInt srcReg, sqInt destReg);
@@ -833,7 +833,7 @@
 static sqInt NoDbgRegParms cmpC32RTempByteSize(AbstractInstruction * self_in_cmpC32RTempByteSize);
 static sqInt NoDbgRegParms computeMaximumSize(AbstractInstruction * self_in_computeMaximumSize);
 static sqInt NoDbgRegParms computeShiftRRSize(AbstractInstruction * self_in_computeShiftRRSize);
-static usqInt NoDbgRegParms concretizeArithCqRWithROraxOpcode(AbstractInstruction * self_in_concretizeArithCqRWithROraxOpcode, sqInt regOpcode, sqInt raxOpcode);
+static sqInt NoDbgRegParms concretizeArithCqRWithROraxOpcode(AbstractInstruction * self_in_concretizeArithCqRWithROraxOpcode, sqInt regOpcode, sqInt raxOpcode);
 static usqInt NoDbgRegParms concretizeFill32(AbstractInstruction * self_in_concretizeFill32);
 static usqInt NoDbgRegParms concretizeMoveRX32rR(AbstractInstruction * self_in_concretizeMoveRX32rR);
 static usqInt NoDbgRegParms concretizeMoveX32rRR(AbstractInstruction * self_in_concretizeMoveX32rRR);
@@ -917,7 +917,7 @@
 static sqInt genLongUnconditionalBackwardJump(void);
 static sqInt genLongUnconditionalForwardJump(void);
 static sqInt NoDbgRegParms genLookupForPerformNumArgs(sqInt numArgs);
-static AbstractInstruction * NoDbgRegParms genMoveFalseR(sqInt reg);
+static AbstractInstruction * NoDbgRegParms genMoveConstantR(sqInt constant, sqInt reg);
 static AbstractInstruction * NoDbgRegParms genMoveTrueR(sqInt reg);
 static sqInt NoDbgRegParms genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName);
 static void NoDbgRegParms genPrimReturnEnterCogCodeEnilopmart(sqInt profiling);
@@ -5375,12 +5375,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;
 
@@ -9801,7 +9801,7 @@
 
 	/* FP jumps are a little weird */
 	jumpCond = jumpOpcodeGenerator(0);
-	/* begin genMoveFalseR: */
+	/* begin genMoveConstant:R: */
 	constant = falseObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -10428,6 +10428,7 @@
 	jumpNotSI = genJumpNotSmallIntegerscratchReg(Arg0Reg, TempReg);
 	genShiftAwaySmallIntegerTagsInScratchReg(ClassReg);

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list