[Vm-dev] [commit][3559] CogVM source as per VMMaker.oscog-eem.1643

commits at squeakvm.org commits at squeakvm.org
Sat Jan 16 16:48:03 UTC 2016


Revision: 3559
Author:   eliot
Date:     2016-01-16 08:48:03 -0800 (Sat, 16 Jan 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1643

Spur Cogit:
Fix bugs in Spur 16 & 32-bit string access.  Conversion to code from
character must use Character conversion not SmallInteger conversion.

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/spur64src/vm/cogit.h
    branches/Cog/spur64src/vm/cogitX64.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/spursrc/vm/cogit.h
    branches/Cog/spursrc/vm/cogitARMv5.c
    branches/Cog/spursrc/vm/cogitIA32.c
    branches/Cog/spursrc/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-16 15:53:04 UTC (rev 3558)
+++ branches/Cog/nsspursrc/vm/cogit.h	2016-01-16 16:48:03 UTC (rev 3559)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	CCodeGenerator VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c	2016-01-16 15:53:04 UTC (rev 3558)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c	2016-01-16 16:48:03 UTC (rev 3559)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	CCodeGenerator VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -739,6 +739,7 @@
 static sqInt NoDbgRegParms remapIfObjectRefpchasYoung(sqInt annotation, char *mcpc, sqInt hasYoungPtr);
 static sqInt NoDbgRegParms remapMaybeObjRefInClosedPICAt(sqInt mcpc);
 static void NoDbgRegParms rewriteCPICCaseAttagobjReftarget(sqInt followingAddress, sqInt newTag, sqInt newObjRef, sqInt newTarget);
+static AbstractInstruction * NoDbgRegParms gSubCqR(sqInt quickConstant, sqInt reg);
 static AbstractInstruction * NoDbgRegParms gSubCwR(sqInt wordConstant, sqInt reg);
 static sqInt scanForCleanBlocks(void);
 extern void setBreakMethod(sqInt anObj);
@@ -891,7 +892,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);
@@ -1005,6 +1006,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);
@@ -10445,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;
 
@@ -13705,6 +13707,20 @@
 	rewriteConditionalJumpLongAttarget(backEnd, followingAddress, newTarget);
 }
 
+	/* Cogit>>#SubCq:R: */
+static AbstractInstruction * NoDbgRegParms
+gSubCqR(sqInt quickConstant, sqInt reg)
+{
+    AbstractInstruction *anInstruction;
+
+	/* begin gen:quickConstant:operand: */
+	anInstruction = genoperandoperand(SubCqR, quickConstant, reg);
+	if (usesOutOfLineLiteral(anInstruction)) {
+		(anInstruction->dependent = locateLiteral(quickConstant));
+	}
+	return anInstruction;
+}
+
 	/* Cogit>>#SubCw:R: */
 static AbstractInstruction * NoDbgRegParms
 gSubCwR(sqInt wordConstant, sqInt reg)
@@ -15514,7 +15530,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);
@@ -16193,7 +16209,6 @@
 	jumpNotSI = genJumpNotSmallInteger(Arg0Reg);
 	genShiftAwaySmallIntegerTagsInScratchReg(ClassReg);
 	genRemoveSmallIntegerTagsInScratchReg(Arg1Reg);
-	/* begin MulR:R: */
 	genMulRR(backEnd, Arg1Reg, ClassReg);
 	/* begin JumpOverflow: */
 	jumpOvfl = genConditionalBranchoperand(JumpOverflow, ((sqInt)0));
@@ -16340,7 +16355,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 +16426,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);
@@ -16855,7 +16870,6 @@
     AbstractInstruction *anInstruction12;
     AbstractInstruction *anInstruction13;
     AbstractInstruction *anInstruction14;
-    AbstractInstruction *anInstruction15;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
     AbstractInstruction *anInstruction4;
@@ -16890,7 +16904,6 @@
     sqInt quickConstant6;
     sqInt quickConstant7;
     sqInt quickConstant8;
-    sqInt quickConstant9;
 
 	/* begin genLoadArgAtDepth:into: */
 	assert(0 < (numRegArgs()));
@@ -17017,13 +17030,6 @@
 	}
 	/* begin MoveXwr:R:R: */
 	genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, TempReg);
-	/* begin SubCq:R: */
-	quickConstant9 = ((usqInt) BaseHeaderSize) >> (shiftForWord());
-	/* begin gen:quickConstant:operand: */
-	anInstruction11 = genoperandoperand(SubCqR, quickConstant9, Arg1Reg);
-	if (usesOutOfLineLiteral(anInstruction11)) {
-		(anInstruction11->dependent = locateLiteral(quickConstant9));
-	}
 	jumpWordTooBig = jumpNotSmallIntegerUnsignedValueInRegister(TempReg);
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, TempReg, ReceiverResultReg);
@@ -17033,9 +17039,9 @@
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, TempReg, formatReg);
 	/* begin CmpCq:R: */
