[Vm-dev] [commit][3556] CogVM source as per VMMaker.oscog-eem.1640

commits at squeakvm.org commits at squeakvm.org
Sat Jan 16 04:45:20 UTC 2016


Revision: 3556
Author:   eliot
Date:     2016-01-15 20:45:20 -0800 (Fri, 15 Jan 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1640

Spur64-bit Cogit:
Use the same approach for boxed float ops as for SmallFloat ops.

Modified Paths:
--------------
    branches/Cog/spur64src/vm/cogit.h
    branches/Cog/spur64src/vm/cogitX64.c

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


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

Modified: branches/Cog/spur64src/vm/cogit.h
===================================================================
--- branches/Cog/spur64src/vm/cogit.h	2016-01-16 04:22:18 UTC (rev 3555)
+++ branches/Cog/spur64src/vm/cogit.h	2016-01-16 04:45:20 UTC (rev 3556)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
+	CCodeGenerator VMMaker.oscog-eem.1640 uuid: 5fd87422-b235-4b98-b023-c3be3586cca5
  */
 
 

Modified: branches/Cog/spur64src/vm/cogitX64.c
===================================================================
--- branches/Cog/spur64src/vm/cogitX64.c	2016-01-16 04:22:18 UTC (rev 3555)
+++ branches/Cog/spur64src/vm/cogitX64.c	2016-01-16 04:45:20 UTC (rev 3556)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
+	CCodeGenerator VMMaker.oscog-eem.1640 uuid: 5fd87422-b235-4b98-b023-c3be3586cca5
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1640 uuid: 5fd87422-b235-4b98-b023-c3be3586cca5
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1639 uuid: 0607da54-875d-4632-95f3-ce5b0d6d3bf9 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1640 uuid: 5fd87422-b235-4b98-b023-c3be3586cca5 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -679,8 +679,6 @@
 static sqInt NoDbgRegParms checkValidObjectReference(sqInt anOop);
 static AbstractInstruction * NoDbgRegParms genCmpClassFloatCompactIndexR(sqInt reg);
 static AbstractInstruction * NoDbgRegParms genCmpClassMethodContextCompactIndexR(sqInt reg);
-static sqInt NoDbgRegParms genDoubleArithmeticpreOpCheck(sqInt arithmeticOperator, AbstractInstruction *(*preOpCheckOrNil)(int rcvrReg, int argReg));
-static sqInt NoDbgRegParms genDoubleComparisoninvert(AbstractInstruction *(*jumpOpcodeGenerator)(void *), sqInt invertComparison);
 static sqInt NoDbgRegParms genLoadSlotsourceRegdestReg(sqInt index, sqInt sourceReg, sqInt destReg);
 static sqInt genPrimitiveAdd(void);
 static sqInt genPrimitiveAsFloat(void);
@@ -738,6 +736,8 @@
 static void NoDbgRegParms genConvertSmallIntegerToCharacterInReg(sqInt reg);
 static sqInt NoDbgRegParms genConvertSmallIntegerToIntegerInReg(sqInt reg);
 static sqInt NoDbgRegParms genFetchIndexRegisterfrominto(sqInt indexReg, sqInt tableObj, sqInt destReg);
+static sqInt NoDbgRegParms genFloatArithmeticpreOpCheckboxed(sqInt arithmeticOperator, AbstractInstruction *(*preOpCheckOrNil)(int rcvrReg, int argReg), sqInt rcvrBoxed);
+static sqInt NoDbgRegParms genFloatComparisoninvertboxed(AbstractInstruction *(*jumpOpcodeGenerator)(void *), sqInt invertComparison, sqInt rcvrBoxed);
 static sqInt NoDbgRegParms genGetHashFieldNonImmOfasSmallIntegerInto(sqInt instReg, sqInt destReg);
 static sqInt NoDbgRegParms genGetHashFieldNonImmOfinto(sqInt instReg, sqInt destReg);
 static AbstractInstruction * NoDbgRegParms genGetInlineCacheClassTagFromintoforEntry(sqInt sourceReg, sqInt destReg, sqInt forEntry);
@@ -746,7 +746,6 @@
 static AbstractInstruction * NoDbgRegParms genJumpIsSmallIntegerValuescratch(sqInt aRegister, sqInt scratchReg);
 static AbstractInstruction * NoDbgRegParms genJumpNotCharacterscratchReg(sqInt reg, sqInt scratch);
 static AbstractInstruction * NoDbgRegParms genJumpNotSmallFloatValueBitsscratch(sqInt reg, sqInt exponent);
-static AbstractInstruction * NoDbgRegParms genJumpNotSmallFloatscratchReg(sqInt reg, sqInt scratch);
 static AbstractInstruction * NoDbgRegParms genJumpNotSmallIntegersInandScratchReg(sqInt aRegister, sqInt scratchReg);
 static AbstractInstruction * NoDbgRegParms genJumpNotSmallIntegerValuescratch(sqInt aRegister, sqInt scratchReg);
 static AbstractInstruction * NoDbgRegParms genJumpNotSmallIntegerscratchReg(sqInt reg, sqInt scratch);
@@ -760,11 +759,8 @@
 static sqInt genPrimitiveStringAtPut(void);
 static sqInt NoDbgRegParms genRemoveSmallIntegerTagsInScratchReg(sqInt scratchReg);
 static sqInt NoDbgRegParms genShiftAwaySmallIntegerTagsInScratchReg(sqInt scratchReg);
-static sqInt NoDbgRegParms genSmallFloatArithmeticpreOpCheck(sqInt arithmeticOperator, AbstractInstruction *(*preOpCheckOrNil)(int rcvrReg, int argReg));
-static sqInt NoDbgRegParms genSmallFloatComparisoninvert(AbstractInstruction *(*jumpOpcodeGenerator)(void *), sqInt invertComparison);
 static sqInt NoDbgRegParms inlineCacheTagForInstance(sqInt oop);
 static sqInt log2BytesPerWord(void);
-static sqInt NoDbgRegParms maybeGenConvertIfSmallFloatInscratchRegintoandJumpTo(sqInt oopReg, sqInt scratch, sqInt dpReg, AbstractInstruction *targetInst);
 static void maybeGenerateSelectorIndexDereferenceRoutine(void);
 static sqInt numSmallIntegerBits(void);
 static sqInt numSmallIntegerTagBits(void);
@@ -787,7 +783,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);
@@ -833,7 +829,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 sqInt NoDbgRegParms concretizeArithCqRWithROraxOpcode(AbstractInstruction * self_in_concretizeArithCqRWithROraxOpcode, sqInt regOpcode, sqInt raxOpcode);
+static usqInt 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 +913,7 @@
 static sqInt genLongUnconditionalBackwardJump(void);
 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 AbstractInstruction * NoDbgRegParms genMoveTrueR(sqInt reg);
 static sqInt NoDbgRegParms genMustBeBooleanTrampolineForcalled(sqInt boolean, char *trampolineName);
 static void NoDbgRegParms genPrimReturnEnterCogCodeEnilopmart(sqInt profiling);