-	anInstruction12 = genoperandoperand(CmpCqR, ClassMethodContextCompactIndex, TempReg);
-	if (usesOutOfLineLiteral(anInstruction12)) {
-		(anInstruction12->dependent = locateLiteral(ClassMethodContextCompactIndex));
+	anInstruction11 = genoperandoperand(CmpCqR, ClassMethodContextCompactIndex, TempReg);
+	if (usesOutOfLineLiteral(anInstruction11)) {
+		(anInstruction11->dependent = locateLiteral(ClassMethodContextCompactIndex));
 	}
 	/* begin JumpZero: */
 	jumpIsContext = genConditionalBranchoperand(JumpZero, ((sqInt)0));
@@ -17049,9 +17055,9 @@
 	/* begin AndCq:R: */
 	quickConstant6 = fixedFieldsOfClassFormatMask();
 	/* begin gen:quickConstant:operand: */
-	anInstruction13 = genoperandoperand(AndCqR, quickConstant6, formatReg);
-	if (usesOutOfLineLiteral(anInstruction13)) {
-		(anInstruction13->dependent = locateLiteral(quickConstant6));
+	anInstruction12 = genoperandoperand(AndCqR, quickConstant6, formatReg);
+	if (usesOutOfLineLiteral(anInstruction12)) {
+		(anInstruction12->dependent = locateLiteral(quickConstant6));
 	}
 	/* begin SubR:R: */
 	genoperandoperand(SubRR, formatReg, ClassReg);
@@ -17064,9 +17070,9 @@
 	/* begin AddCq:R: */
 	quickConstant7 = ((usqInt) BaseHeaderSize) >> (shiftForWord());
 	/* begin gen:quickConstant:operand: */
-	anInstruction14 = genoperandoperand(AddCqR, quickConstant7, Arg1Reg);
-	if (usesOutOfLineLiteral(anInstruction14)) {
-		(anInstruction14->dependent = locateLiteral(quickConstant7));
+	anInstruction13 = genoperandoperand(AddCqR, quickConstant7, Arg1Reg);
+	if (usesOutOfLineLiteral(anInstruction13)) {
+		(anInstruction13->dependent = locateLiteral(quickConstant7));
 	}
 	/* begin MoveXwr:R:R: */
 	genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, ReceiverResultReg);
@@ -17080,9 +17086,9 @@
 	/* begin AddCq:R: */
 	quickConstant8 = ((usqInt) BaseHeaderSize) >> (shiftForWord());
 	/* begin gen:quickConstant:operand: */
-	anInstruction15 = genoperandoperand(AddCqR, quickConstant8, Arg1Reg);
-	if (usesOutOfLineLiteral(anInstruction15)) {
-		(anInstruction15->dependent = locateLiteral(quickConstant8));
+	anInstruction14 = genoperandoperand(AddCqR, quickConstant8, Arg1Reg);
+	if (usesOutOfLineLiteral(anInstruction14)) {
+		(anInstruction14->dependent = locateLiteral(quickConstant8));
 	}
 	/* begin MoveXwr:R:R: */
 	genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, ReceiverResultReg);
@@ -17090,7 +17096,8 @@
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpFixedFieldsOutOfBounds, jmpTarget(jumpArrayOutOfBounds, jmpTarget(jumpBytesOutOfBounds, jmpTarget(jumpShortsOutOfBounds, jmpTarget(jumpWordsOutOfBounds, jmpTarget(jumpWordTooBig, jmpTarget(jumpNotIndexable, jmpTarget(jumpIsContext, jmpTarget(jumpBadIndex, jmpTarget(jumpImmediate, gLabel()))))))))));
+	jmpTarget(jumpWordTooBig, gSubCqR(((usqInt) BaseHeaderSize) >> (shiftForWord()), Arg1Reg));
+	jmpTarget(jumpFixedFieldsOutOfBounds, jmpTarget(jumpArrayOutOfBounds, jmpTarget(jumpBytesOutOfBounds, jmpTarget(jumpShortsOutOfBounds, jmpTarget(jumpWordsOutOfBounds, jmpTarget(jumpNotIndexable, jmpTarget(jumpIsContext, jmpTarget(jumpBadIndex, jmpTarget(jumpImmediate, gLabel())))))))));
 	return 0;
 }
 
@@ -18783,7 +18790,7 @@
 	jumpWordsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, Arg1Reg, TempReg);
-	genConvertSmallIntegerToIntegerInReg(TempReg);
+	genConvertCharacterToCodeInReg(TempReg);
 	/* begin AddCq:R: */
 	operandOne = ((usqInt) BaseHeaderSize) >> (shiftForWord());
 	/* begin checkQuickConstant:forInstruction: */
@@ -18819,7 +18826,7 @@
 	jumpShortsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, Arg1Reg, TempReg);
-	genConvertSmallIntegerToIntegerInReg(TempReg);
+	genConvertCharacterToCodeInReg(TempReg);
 	/* begin AddR:R: */
 	genoperandoperand(AddRR, Arg0Reg, ReceiverResultReg);
 	/* begin MoveR:M16:r: */
@@ -19998,7 +20005,7 @@
 }
 
 	/* CogObjectRepresentationForSpur>>#genGetClassTagOf:into:scratchReg: */
-static sqInt NoDbgRegParms
+static AbstractInstruction * NoDbgRegParms
 genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg)
 {
 	return genGetInlineCacheClassTagFromintoforEntry(instReg, destReg, 1);
@@ -20504,7 +20511,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 +23476,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-16 15:53:04 UTC (rev 3558)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c	2016-01-16 16:48:03 UTC (rev 3559)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	CCodeGenerator VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -691,6 +691,7 @@
 static sqInt NoDbgRegParms remapIfObjectRefpchasYoung(sqInt annotation, char *mcpc, sqInt hasYoungPtr);
 static sqInt NoDbgRegParms remapMaybeObjRefInClosedPICAt(sqInt mcpc);
 static void NoDbgRegParms rewriteCPICCaseAttagobjReftarget(sqInt followingAddress, sqInt newTag, sqInt newObjRef, sqInt newTarget);
+static AbstractInstruction * NoDbgRegParms gSubCqR(sqInt quickConstant, sqInt reg);
 static AbstractInstruction * NoDbgRegParms gSubCwR(sqInt wordConstant, sqInt reg);
 static sqInt scanForCleanBlocks(void);
 extern void setBreakMethod(sqInt anObj);
@@ -9599,12 +9600,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;
 
@@ -12830,6 +12831,17 @@
 	rewriteConditionalJumpLongAttarget(backEnd, followingAddress, newTarget);
 }
 
+	/* Cogit>>#SubCq:R: */
+static AbstractInstruction * NoDbgRegParms
+gSubCqR(sqInt quickConstant, sqInt reg)
+{
+    AbstractInstruction *anInstruction;
+
+	/* begin gen:quickConstant:operand: */
+	anInstruction = genoperandoperand(SubCqR, quickConstant, reg);
+	return anInstruction;
+}
+
 	/* Cogit>>#SubCw:R: */
 static AbstractInstruction * NoDbgRegParms
 gSubCwR(sqInt wordConstant, sqInt reg)
@@ -15284,6 +15296,7 @@
 	jumpNotSI = genJumpNotSmallInteger(Arg0Reg);
 	genShiftAwaySmallIntegerTagsInScratchReg(ClassReg);
 	genRemoveSmallIntegerTagsInScratchReg(Arg1Reg);
+	/* begin MulR:R: */
 	genMulRR(backEnd, Arg1Reg, ClassReg);
 	/* begin JumpOverflow: */
 	jumpOvfl = genConditionalBranchoperand(JumpOverflow, ((sqInt)0));
@@ -15882,7 +15895,6 @@
     AbstractInstruction *anInstruction12;
     AbstractInstruction *anInstruction13;
     AbstractInstruction *anInstruction14;
-    AbstractInstruction *anInstruction15;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
     AbstractInstruction *anInstruction4;
@@ -16014,8 +16026,6 @@
 	anInstruction10 = genoperandoperand(AddCqR, quickConstant5, Arg1Reg);
 	/* begin MoveXwr:R:R: */
 	genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, TempReg);
-	/* begin SubCq:R: */
-	anInstruction11 = genoperandoperand(SubCqR, ((usqInt) BaseHeaderSize) >> (shiftForWord()), Arg1Reg);
 	jumpWordTooBig = jumpNotSmallIntegerUnsignedValueInRegister(TempReg);
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, TempReg, ReceiverResultReg);
@@ -16025,7 +16035,7 @@
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, TempReg, formatReg);
 	/* begin CmpCq:R: */
-	anInstruction12 = genoperandoperand(CmpCqR, ClassMethodContextCompactIndex, TempReg);
+	anInstruction11 = genoperandoperand(CmpCqR, ClassMethodContextCompactIndex, TempReg);
 	/* begin JumpZero: */
 	jumpIsContext = genConditionalBranchoperand(JumpZero, ((sqInt)0));
 	/* begin PushR: */
@@ -16038,7 +16048,7 @@
 	/* begin AndCq:R: */
 	quickConstant6 = fixedFieldsOfClassFormatMask();
 	/* begin gen:quickConstant:operand: */