@@ -9714,126 +9710,6 @@
 	return anInstruction;
 }
 
-	/* CogObjectRepresentation>>#genDoubleArithmetic:preOpCheck: */
-static sqInt NoDbgRegParms
-genDoubleArithmeticpreOpCheck(sqInt arithmeticOperator, AbstractInstruction *(*preOpCheckOrNil)(int rcvrReg, int argReg))
-{
-    AbstractInstruction *doOp;
-    AbstractInstruction *jumpFailAlloc;
-    AbstractInstruction *jumpFailCheck;
-    AbstractInstruction *jumpFailClass;
-    AbstractInstruction *jumpImmediate;
-    AbstractInstruction *jumpNonInt;
-
-	/* begin genLoadArgAtDepth:into: */
-	assert(0 < (numRegArgs()));
-	genGetDoubleValueOfinto(ReceiverResultReg, DPFPReg0);
-	/* begin MoveR:R: */
-	genoperandoperand(MoveRR, Arg0Reg, ClassReg);
-	jumpImmediate = genJumpImmediate(Arg0Reg);
-	genGetCompactClassIndexNonImmOfinto(Arg0Reg, SendNumArgsReg);
-	genCmpClassFloatCompactIndexR(SendNumArgsReg);
-	/* begin JumpNonZero: */
-	jumpFailClass = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
-	genGetDoubleValueOfinto(Arg0Reg, DPFPReg1);
-	/* begin Label */
-	doOp = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
-	if (!(preOpCheckOrNil == null)) {
-		jumpFailCheck = preOpCheckOrNil(DPFPReg0, DPFPReg1);
-	}
-	genoperandoperand(arithmeticOperator, DPFPReg1, DPFPReg0);
-	jumpFailAlloc = genAllocFloatValueintoscratchRegscratchReg(DPFPReg0, SendNumArgsReg, ClassReg, TempReg);
-	/* begin MoveR:R: */
-	genoperandoperand(MoveRR, SendNumArgsReg, ReceiverResultReg);
-	/* begin genPrimReturn */
-	assert(methodOrBlockNumArgs <= (numRegArgs()));
-	/* begin RetN: */
-	genoperand(RetN, 0);
-	jmpTarget(jumpImmediate, gLabel());
-	maybeGenConvertIfSmallFloatInscratchRegintoandJumpTo(Arg0Reg, TempReg, DPFPReg1, doOp);
-	jumpNonInt = genJumpNotSmallIntegerscratchReg(Arg0Reg, TempReg);
-
-	genConvertSmallIntegerToIntegerInReg(ClassReg);
-	/* begin ConvertR:Rd: */
-	genoperandoperand(ConvertRRd, ClassReg, DPFPReg1);
-	/* begin Jump: */
-	genoperand(Jump, ((sqInt)doOp));
-	jmpTarget(jumpFailAlloc, jmpTarget(jumpFailClass, gLabel()));
-	jmpTarget(jumpNonInt, getJmpTarget(jumpFailClass));
-
-	if (!(preOpCheckOrNil == null)) {
-		jmpTarget(jumpFailCheck, getJmpTarget(jumpFailClass));
-	}
-	return 0;
-}
-
-	/* CogObjectRepresentation>>#genDoubleComparison:invert: */
-static sqInt NoDbgRegParms
-genDoubleComparisoninvert(AbstractInstruction *(*jumpOpcodeGenerator)(void *), sqInt invertComparison)
-{
-    AbstractInstruction *anInstruction;
-    AbstractInstruction *compare;
-    sqInt constant;
-    AbstractInstruction *jumpCond;
-    AbstractInstruction *jumpFail;
-    AbstractInstruction *jumpImmediate;
-    AbstractInstruction *jumpNonInt;
-
-	/* begin genLoadArgAtDepth:into: */
-	assert(0 < (numRegArgs()));
-	genGetDoubleValueOfinto(ReceiverResultReg, DPFPReg0);
-	jumpImmediate = genJumpImmediate(Arg0Reg);
-	genGetCompactClassIndexNonImmOfinto(Arg0Reg, SendNumArgsReg);
-	genCmpClassFloatCompactIndexR(SendNumArgsReg);
-	/* begin JumpNonZero: */
-	jumpFail = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
-	genGetDoubleValueOfinto(Arg0Reg, DPFPReg1);
-	if (invertComparison) {
-
-		/* May need to invert for NaNs */
-		/* begin CmpRd:Rd: */
-		compare = genoperandoperand(CmpRdRd, DPFPReg0, DPFPReg1);
-	}
-	else {
-		/* begin CmpRd:Rd: */
-		compare = genoperandoperand(CmpRdRd, DPFPReg1, DPFPReg0);
-	}
-
-	/* FP jumps are a little weird */
-	jumpCond = jumpOpcodeGenerator(0);
-	/* begin genMoveConstant:R: */
-	constant = falseObject();
-	if (shouldAnnotateObjectReference(constant)) {
-		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
-	}
-	else {
-		/* begin MoveCq:R: */
-		anInstruction = genoperandoperand(MoveCqR, constant, ReceiverResultReg);
-	}
-	/* begin genPrimReturn */
-	assert(methodOrBlockNumArgs <= (numRegArgs()));
-	/* begin RetN: */
-	genoperand(RetN, 0);
-	jmpTarget(jumpCond, genMoveTrueR(ReceiverResultReg));
-	/* begin genPrimReturn */
-	assert(methodOrBlockNumArgs <= (numRegArgs()));
-	/* begin RetN: */
-	genoperand(RetN, 0);
-	jmpTarget(jumpImmediate, gLabel());
-	maybeGenConvertIfSmallFloatInscratchRegintoandJumpTo(Arg0Reg, TempReg, DPFPReg1, compare);
-	jumpNonInt = genJumpNotSmallIntegerscratchReg(Arg0Reg, TempReg);
-
-	genConvertSmallIntegerToIntegerInReg(Arg0Reg);
-	/* begin ConvertR:Rd: */
-	genoperandoperand(ConvertRRd, Arg0Reg, DPFPReg1);
-	/* begin Jump: */
-	genoperand(Jump, ((sqInt)compare));
-	jmpTarget(jumpFail, gLabel());
-	jmpTarget(jumpNonInt, getJmpTarget(jumpFail));
-
-	return CompletePrimitive;
-}
-
 	/* CogObjectRepresentation>>#genLoadSlot:sourceReg:destReg: */
 static sqInt NoDbgRegParms
 genLoadSlotsourceRegdestReg(sqInt index, sqInt sourceReg, sqInt destReg)