-	anInstruction13 = genoperandoperand(AndCqR, quickConstant6, formatReg);
+	anInstruction12 = genoperandoperand(AndCqR, quickConstant6, formatReg);
 	/* begin SubR:R: */
 	genoperandoperand(SubRR, formatReg, ClassReg);
 	/* begin CmpR:R: */
@@ -16050,7 +16060,7 @@
 	/* begin AddCq:R: */
 	quickConstant7 = ((usqInt) BaseHeaderSize) >> (shiftForWord());
 	/* begin gen:quickConstant:operand: */
-	anInstruction14 = genoperandoperand(AddCqR, quickConstant7, Arg1Reg);
+	anInstruction13 = genoperandoperand(AddCqR, quickConstant7, Arg1Reg);
 	/* begin MoveXwr:R:R: */
 	genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, ReceiverResultReg);
 	/* begin genPrimReturn */
@@ -16063,14 +16073,15 @@
 	/* begin AddCq:R: */
 	quickConstant8 = ((usqInt) BaseHeaderSize) >> (shiftForWord());
 	/* begin gen:quickConstant:operand: */
-	anInstruction15 = genoperandoperand(AddCqR, quickConstant8, Arg1Reg);
+	anInstruction14 = genoperandoperand(AddCqR, quickConstant8, Arg1Reg);
 	/* begin MoveXwr:R:R: */
 	genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, ReceiverResultReg);
 	/* begin genPrimReturn */
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpFixedFieldsOutOfBounds, jmpTarget(jumpArrayOutOfBounds, jmpTarget(jumpBytesOutOfBounds, jmpTarget(jumpShortsOutOfBounds, jmpTarget(jumpWordsOutOfBounds, jmpTarget(jumpWordTooBig, jmpTarget(jumpNotIndexable, jmpTarget(jumpIsContext, jmpTarget(jumpBadIndex, jmpTarget(jumpImmediate, gLabel()))))))))));
+	jmpTarget(jumpWordTooBig, gSubCqR(((usqInt) BaseHeaderSize) >> (shiftForWord()), Arg1Reg));
+	jmpTarget(jumpFixedFieldsOutOfBounds, jmpTarget(jumpArrayOutOfBounds, jmpTarget(jumpBytesOutOfBounds, jmpTarget(jumpShortsOutOfBounds, jmpTarget(jumpWordsOutOfBounds, jmpTarget(jumpNotIndexable, jmpTarget(jumpIsContext, jmpTarget(jumpBadIndex, jmpTarget(jumpImmediate, gLabel())))))))));
 	return 0;
 }
 
@@ -17441,7 +17452,7 @@
 	jumpWordsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, Arg1Reg, TempReg);
-	genConvertSmallIntegerToIntegerInReg(TempReg);
+	genConvertCharacterToCodeInReg(TempReg);
 	/* begin AddCq:R: */
 	anInstruction5 = genoperandoperand(AddCqR, ((usqInt) BaseHeaderSize) >> (shiftForWord()), Arg0Reg);
 	/* begin MoveR:Xwr:R: */
@@ -17467,7 +17478,7 @@
 	jumpShortsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, Arg1Reg, TempReg);
-	genConvertSmallIntegerToIntegerInReg(TempReg);
+	genConvertCharacterToCodeInReg(TempReg);
 	/* begin AddR:R: */
 	genoperandoperand(AddRR, Arg0Reg, ReceiverResultReg);
 	/* begin MoveR:M16:r: */

Modified: branches/Cog/nsspursrc/vm/cogitMIPSEL.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitMIPSEL.c	2016-01-16 15:53:04 UTC (rev 3558)
+++ branches/Cog/nsspursrc/vm/cogitMIPSEL.c	2016-01-16 16:48:03 UTC (rev 3559)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	CCodeGenerator VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -684,6 +684,7 @@
 static sqInt NoDbgRegParms remapIfObjectRefpchasYoung(sqInt annotation, char *mcpc, sqInt hasYoungPtr);
 static sqInt NoDbgRegParms remapMaybeObjRefInClosedPICAt(sqInt mcpc);
 static void NoDbgRegParms rewriteCPICCaseAttagobjReftarget(sqInt followingAddress, sqInt newTag, sqInt newObjRef, sqInt newTarget);
+static AbstractInstruction * NoDbgRegParms gSubCqR(sqInt quickConstant, sqInt reg);
 static AbstractInstruction * NoDbgRegParms gSubCwR(sqInt wordConstant, sqInt reg);
 static sqInt scanForCleanBlocks(void);
 extern void setBreakMethod(sqInt anObj);
@@ -757,7 +758,7 @@
 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 usqInt NoDbgRegParms concretizeAddCqR(AbstractInstruction * self_in_concretizeAddCqR);
+static sqInt 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);
@@ -780,7 +781,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);
@@ -789,7 +790,7 @@
 static usqInt NoDbgRegParms concretizeFill32(AbstractInstruction * self_in_concretizeFill32);
 static usqInt NoDbgRegParms concretizeJump(AbstractInstruction * self_in_concretizeJump);
 static usqInt NoDbgRegParms concretizeJumpFull(AbstractInstruction * self_in_concretizeJumpFull);
-static usqInt NoDbgRegParms concretizeJumpLong(AbstractInstruction * self_in_concretizeJumpLong);
+static sqInt NoDbgRegParms concretizeJumpLong(AbstractInstruction * self_in_concretizeJumpLong);
 static sqInt NoDbgRegParms concretizeJumpLongNonZero(AbstractInstruction * self_in_concretizeJumpLongNonZero);
 static sqInt NoDbgRegParms concretizeJumpLongZero(AbstractInstruction * self_in_concretizeJumpLongZero);
 static sqInt NoDbgRegParms concretizeJumpNonZero(AbstractInstruction * self_in_concretizeJumpNonZero);
@@ -844,10 +845,10 @@
 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 usqInt NoDbgRegParms concretizeTstCqR(AbstractInstruction * self_in_concretizeTstCqR);
+static sqInt 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);
@@ -1126,8 +1127,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 AbstractInstruction * NoDbgRegParms genMoveTrueR(sqInt reg);
 static sqInt NoDbgRegParms genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName);
 static void NoDbgRegParms genPrimReturnEnterCogCodeEnilopmart(sqInt profiling);
 static sqInt genPushClosureTempsBytecode(void);