@@ -10232,63 +10108,63 @@
 static sqInt
 genPrimitiveFloatAdd(void)
 {
-	return genDoubleArithmeticpreOpCheck(AddRdRd, null);
+	return genFloatArithmeticpreOpCheckboxed(AddRdRd, null, 1);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveFloatDivide */
 static sqInt
 genPrimitiveFloatDivide(void)
 {
-	return genDoubleArithmeticpreOpCheck(DivRdRd, genDoubleFailIfZeroArgRcvrarg);
+	return genFloatArithmeticpreOpCheckboxed(DivRdRd, genDoubleFailIfZeroArgRcvrarg, 1);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveFloatEqual */
 static sqInt
 genPrimitiveFloatEqual(void)
 {
-	return genDoubleComparisoninvert(gJumpFPEqual, 0);
+	return genFloatComparisoninvertboxed(gJumpFPEqual, 0, 1);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveFloatGreaterOrEqual */
 static sqInt
 genPrimitiveFloatGreaterOrEqual(void)
 {
-	return genDoubleComparisoninvert(gJumpFPGreaterOrEqual, 0);
+	return genFloatComparisoninvertboxed(gJumpFPGreaterOrEqual, 0, 1);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveFloatGreaterThan */
 static sqInt
 genPrimitiveFloatGreaterThan(void)
 {
-	return genDoubleComparisoninvert(gJumpFPGreater, 0);
+	return genFloatComparisoninvertboxed(gJumpFPGreater, 0, 1);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveFloatLessOrEqual */
 static sqInt
 genPrimitiveFloatLessOrEqual(void)
 {
-	return genDoubleComparisoninvert(gJumpFPGreaterOrEqual, 1);
+	return genFloatComparisoninvertboxed(gJumpFPGreaterOrEqual, 1, 1);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveFloatLessThan */
 static sqInt
 genPrimitiveFloatLessThan(void)
 {
-	return genDoubleComparisoninvert(gJumpFPGreater, 1);
+	return genFloatComparisoninvertboxed(gJumpFPGreater, 1, 1);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveFloatMultiply */
 static sqInt
 genPrimitiveFloatMultiply(void)
 {
-	return genDoubleArithmeticpreOpCheck(MulRdRd, null);
+	return genFloatArithmeticpreOpCheckboxed(MulRdRd, null, 1);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveFloatNotEqual */
 static sqInt
 genPrimitiveFloatNotEqual(void)
 {
-	return genDoubleComparisoninvert(gJumpFPNotEqual, 0);
+	return genFloatComparisoninvertboxed(gJumpFPNotEqual, 0, 1);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveFloatSquareRoot */
@@ -10315,7 +10191,7 @@
 static sqInt
 genPrimitiveFloatSubtract(void)
 {
-	return genDoubleArithmeticpreOpCheck(SubRdRd, null);
+	return genFloatArithmeticpreOpCheckboxed(SubRdRd, null, 1);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveGreaterOrEqual */
@@ -10525,63 +10401,63 @@
 static sqInt
 genPrimitiveSmallFloatAdd(void)
 {
-	return genSmallFloatArithmeticpreOpCheck(AddRdRd, null);
+	return genFloatArithmeticpreOpCheckboxed(AddRdRd, null, 0);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveSmallFloatDivide */
 static sqInt
 genPrimitiveSmallFloatDivide(void)
 {
-	return genSmallFloatArithmeticpreOpCheck(DivRdRd, genDoubleFailIfZeroArgRcvrarg);
+	return genFloatArithmeticpreOpCheckboxed(DivRdRd, genDoubleFailIfZeroArgRcvrarg, 0);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveSmallFloatEqual */
 static sqInt
 genPrimitiveSmallFloatEqual(void)
 {
-	return genSmallFloatComparisoninvert(gJumpFPEqual, 0);
+	return genFloatComparisoninvertboxed(gJumpFPEqual, 0, 0);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveSmallFloatGreaterOrEqual */
 static sqInt
 genPrimitiveSmallFloatGreaterOrEqual(void)
 {
-	return genSmallFloatComparisoninvert(gJumpFPGreaterOrEqual, 0);
+	return genFloatComparisoninvertboxed(gJumpFPGreaterOrEqual, 0, 0);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveSmallFloatGreaterThan */
 static sqInt
 genPrimitiveSmallFloatGreaterThan(void)
 {
-	return genSmallFloatComparisoninvert(gJumpFPGreater, 0);
+	return genFloatComparisoninvertboxed(gJumpFPGreater, 0, 0);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveSmallFloatLessOrEqual */
 static sqInt
 genPrimitiveSmallFloatLessOrEqual(void)
 {
-	return genSmallFloatComparisoninvert(gJumpFPGreaterOrEqual, 1);
+	return genFloatComparisoninvertboxed(gJumpFPGreaterOrEqual, 1, 0);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveSmallFloatLessThan */
 static sqInt
 genPrimitiveSmallFloatLessThan(void)
 {
-	return genSmallFloatComparisoninvert(gJumpFPGreater, 1);
+	return genFloatComparisoninvertboxed(gJumpFPGreater, 1, 0);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveSmallFloatMultiply */
 static sqInt
 genPrimitiveSmallFloatMultiply(void)
 {
-	return genSmallFloatArithmeticpreOpCheck(MulRdRd, null);
+	return genFloatArithmeticpreOpCheckboxed(MulRdRd, null, 0);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveSmallFloatNotEqual */
 static sqInt
 genPrimitiveSmallFloatNotEqual(void)
 {
-	return genSmallFloatComparisoninvert(gJumpFPNotEqual, 0);
+	return genFloatComparisoninvertboxed(gJumpFPNotEqual, 0, 0);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveSmallFloatSquareRoot */
@@ -10608,7 +10484,7 @@
 static sqInt
 genPrimitiveSmallFloatSubtract(void)
 {
-	return genSmallFloatArithmeticpreOpCheck(SubRdRd, null);
+	return genFloatArithmeticpreOpCheckboxed(SubRdRd, null, 0);
 }
 
 	/* CogObjectRepresentation>>#genPrimitiveSubtract */
@@ -10659,7 +10535,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);
@@ -10727,7 +10603,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);
@@ -10975,7 +10851,175 @@
 	return 0;
 }
 
+	/* CogObjectRepresentationFor64BitSpur>>#genFloatArithmetic:preOpCheck:boxed: */
+static sqInt NoDbgRegParms
+genFloatArithmeticpreOpCheckboxed(sqInt arithmeticOperator, AbstractInstruction *(*preOpCheckOrNil)(int rcvrReg, int argReg), sqInt rcvrBoxed)
+{
+    AbstractInstruction *anInstruction;
+    AbstractInstruction *anInstruction1;
+    AbstractInstruction *doOp;
+    AbstractInstruction *jumpFailAlloc;
+    AbstractInstruction *jumpFailCheck;
+    AbstractInstruction *jumpImmediate;
+    AbstractInstruction *jumpNotBoxedFloat;
+    AbstractInstruction *jumpNotSmallFloat;
+    AbstractInstruction *jumpNotSmallInteger;
+    sqInt quickConstant;
+    sqInt quickConstant1;
 
+	/* begin genLoadArgAtDepth:into: */
+	assert(0 < (numRegArgs()));
+	if (rcvrBoxed) {
+		genGetDoubleValueOfinto(ReceiverResultReg, DPFPReg0);
+	}
+	else {
+		genGetSmallFloatValueOfscratchinto(ReceiverResultReg, TempReg, DPFPReg0);
+	}
+	/* begin MoveR:R: */
+	genoperandoperand(MoveRR, Arg0Reg, ClassReg);
+	/* begin AndCq:R: */
+	quickConstant = tagMask();
+	/* begin gen:quickConstant:operand: */
+	anInstruction = genoperandoperand(AndCqR, quickConstant, ClassReg);
+	/* begin CmpCq:R: */
+	quickConstant1 = smallFloatTag();
+	/* begin gen:quickConstant:operand: */
+	anInstruction1 = genoperandoperand(CmpCqR, quickConstant1, ClassReg);
+	/* begin JumpNonZero: */
+	jumpNotSmallFloat = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+	genGetSmallFloatValueOfscratchinto(Arg0Reg, TempReg, DPFPReg1);
+	/* begin Label */
+	doOp = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
+	if (!(preOpCheckOrNil == null)) {
+		jumpFailCheck = preOpCheckOrNil(DPFPReg0, DPFPReg1);
+	}
+	genoperandoperand(arithmeticOperator, DPFPReg1, DPFPReg0);
+	jumpFailAlloc = genAllocFloatValueintoscratchRegscratchReg(DPFPReg0, SendNumArgsReg, ClassReg, TempReg);
+	/* begin MoveR:R: */
+	genoperandoperand(MoveRR, SendNumArgsReg, ReceiverResultReg);
+	/* begin genPrimReturn */
+	assert(methodOrBlockNumArgs <= (numRegArgs()));
+	/* begin RetN: */
+	genoperand(RetN, 0);
+	jmpTarget(jumpNotSmallFloat, gCmpCqR(smallIntegerTag(), ClassReg));
+	/* begin JumpNonZero: */
+	jumpNotSmallInteger = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+	/* begin MoveR:R: */
+	genoperandoperand(MoveRR, Arg0Reg, Arg1Reg);
+	genConvertSmallIntegerToIntegerInReg(Arg1Reg);
+	/* begin ConvertR:Rd: */
+	genoperandoperand(ConvertRRd, Arg1Reg, DPFPReg1);
+	/* begin Jump: */
+	genoperand(Jump, ((sqInt)doOp));
+	jmpTarget(jumpNotSmallInteger, gCmpCqR(0, ClassReg));
+	/* begin JumpNonZero: */
+	jumpImmediate = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+	genGetCompactClassIndexNonImmOfinto(Arg0Reg, SendNumArgsReg);
+	genCmpClassFloatCompactIndexR(SendNumArgsReg);
+	/* begin JumpNonZero: */
+	jumpNotBoxedFloat = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+	genGetDoubleValueOfinto(Arg0Reg, DPFPReg1);
+	/* begin Jump: */
+	genoperand(Jump, ((sqInt)doOp));
+	jmpTarget(jumpImmediate, jmpTarget(jumpNotBoxedFloat, jmpTarget(jumpNotSmallInteger, jmpTarget(jumpFailAlloc, gLabel()))));
+	if (!(preOpCheckOrNil == null)) {
+		jmpTarget(jumpFailCheck, getJmpTarget(jumpFailAlloc));
+	}
+	return 0;
+}
+
+	/* CogObjectRepresentationFor64BitSpur>>#genFloatComparison:invert:boxed: */
+static sqInt NoDbgRegParms
+genFloatComparisoninvertboxed(AbstractInstruction *(*jumpOpcodeGenerator)(void *), sqInt invertComparison, sqInt rcvrBoxed)
+{
+    AbstractInstruction *anInstruction;
+    AbstractInstruction *anInstruction1;
+    AbstractInstruction *anInstruction2;
+    AbstractInstruction * compare;
+    sqInt constant;
+    AbstractInstruction *jumpCond;
+    AbstractInstruction *jumpImmediate;
+    AbstractInstruction *jumpNotBoxedFloat;
+    AbstractInstruction *jumpNotSmallFloat;
+    AbstractInstruction *jumpNotSmallInteger;
+    sqInt quickConstant;
+    sqInt quickConstant1;
+
+	/* begin genLoadArgAtDepth:into: */
+	assert(0 < (numRegArgs()));
+	if (rcvrBoxed) {
+		genGetDoubleValueOfinto(ReceiverResultReg, DPFPReg0);
+	}
+	else {
+		genGetSmallFloatValueOfscratchinto(ReceiverResultReg, TempReg, DPFPReg0);
+	}
+	/* begin MoveR:R: */
+	genoperandoperand(MoveRR, Arg0Reg, ClassReg);
+	/* begin AndCq:R: */
+	quickConstant = tagMask();
+	/* begin gen:quickConstant:operand: */
+	anInstruction = genoperandoperand(AndCqR, quickConstant, ClassReg);
+	/* begin CmpCq:R: */
+	quickConstant1 = smallFloatTag();
+	/* begin gen:quickConstant:operand: */
+	anInstruction1 = genoperandoperand(CmpCqR, quickConstant1, ClassReg);
+	/* begin JumpNonZero: */
+	jumpNotSmallFloat = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+	genGetSmallFloatValueOfscratchinto(Arg0Reg, TempReg, DPFPReg1);
+	if (invertComparison) {
+
+		/* May need to invert for NaNs */
+		/* begin CmpRd:Rd: */
+		compare = genoperandoperand(CmpRdRd, DPFPReg0, DPFPReg1);
+	}
+	else {
+		/* begin CmpRd:Rd: */
+		compare = genoperandoperand(CmpRdRd, DPFPReg1, DPFPReg0);
+	}
+
+	/* FP jumps are a little weird */
+	jumpCond = jumpOpcodeGenerator(0);
+	/* begin genMoveFalseR: */
+	constant = falseObject();
+	if (shouldAnnotateObjectReference(constant)) {
+		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
+	}
+	else {
+		/* begin MoveCq:R: */
+		anInstruction2 = genoperandoperand(MoveCqR, constant, ReceiverResultReg);
+	}
+	/* begin genPrimReturn */
+	assert(methodOrBlockNumArgs <= (numRegArgs()));
+	/* begin RetN: */
+	genoperand(RetN, 0);
+	jmpTarget(jumpCond, genMoveTrueR(ReceiverResultReg));
+	/* begin genPrimReturn */
+	assert(methodOrBlockNumArgs <= (numRegArgs()));
+	/* begin RetN: */
+	genoperand(RetN, 0);
+	jmpTarget(jumpNotSmallFloat, gCmpCqR(smallIntegerTag(), ClassReg));
+	/* begin JumpNonZero: */
+	jumpNotSmallInteger = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+	genConvertSmallIntegerToIntegerInReg(Arg0Reg);
+	/* begin ConvertR:Rd: */
+	genoperandoperand(ConvertRRd, Arg0Reg, DPFPReg1);
+	/* begin Jump: */
+	genoperand(Jump, ((sqInt)compare));
+	jmpTarget(jumpNotSmallInteger, gCmpCqR(0, ClassReg));
+	/* begin JumpNonZero: */
+	jumpImmediate = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+	genGetCompactClassIndexNonImmOfinto(Arg0Reg, SendNumArgsReg);
+	genCmpClassFloatCompactIndexR(SendNumArgsReg);
+	/* begin JumpNonZero: */
+	jumpNotBoxedFloat = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+	genGetDoubleValueOfinto(Arg0Reg, DPFPReg1);
+	/* begin Jump: */
+	genoperand(Jump, ((sqInt)compare));
+	jmpTarget(jumpImmediate, jmpTarget(jumpNotBoxedFloat, gLabel()));
+	return CompletePrimitive;
+}
+
+
 /*	Fetch the instance's identity hash into destReg, encoded as a
 	SmallInteger. 
  */
@@ -11232,26 +11276,6 @@
 }
 
 
-/*	Generate a compare and branch to test if aRegister contains other than a
-	SmallFloat. Answer the jump. */
-
-	/* CogObjectRepresentationFor64BitSpur>>#genJumpNotSmallFloat:scratchReg: */
-static AbstractInstruction * NoDbgRegParms
-genJumpNotSmallFloatscratchReg(sqInt reg, sqInt scratch)
-{
-    AbstractInstruction *anInstruction;
-    sqInt quickConstant;
-
-	return (gAndCqRR(tagMask(), reg, scratch),
-		/* begin CmpCq:R: */
-		(quickConstant = smallFloatTag()),
-		/* begin gen:quickConstant:operand: */
-		(anInstruction = genoperandoperand(CmpCqR, quickConstant, scratch)),
-		/* begin JumpNonZero: */
-		genConditionalBranchoperand(JumpNonZero, ((sqInt)0)));
-}
-
-
 /*	Generate a compare and branch to test if aRegister and scratchReg contains
 	other than SmallIntegers,
 	i.e. don't branch if both aRegister and scratchReg contain SmallIntegers.
@@ -12565,165 +12589,7 @@
 	return 0;
 }
 
-	/* CogObjectRepresentationFor64BitSpur>>#genSmallFloatArithmetic:preOpCheck: */
-static sqInt NoDbgRegParms
-genSmallFloatArithmeticpreOpCheck(sqInt arithmeticOperator, AbstractInstruction *(*preOpCheckOrNil)(int rcvrReg, int argReg))
-{
-    AbstractInstruction *anInstruction;
-    AbstractInstruction *anInstruction1;
-    AbstractInstruction *doOp;
-    AbstractInstruction *jumpFailAlloc;
-    AbstractInstruction *jumpFailCheck;
-    AbstractInstruction *jumpImmediate;
-    AbstractInstruction *jumpNotBoxedFloat;
-    AbstractInstruction *jumpNotSmallFloat;
-    AbstractInstruction *jumpNotSmallInteger;
-    sqInt quickConstant;
-    sqInt quickConstant1;
 
-	/* begin genLoadArgAtDepth:into: */
-	assert(0 < (numRegArgs()));
-	genGetSmallFloatValueOfscratchinto(ReceiverResultReg, TempReg, DPFPReg0);
-	/* begin MoveR:R: */
-	genoperandoperand(MoveRR, Arg0Reg, ClassReg);
-	/* begin AndCq:R: */
-	quickConstant = tagMask();
-	/* begin gen:quickConstant:operand: */
-	anInstruction = genoperandoperand(AndCqR, quickConstant, ClassReg);
-	/* begin CmpCq:R: */
-	quickConstant1 = smallFloatTag();
-	/* begin gen:quickConstant:operand: */
-	anInstruction1 = genoperandoperand(CmpCqR, quickConstant1, ClassReg);
-	/* begin JumpNonZero: */
-	jumpNotSmallFloat = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
-	genGetSmallFloatValueOfscratchinto(Arg0Reg, TempReg, DPFPReg1);
-	/* begin Label */
-	doOp = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
-	if (!(preOpCheckOrNil == null)) {
-		jumpFailCheck = preOpCheckOrNil(DPFPReg0, DPFPReg1);
-	}
-	genoperandoperand(arithmeticOperator, DPFPReg1, DPFPReg0);
-	jumpFailAlloc = genAllocFloatValueintoscratchRegscratchReg(DPFPReg0, SendNumArgsReg, ClassReg, TempReg);
-	/* begin MoveR:R: */
-	genoperandoperand(MoveRR, SendNumArgsReg, ReceiverResultReg);
-	/* begin genPrimReturn */
-	assert(methodOrBlockNumArgs <= (numRegArgs()));
-	/* begin RetN: */
-	genoperand(RetN, 0);
-	jmpTarget(jumpNotSmallFloat, gCmpCqR(smallIntegerTag(), ClassReg));
-	/* begin JumpNonZero: */
-	jumpNotSmallInteger = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
-	/* begin MoveR:R: */
-	genoperandoperand(MoveRR, Arg0Reg, Arg1Reg);
-	genConvertSmallIntegerToIntegerInReg(Arg1Reg);
-	/* begin ConvertR:Rd: */
-	genoperandoperand(ConvertRRd, Arg1Reg, DPFPReg1);
-	/* begin Jump: */
-	genoperand(Jump, ((sqInt)doOp));
-	jmpTarget(jumpNotSmallInteger, gCmpCqR(0, ClassReg));
-	/* begin JumpNonZero: */
-	jumpImmediate = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
-	genGetCompactClassIndexNonImmOfinto(Arg0Reg, SendNumArgsReg);
-	genCmpClassFloatCompactIndexR(SendNumArgsReg);
-	/* begin JumpNonZero: */
-	jumpNotBoxedFloat = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
-	genGetDoubleValueOfinto(Arg0Reg, DPFPReg1);
-	/* begin Jump: */
-	genoperand(Jump, ((sqInt)doOp));
-	jmpTarget(jumpImmediate, jmpTarget(jumpNotBoxedFloat, jmpTarget(jumpNotSmallInteger, jmpTarget(jumpFailAlloc, gLabel()))));
-	if (!(preOpCheckOrNil == null)) {
-		jmpTarget(jumpFailCheck, getJmpTarget(jumpFailAlloc));
-	}
-	return 0;
-}
-
-	/* CogObjectRepresentationFor64BitSpur>>#genSmallFloatComparison:invert: */
-static sqInt NoDbgRegParms
-genSmallFloatComparisoninvert(AbstractInstruction *(*jumpOpcodeGenerator)(void *), sqInt invertComparison)
-{
-    AbstractInstruction *anInstruction;
-    AbstractInstruction *anInstruction1;
-    AbstractInstruction *anInstruction2;
-    AbstractInstruction * compare;
-    sqInt constant;
-    AbstractInstruction *jumpCond;
-    AbstractInstruction *jumpImmediate;
-    AbstractInstruction *jumpNotBoxedFloat;
-    AbstractInstruction *jumpNotSmallFloat;
-    AbstractInstruction *jumpNotSmallInteger;
-    sqInt quickConstant;
-    sqInt quickConstant1;
-
-	/* begin genLoadArgAtDepth:into: */
-	assert(0 < (numRegArgs()));
-	genGetSmallFloatValueOfscratchinto(ReceiverResultReg, TempReg, DPFPReg0);
-	/* begin MoveR:R: */
-	genoperandoperand(MoveRR, Arg0Reg, ClassReg);
-	/* begin AndCq:R: */
-	quickConstant = tagMask();
-	/* begin gen:quickConstant:operand: */
-	anInstruction1 = genoperandoperand(AndCqR, quickConstant, ClassReg);
-	/* begin CmpCq:R: */
-	quickConstant1 = smallFloatTag();
-	/* begin gen:quickConstant:operand: */
-	anInstruction2 = genoperandoperand(CmpCqR, quickConstant1, ClassReg);
-	/* begin JumpNonZero: */
-	jumpNotSmallFloat = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
-	genGetSmallFloatValueOfscratchinto(Arg0Reg, TempReg, DPFPReg1);
-	if (invertComparison) {
-
-		/* May need to invert for NaNs */
-		/* begin CmpRd:Rd: */
-		compare = genoperandoperand(CmpRdRd, DPFPReg0, DPFPReg1);
-	}
-	else {
-		/* begin CmpRd:Rd: */
-		compare = genoperandoperand(CmpRdRd, DPFPReg1, DPFPReg0);
-	}
-
-	/* FP jumps are a little weird */
-	jumpCond = jumpOpcodeGenerator(0);
-	/* begin genMoveConstant:R: */
-	constant = falseObject();
-	if (shouldAnnotateObjectReference(constant)) {
-		annotateobjRef(gMoveCwR(constant, ReceiverResultReg), constant);
-	}
-	else {
-		/* begin MoveCq:R: */
-		anInstruction = genoperandoperand(MoveCqR, constant, ReceiverResultReg);
-	}
-	/* begin genPrimReturn */
-	assert(methodOrBlockNumArgs <= (numRegArgs()));
-	/* begin RetN: */
-	genoperand(RetN, 0);
-	jmpTarget(jumpCond, genMoveTrueR(ReceiverResultReg));
-	/* begin genPrimReturn */
-	assert(methodOrBlockNumArgs <= (numRegArgs()));
-	/* begin RetN: */
-	genoperand(RetN, 0);
-	jmpTarget(jumpNotSmallFloat, gCmpCqR(smallIntegerTag(), ClassReg));
-	/* begin JumpNonZero: */
-	jumpNotSmallInteger = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
-	genConvertSmallIntegerToIntegerInReg(Arg0Reg);
-	/* begin ConvertR:Rd: */
-	genoperandoperand(ConvertRRd, Arg0Reg, DPFPReg1);
-	/* begin Jump: */
-	genoperand(Jump, ((sqInt)compare));
-	jmpTarget(jumpNotSmallInteger, gCmpCqR(0, ClassReg));
-	/* begin JumpNonZero: */
-	jumpImmediate = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
-	genGetCompactClassIndexNonImmOfinto(Arg0Reg, SendNumArgsReg);
-	genCmpClassFloatCompactIndexR(SendNumArgsReg);
-	/* begin JumpNonZero: */
-	jumpNotBoxedFloat = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
-	genGetDoubleValueOfinto(Arg0Reg, DPFPReg1);
-	/* begin Jump: */
-	genoperand(Jump, ((sqInt)compare));
-	jmpTarget(jumpImmediate, jmpTarget(jumpNotBoxedFloat, gLabel()));
-	return CompletePrimitive;
-}
-
-
 /*	Answer the relevant inline cache tag for an instance.
 	c.f. getInlineCacheClassTagFrom:into: & inlineCacheTagForClass: */
 
@@ -12744,27 +12610,6 @@
 }
 
 
-/*	Generate a test for a smallFloat in oopReg, converting it to the float
-	value in dpReg
-	and jumping to targetInst. If oopReg does not contain a SmallFloat, fall
-	through. 
- */
-
-	/* CogObjectRepresentationFor64BitSpur>>#maybeGenConvertIfSmallFloatIn:scratchReg:into:andJumpTo: */
-static sqInt NoDbgRegParms
-maybeGenConvertIfSmallFloatInscratchRegintoandJumpTo(sqInt oopReg, sqInt scratch, sqInt dpReg, AbstractInstruction *targetInst)
-{
-    AbstractInstruction *jumpNotSF;
-
-	jumpNotSF = genJumpNotSmallFloatscratchReg(oopReg, scratch);
-	genGetSmallFloatValueOfscratchinto(oopReg, scratch, dpReg);
-	/* begin Jump: */
-	genoperand(Jump, ((sqInt)targetInst));
-	jmpTarget(jumpNotSF, gLabel());
-	return 0;
-}
-
-
 /*	Generate the routine that converts selector indices into selector objects.
 	It is called from the send trampolines.
 	If the selector index is negative, convert it into a positive index into
@@ -13561,7 +13406,7 @@
 }
 
 	/* CogObjectRepresentationForSpur>>#genGetClassTagOf:into:scratchReg: */
-static sqInt NoDbgRegParms
+static AbstractInstruction * NoDbgRegParms
 genGetClassTagOfintoscratchReg(sqInt instReg, sqInt destReg, sqInt scratchReg)
 {
 	return genGetInlineCacheClassTagFromintoforEntry(instReg, destReg, 1);
@@ -13937,7 +13782,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: */
@@ -15126,7 +14971,7 @@
 /*	Will get inlined into concretizeAt: switch. */
 
 	/* CogX64Compiler>>#concretizeArithCqRWithRO:raxOpcode: */
-static sqInt NoDbgRegParms
+static usqInt NoDbgRegParms
 concretizeArithCqRWithROraxOpcode(AbstractInstruction * self_in_concretizeArithCqRWithROraxOpcode, sqInt regOpcode, sqInt raxOpcode)
 {
     unsigned long reg;
@@ -15764,7 +15609,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:
@@ -15804,7 +15649,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:
@@ -15869,7 +15714,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:
@@ -15907,7 +15752,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:
@@ -15945,7 +15790,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:
@@ -15983,7 +15828,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:
@@ -16023,7 +15868,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:
@@ -16063,7 +15908,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:
@@ -16101,7 +15946,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:
@@ -16139,7 +15984,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:
@@ -16177,7 +16022,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:
@@ -16215,7 +16060,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:
@@ -16254,7 +16099,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:
@@ -16293,7 +16138,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:
@@ -16331,7 +16176,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:
@@ -16369,7 +16214,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:
@@ -19982,12 +19827,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: */



More information about the Vm-dev mailing list