@@ -4680,7 +4680,7 @@
 static sqInt NoDbgRegParms
 cPICHasFreedTargets(CogMethod *cPIC)
 {
-    usqInt entryPoint;
+    sqInt entryPoint;
     sqInt i;
     sqInt pc;
     CogMethod *targetMethod;
@@ -5712,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;
 
@@ -8569,7 +8569,7 @@
 relocateCallsInClosedPIC(CogMethod *cPIC)
 {
     sqLong callDelta;
-    usqInt entryPoint;
+    sqInt entryPoint;
     sqInt i;
     sqInt pc;
     sqLong refDelta;
@@ -8909,6 +8909,17 @@
 	rewriteConditionalJumpLongAttarget(backEnd, followingAddress, newTarget);
 }
 
+	/* Cogit>>#SubCq:R: */
+static AbstractInstruction * NoDbgRegParms
+gSubCqR(sqInt quickConstant, sqInt reg)
+{
+    AbstractInstruction *anInstruction;
+
+	/* begin gen:quickConstant:operand: */
+	anInstruction = genoperandoperand(SubCqR, quickConstant, reg);
+	return anInstruction;
+}
+
 	/* Cogit>>#SubCw:R: */
 static AbstractInstruction * NoDbgRegParms
 gSubCwR(sqInt wordConstant, sqInt reg)
@@ -10969,7 +10980,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizeAddCqR */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
 concretizeAddCqR(AbstractInstruction * self_in_concretizeAddCqR)
 {
     sqInt aWord;
@@ -11623,7 +11634,7 @@
 	the method zone. */
 
 	/* CogMIPSELCompiler>>#concretizeCall */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
 concretizeCall(AbstractInstruction * self_in_concretizeCall)
 {
 	return concretizeCallFull(self_in_concretizeCall);
@@ -11787,7 +11798,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizeJumpLong */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
 concretizeJumpLong(AbstractInstruction * self_in_concretizeJumpLong)
 {
 	return concretizeJumpFull(self_in_concretizeJumpLong);
@@ -12793,7 +12804,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizeSubCqR */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
 concretizeSubCqR(AbstractInstruction * self_in_concretizeSubCqR)
 {
     sqInt aWord;
@@ -12855,7 +12866,7 @@
 }
 
 	/* CogMIPSELCompiler>>#concretizeTstCqR */
-static usqInt NoDbgRegParms
+static sqInt NoDbgRegParms
 concretizeTstCqR(AbstractInstruction * self_in_concretizeTstCqR)
 {
     sqInt aWord;
@@ -15705,7 +15716,7 @@
 	/* begin CmpR:R: */
 	genoperandoperand(CmpRR, Arg0Reg, ReceiverResultReg);
 	jumpTrue = genConditionalBranchoperand(jumpOpcode, 0);
-	/* begin genMoveFalseR: */
+	/* begin genMoveConstant:R: */
 	constant = falseObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -15718,7 +15729,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: */
@@ -15773,7 +15784,7 @@
 
 	/* FP jumps are a little weird */
 	jumpCond = jumpFPOpcodeGenerator(0);
-	/* begin genMoveFalseR: */
+	/* begin genMoveConstant:R: */
 	constant = falseObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -15786,7 +15797,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: */
@@ -16150,7 +16161,6 @@
     AbstractInstruction *anInstruction12;
     AbstractInstruction *anInstruction13;
     AbstractInstruction *anInstruction14;
-    AbstractInstruction *anInstruction15;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
     AbstractInstruction *anInstruction4;
@@ -16286,8 +16296,6 @@
 	anInstruction10 = genoperandoperand(AddCqR, quickConstant5, Arg1Reg);
 	/* begin MoveXwr:R:R: */
 	genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, TempReg);
-	/* begin SubCq:R: */
-	anInstruction11 = genoperandoperand(SubCqR, ((usqInt) BaseHeaderSize) >> (shiftForWord()), Arg1Reg);
 	jumpWordTooBig = jumpNotSmallIntegerUnsignedValueInRegister(TempReg);
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, TempReg, ReceiverResultReg);
@@ -16297,7 +16305,7 @@
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, TempReg, formatReg);
 	/* begin CmpCq:R: */
-	anInstruction12 = genoperandoperand(CmpCqR, ClassMethodContextCompactIndex, TempReg);
+	anInstruction11 = genoperandoperand(CmpCqR, ClassMethodContextCompactIndex, TempReg);
 	/* begin JumpZero: */
 	jumpIsContext = genConditionalBranchoperand(JumpZero, ((sqInt)0));
 	/* begin PushR: */
@@ -16310,7 +16318,7 @@
 	/* begin AndCq:R: */
 	quickConstant6 = fixedFieldsOfClassFormatMask();
 	/* begin gen:quickConstant:operand: */
-	anInstruction13 = genoperandoperand(AndCqR, quickConstant6, formatReg);
+	anInstruction12 = genoperandoperand(AndCqR, quickConstant6, formatReg);
 	/* begin SubR:R: */
 	genoperandoperand(SubRR, formatReg, ClassReg);
 	/* begin CmpR:R: */
@@ -16322,7 +16330,7 @@
 	/* begin AddCq:R: */
 	quickConstant7 = ((usqInt) BaseHeaderSize) >> (shiftForWord());
 	/* begin gen:quickConstant:operand: */
-	anInstruction14 = genoperandoperand(AddCqR, quickConstant7, Arg1Reg);
+	anInstruction13 = genoperandoperand(AddCqR, quickConstant7, Arg1Reg);
 	/* begin MoveXwr:R:R: */
 	genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, ReceiverResultReg);
 	/* begin genPrimReturn */
@@ -16335,14 +16343,15 @@
 	/* begin AddCq:R: */
 	quickConstant8 = ((usqInt) BaseHeaderSize) >> (shiftForWord());
 	/* begin gen:quickConstant:operand: */
-	anInstruction15 = genoperandoperand(AddCqR, quickConstant8, Arg1Reg);
+	anInstruction14 = genoperandoperand(AddCqR, quickConstant8, Arg1Reg);
 	/* begin MoveXwr:R:R: */
 	genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, ReceiverResultReg);
 	/* begin genPrimReturn */
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpFixedFieldsOutOfBounds, jmpTarget(jumpArrayOutOfBounds, jmpTarget(jumpBytesOutOfBounds, jmpTarget(jumpShortsOutOfBounds, jmpTarget(jumpWordsOutOfBounds, jmpTarget(jumpWordTooBig, jmpTarget(jumpNotIndexable, jmpTarget(jumpIsContext, jmpTarget(jumpBadIndex, jmpTarget(jumpImmediate, gLabel()))))))))));
+	jmpTarget(jumpWordTooBig, gSubCqR(((usqInt) BaseHeaderSize) >> (shiftForWord()), Arg1Reg));
+	jmpTarget(jumpFixedFieldsOutOfBounds, jmpTarget(jumpArrayOutOfBounds, jmpTarget(jumpBytesOutOfBounds, jmpTarget(jumpShortsOutOfBounds, jmpTarget(jumpWordsOutOfBounds, jmpTarget(jumpNotIndexable, jmpTarget(jumpIsContext, jmpTarget(jumpBadIndex, jmpTarget(jumpImmediate, gLabel())))))))));
 	return 0;
 }
 
@@ -17716,7 +17725,7 @@
 	jumpWordsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, Arg1Reg, TempReg);
-	genConvertSmallIntegerToIntegerInReg(TempReg);
+	genConvertCharacterToCodeInReg(TempReg);
 	/* begin AddCq:R: */
 	anInstruction5 = genoperandoperand(AddCqR, ((usqInt) BaseHeaderSize) >> (shiftForWord()), Arg0Reg);
 	/* begin MoveR:Xwr:R: */
@@ -17742,7 +17751,7 @@
 	jumpShortsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, Arg1Reg, TempReg);
-	genConvertSmallIntegerToIntegerInReg(TempReg);
+	genConvertCharacterToCodeInReg(TempReg);
 	/* begin AddR:R: */
 	genoperandoperand(AddRR, Arg0Reg, ReceiverResultReg);
 	/* begin MoveR:M16:r: */
@@ -19015,7 +19024,7 @@
 		/* begin JumpNonZero: */
 		jumpCmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
 	}
-	/* begin genMoveConstant:R: */
+	/* begin genMoveTrueR: */
 	constant = trueObject();
 	if (shouldAnnotateObjectReference(constant)) {
 		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
@@ -19028,7 +19037,7 @@
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpCmp, genMoveFalseR(ReceiverResultReg));
+	jmpTarget(jumpCmp, genMoveConstantR(falseObject(), ReceiverResultReg));
 	/* begin genPrimReturn */
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
@@ -21096,24 +21105,8 @@
 			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)),
-			anInstruction));
-}
-
 	/* SimpleStackBasedCogit>>#genMoveTrueR: */
-static sqInt NoDbgRegParms
+static AbstractInstruction * NoDbgRegParms
 genMoveTrueR(sqInt reg)
 {
     AbstractInstruction *anInstruction;


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Sat Jan 16 07:52:07 PST 2016
   + Sat Jan 16 08:47:18 PST 2016

Modified: branches/Cog/spur64src/vm/cogit.h
===================================================================
--- branches/Cog/spur64src/vm/cogit.h	2016-01-16 15:53:04 UTC (rev 3558)
+++ branches/Cog/spur64src/vm/cogit.h	2016-01-16 16:48:03 UTC (rev 3559)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	CCodeGenerator VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
  */
 
 

Modified: branches/Cog/spur64src/vm/cogitX64.c
===================================================================
--- branches/Cog/spur64src/vm/cogitX64.c	2016-01-16 15:53:04 UTC (rev 3558)
+++ branches/Cog/spur64src/vm/cogitX64.c	2016-01-16 16:48:03 UTC (rev 3559)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	CCodeGenerator VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -782,7 +782,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);
@@ -6548,8 +6548,7 @@
 		literal = literalBeforeFollowingAddress(backEnd, mcpc);
 		mappedLiteral = remapObject(literal);
 		if (mappedLiteral != literal) {
-			/* begin storeLiteral:atAnnotatedAddress:using: */
-			storeLiteralbeforeFollowingAddress(((AbstractInstruction *) backEnd), mappedLiteral, mcpc);
+			storeLiteralbeforeFollowingAddress(backEnd, mappedLiteral, mcpc);
 			codeModified = 1;
 		}
 	}
@@ -8110,8 +8109,7 @@
 		if (couldBeObject(literal)) {
 			mappedLiteral = remapObject(literal);
 			if (literal != mappedLiteral) {
-				/* begin storeLiteral:atAnnotatedAddress:using: */
-				storeLiteralbeforeFollowingAddress(((AbstractInstruction *) backEnd), mappedLiteral, ((usqInt)mcpc));
+				storeLiteralbeforeFollowingAddress(backEnd, mappedLiteral, ((usqInt)mcpc));
 				codeModified = 1;
 			}
 			if ((hasYoungPtr != 0)
@@ -12485,7 +12483,7 @@
 	jumpWordsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, Arg1Reg, TempReg);
-	genConvertSmallIntegerToIntegerInReg(TempReg);
+	genConvertCharacterToCodeInReg(TempReg);
 	/* begin AddCq:R: */
 	anInstruction6 = genoperandoperand(AddCqR, ((usqInt) BaseHeaderSize) >> ((shiftForWord()) - 1), Arg0Reg);
 	/* begin MoveR:X32r:R: */
@@ -12511,7 +12509,7 @@
 	jumpShortsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
 	/* begin MoveR:R: */
 	genoperandoperand(MoveRR, Arg1Reg, TempReg);
-	genConvertSmallIntegerToIntegerInReg(TempReg);
+	genConvertCharacterToCodeInReg(TempReg);
 	/* begin AddR:R: */
 	genoperandoperand(AddRR, Arg0Reg, ReceiverResultReg);
 	/* begin MoveR:M16:r: */
@@ -13396,7 +13394,7 @@
 }
 
 	/* CogObjectRepresentationForSpur>>#genGetClassTagOf:into:scratchReg: */
-static AbstractInstruction * NoDbgRegParms
+static sqInt NoDbgRegParms
 genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg)
 {
 	return genGetInlineCacheClassTagFromintoforEntry(instReg, destReg, 1);
@@ -15599,7 +15597,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpLongNonZero:
@@ -15639,7 +15637,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case Jump:
@@ -15704,7 +15702,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpNonNegative:
@@ -15742,7 +15740,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpOverflow:
@@ -15780,7 +15778,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpNoOverflow:
@@ -15818,7 +15816,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpCarry:
@@ -15858,7 +15856,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpNoCarry:
@@ -15898,7 +15896,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpLess:
@@ -15936,7 +15934,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpGreaterOrEqual:
@@ -15974,7 +15972,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpGreater:
@@ -16012,7 +16010,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);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpLessOrEqual:
@@ -16050,7 +16048,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset124) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset124) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset124) >> 24) & 0xFF);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpAbove:
@@ -16089,7 +16087,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset125) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset125) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset125) >> 24) & 0xFF);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpBelowOrEqual:
@@ -16128,7 +16126,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset126) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset126) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset126) >> 24) & 0xFF);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpFPOrdered:
@@ -16166,7 +16164,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset127) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset127) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset127) >> 24) & 0xFF);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case JumpFPUnordered:
@@ -16204,7 +16202,7 @@
 		((self_in_dispatchConcretize->machineCode))[3] = ((((usqInt) offset128) >> 8) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[4] = ((((usqInt) offset128) >> 16) & 0xFF);
 		((self_in_dispatchConcretize->machineCode))[5] = ((((usqInt) offset128) >> 24) & 0xFF);
-		((self_in_dispatchConcretize->machineCodeSize) = 6);
+		((usqInt) (((self_in_dispatchConcretize->machineCodeSize) = 6)));
 		return;
 
 	case RetN:

Modified: branches/Cog/spursistasrc/vm/cogit.h
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.h	2016-01-16 15:53:04 UTC (rev 3558)
+++ branches/Cog/spursistasrc/vm/cogit.h	2016-01-16 16:48:03 UTC (rev 3559)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	CCodeGenerator VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
  */
 
 

Modified: branches/Cog/spursistasrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/spursistasrc/vm/cogitARMv5.c	2016-01-16 15:53:04 UTC (rev 3558)
+++ branches/Cog/spursistasrc/vm/cogitARMv5.c	2016-01-16 16:48:03 UTC (rev 3559)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	CCodeGenerator VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1642 uuid: 32f50135-e850-42ef-af03-cf236135405b " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.1643 uuid: 596fba7b-72f9-4914-8dd8-cc41d27ce470 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -726,6 +726,7 @@
 static sqInt NoDbgRegParms remapIfObjectRefpchasYoung(sqInt annotation, char *mcpc, sqInt hasYoungPtr);
 static sqInt NoDbgRegParms remapMaybeObjRefInClosedPICAt(sqInt mcpc);
 static void NoDbgRegParms rewriteCPICCaseAttagobjReftarget(sqInt followingAddress, sqInt newTag, sqInt newObjRef, sqInt newTarget);
+static AbstractInstruction * NoDbgRegParms gSubCqR(sqInt quickConstant, sqInt reg);
 static AbstractInstruction * NoDbgRegParms gSubCwR(sqInt wordConstant, sqInt reg);
 static sqInt scanForCleanBlocks(void);
 extern void setBreakMethod(sqInt anObj);
@@ -880,7 +881,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);
@@ -10307,12 +10308,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;
 
@@ -13166,6 +13167,20 @@
 	rewriteConditionalJumpLongAttarget(backEnd, followingAddress, newTarget);
 }
 
+	/* Cogit>>#SubCq:R: */
+static AbstractInstruction * NoDbgRegParms
+gSubCqR(sqInt quickConstant, sqInt reg)
+{
+    AbstractInstruction *anInstruction;
+
+	/* begin gen:quickConstant:operand: */
+	anInstruction = genoperandoperand(SubCqR, quickConstant, reg);
+	if (usesOutOfLineLiteral(anInstruction)) {
+		(anInstruction->dependent = locateLiteral(quickConstant));
+	}
+	return anInstruction;
+}
+
 	/* Cogit>>#SubCw:R: */
 static AbstractInstruction * NoDbgRegParms
 gSubCwR(sqInt wordConstant, sqInt reg)
@@ -16207,7 +16222,6 @@
     AbstractInstruction *anInstruction12;
     AbstractInstruction *anInstruction13;
     AbstractInstruction *anInstruction14;
-    AbstractInstruction *anInstruction15;
     AbstractInstruction *anInstruction2;
     AbstractInstruction *anInstruction3;
     AbstractInstruction *anInstruction4;
@@ -16242,7 +16256,6 @@
     sqInt quickConstant6;
     sqInt quickConstant7;
     sqInt quickConstant8;
-    sqInt quickConstant9;
 
 	/* begin genLoadArgAtDepth:into: */
 	assert(0 < (numRegArgs()));
@@ -16369,13 +16382,6 @@
 	}
 	/* begin MoveXwr:R:R: */
 	genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, TempReg);
-	/* begin SubCq:R: */
-	quickConstant9 = ((usqInt) BaseHeaderSize) >> (shiftForWord());

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list