[Vm-dev] [commit][3661] CogVM source as per VMMaker.oscog-eem.1746

commits at squeakvm.org commits at squeakvm.org
Mon Mar 28 22:36:04 UTC 2016


Revision: 3661
Author:   eliot
Date:     2016-03-28 15:36:02 -0700 (Mon, 28 Mar 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1746

Slang:
Beware: sending abs to an unsigned int will re-interpret the int as signed and
will generate C compiler warnings.  The new version uses SQABS and SQLABS macros
on sqInt and sqLong vars, and fabs and fabsf on double and float argsa, and
llabs on long long, __int64 vars.

LargeIntegersPlugin:

Finish 1st round of LargeIntegers refactoring

- simplify the left and right shift
- use as much unsigned arithmetic as possible
- homogenize type declaration within the plugin
- remove unused digitOf:at:

Refactor LargeIntegers in order to prepare the avent of digits larger than 8 bits.
Most of these refactorings are already applied in classic interpreter VMMaker branch.

Half message were named #bytesOp, the other #digitOp...
Homogenize all message names as #digitOp.

Also homogenize C core message names #cCoreBytes #cCoreDigit #cBytes -> #cDigit...

Rename the rest of #bytes message (whose purpose is to operate on bytesObjects) -> #largeInt (whose effective use is to operate on largeIntegerObjects). This makes the intention a bit clearer.

Remove unused #negative:
Remove debugging stub #think

Spur Cogit:
Rewrote identity primitive to check for forwarders only when the identity of
objects is different.  The previous version woudl crash if the argument was a
forwarder to an immediate.

Modified Paths:
--------------
    branches/Cog/nsspur64src/vm/cogit.h
    branches/Cog/nsspur64src/vm/cogitX64.c
    branches/Cog/nsspur64src/vm/cointerp.c
    branches/Cog/nsspur64src/vm/cointerp.h
    branches/Cog/nsspur64src/vm/gcc3x-cointerp.c
    branches/Cog/nsspursrc/vm/cogit.h
    branches/Cog/nsspursrc/vm/cogitARMv5.c
    branches/Cog/nsspursrc/vm/cogitIA32.c
    branches/Cog/nsspursrc/vm/cogitMIPSEL.c
    branches/Cog/nsspursrc/vm/cointerp.c
    branches/Cog/nsspursrc/vm/cointerp.h
    branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
    branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
    branches/Cog/nsspurstack64src/vm/interp.c
    branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsspurstacksrc/vm/interp.c
    branches/Cog/spur64src/vm/cogit.h
    branches/Cog/spur64src/vm/cogitX64.c
    branches/Cog/spur64src/vm/cointerp.c
    branches/Cog/spur64src/vm/cointerp.h
    branches/Cog/spur64src/vm/gcc3x-cointerp.c
    branches/Cog/spursistasrc/vm/cogit.h
    branches/Cog/spursistasrc/vm/cogitARMv5.c
    branches/Cog/spursistasrc/vm/cogitIA32.c
    branches/Cog/spursistasrc/vm/cogitMIPSEL.c
    branches/Cog/spursistasrc/vm/cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.h
    branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursrc/vm/cogit.h
    branches/Cog/spursrc/vm/cogitARMv5.c
    branches/Cog/spursrc/vm/cogitIA32.c
    branches/Cog/spursrc/vm/cogitMIPSEL.c
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spurstack64src/vm/gcc3x-interp.c
    branches/Cog/spurstack64src/vm/interp.c
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.c
    branches/Cog/src/plugins/BitBltPlugin/BitBltPlugin.c
    branches/Cog/src/plugins/GeniePlugin/GeniePlugin.c
    branches/Cog/src/plugins/IA32ABI/IA32ABI.c
    branches/Cog/src/plugins/LargeIntegers/LargeIntegers.c
    branches/Cog/src/vm/cogit.h
    branches/Cog/src/vm/cogitARMv5.c
    branches/Cog/src/vm/cogitIA32.c
    branches/Cog/src/vm/cogitMIPSEL.c
    branches/Cog/src/vm/cointerp.c
    branches/Cog/src/vm/cointerp.h
    branches/Cog/src/vm/cointerpmt.c
    branches/Cog/src/vm/cointerpmt.h
    branches/Cog/src/vm/gcc3x-cointerp.c
    branches/Cog/src/vm/gcc3x-cointerpmt.c
    branches/Cog/stacksrc/vm/gcc3x-interp.c
    branches/Cog/stacksrc/vm/interp.c

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

Modified: branches/Cog/nsspur64src/vm/cogit.h
===================================================================
--- branches/Cog/nsspur64src/vm/cogit.h	2016-03-28 21:36:20 UTC (rev 3660)
+++ branches/Cog/nsspur64src/vm/cogit.h	2016-03-28 22:36:02 UTC (rev 3661)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	CCodeGenerator VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
  */
 
 

Modified: branches/Cog/nsspur64src/vm/cogitX64.c
===================================================================
--- branches/Cog/nsspur64src/vm/cogitX64.c	2016-03-28 21:36:20 UTC (rev 3660)
+++ branches/Cog/nsspur64src/vm/cogitX64.c	2016-03-28 22:36:02 UTC (rev 3661)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	CCodeGenerator VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -974,7 +974,6 @@
 static sqInt genLongUnconditionalBackwardJump(void);
 static sqInt genLongUnconditionalForwardJump(void);
 static sqInt NoDbgRegParms genLookupForPerformNumArgs(sqInt numArgs);
-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);
@@ -3637,7 +3636,7 @@
 closedPICRefersToUnmarkedObject(CogMethod *cPIC)
 {
     sqInt i;
-    usqInt object;
+    sqInt object;
     sqInt pc;
 
 	if (!((isImmediate((cPIC->selector)))
@@ -15604,18 +15603,20 @@
 genPrimitiveIdenticalOrNotIf(sqInt orNot)
 {
     AbstractInstruction *anInstruction;
+    AbstractInstruction *anInstruction1;
+    AbstractInstruction *comp;
     sqInt constant;
+    sqInt constant1;
     AbstractInstruction *jumpCmp;
-    AbstractInstruction *jumpImmediate;
 
 	/* begin genLoadArgAtDepth:into: */
 	assert(0 < (numRegArgs()));
-	jumpImmediate = genJumpImmediate(Arg0Reg);
-	genEnsureObjInRegNotForwardedscratchReg(Arg0Reg, TempReg);
-	jmpTarget(jumpImmediate, gCmpRR(Arg0Reg, ReceiverResultReg));
+	/* begin CmpR:R: */
+	comp = genoperandoperand(CmpRR, Arg0Reg, ReceiverResultReg);
 	if (orNot) {
 		/* begin JumpZero: */
 		jumpCmp = genConditionalBranchoperand(JumpZero, ((sqInt)0));
+		genEnsureOopInRegNotForwardedscratchRegjumpBackTo(Arg0Reg, TempReg, comp);
 	}
 	else {
 		/* begin JumpNonZero: */
@@ -15634,7 +15635,19 @@
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpCmp, genMoveFalseR(ReceiverResultReg));
+	jmpTarget(jumpCmp, gLabel());
+	if (!orNot) {
+		genEnsureOopInRegNotForwardedscratchRegjumpBackTo(Arg0Reg, TempReg, comp);
+	}
+	/* begin genMoveFalseR: */
+	constant1 = falseObject();
+	if (shouldAnnotateObjectReference(constant1)) {
+		annotateobjRef(gMoveCwR(constant1, ReceiverResultReg), constant1);
+	}
+	else {
+		/* begin MoveCq:R: */
+		anInstruction1 = genoperandoperand(MoveCqR, constant1, ReceiverResultReg);
+	}
 	/* begin genPrimReturn */
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
@@ -20537,7 +20550,7 @@
     usqInt callDistance;
 
 	callDistance = jumpTargetAddress - addressFollowingJump;
-	assert((abs(callDistance)) < 128);
+	assert((SQABS(callDistance)) < 128);
 	byteAtput(addressFollowingJump - 1, callDistance & 0xFF);
 	return 2;
 }
@@ -22124,22 +22137,6 @@
 	return 0;
 }
 
-	/* 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 AbstractInstruction * NoDbgRegParms
 genMoveTrueR(sqInt reg)

Modified: branches/Cog/nsspur64src/vm/cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.c	2016-03-28 21:36:20 UTC (rev 3660)
+++ branches/Cog/nsspur64src/vm/cointerp.c	2016-03-28 22:36:02 UTC (rev 3661)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
    from
-	CoInterpreter VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	CoInterpreter VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2441,7 +2441,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1740";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1746";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -42647,7 +42647,7 @@
 		return 0;
 	}
 	size = longAt(oop + BaseHeaderSize);
-	return abs(size);
+	return SQABS(size);
 }
 
 
@@ -67205,7 +67205,7 @@
 bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
 {
     usqInt bridgeSpan;
-    usqInt clifton;
+    sqInt clifton;
     usqInt segEnd;
 
 	segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -67578,7 +67578,7 @@
 static sqInt NoDbgRegParms
 readHeapFromImageFiledataBytes(sqImageFile f, sqInt numBytes)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt bridge;
+    usqInt bridge;
     usqInt bridgehead;
     usqLong bridgeSpan;
     sqInt bytesRead;
@@ -67672,9 +67672,9 @@
 				}
 				else {
 					if ((shrinkage >= (((seg->segSize)) * 0.75))
-					 && ((abs(((seg->segSize)) - shrinkage)) < delta1)) {
+					 && ((SQABS((((seg->segSize)) - shrinkage))) < delta1)) {
 						best = seg;
-						delta1 = abs(((seg->segSize)) - shrinkage);
+						delta1 = SQABS((((seg->segSize)) - shrinkage));
 					}
 				}
 			}
@@ -67793,7 +67793,7 @@
     usqLong firstSavedBridgeWord;
     sqInt nWritten;
     usqInt pier1;
-    usqInt pier2;
+    sqInt pier2;
     usqLong secondSavedBridgeWord;
 
 	pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);

Modified: branches/Cog/nsspur64src/vm/cointerp.h
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.h	2016-03-28 21:36:20 UTC (rev 3660)
+++ branches/Cog/nsspur64src/vm/cointerp.h	2016-03-28 22:36:02 UTC (rev 3661)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
  */
 
 

Modified: branches/Cog/nsspur64src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/gcc3x-cointerp.c	2016-03-28 21:36:20 UTC (rev 3660)
+++ branches/Cog/nsspur64src/vm/gcc3x-cointerp.c	2016-03-28 22:36:02 UTC (rev 3661)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
    from
-	CoInterpreter VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	CoInterpreter VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2444,7 +2444,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1740";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1746";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -42656,7 +42656,7 @@
 		return 0;
 	}
 	size = longAt(oop + BaseHeaderSize);
-	return abs(size);
+	return SQABS(size);
 }
 
 
@@ -67214,7 +67214,7 @@
 bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
 {
     usqInt bridgeSpan;
-    usqInt clifton;
+    sqInt clifton;
     usqInt segEnd;
 
 	segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -67587,7 +67587,7 @@
 static sqInt NoDbgRegParms
 readHeapFromImageFiledataBytes(sqImageFile f, sqInt numBytes)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt bridge;
+    usqInt bridge;
     usqInt bridgehead;
     usqLong bridgeSpan;
     sqInt bytesRead;
@@ -67681,9 +67681,9 @@
 				}
 				else {
 					if ((shrinkage >= (((seg->segSize)) * 0.75))
-					 && ((abs(((seg->segSize)) - shrinkage)) < delta1)) {
+					 && ((SQABS((((seg->segSize)) - shrinkage))) < delta1)) {
 						best = seg;
-						delta1 = abs(((seg->segSize)) - shrinkage);
+						delta1 = SQABS((((seg->segSize)) - shrinkage));
 					}
 				}
 			}
@@ -67802,7 +67802,7 @@
     usqLong firstSavedBridgeWord;
     sqInt nWritten;
     usqInt pier1;
-    usqInt pier2;
+    sqInt pier2;
     usqLong secondSavedBridgeWord;
 
 	pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h	2016-03-28 21:36:20 UTC (rev 3660)
+++ branches/Cog/nsspursrc/vm/cogit.h	2016-03-28 22:36:02 UTC (rev 3661)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	CCodeGenerator VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c	2016-03-28 21:36:20 UTC (rev 3660)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c	2016-03-28 22:36:02 UTC (rev 3661)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	CCodeGenerator VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1740 uuid: 10ece78d-d04d-4ad2-8598-e496b6a6097c " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1746 uuid: 9e4a49eb-8ebe-486d-b6f0-430100efa288 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -1021,7 +1021,6 @@
 static sqInt genLongUnconditionalBackwardJump(void);
 static sqInt genLongUnconditionalForwardJump(void);
 static sqInt NoDbgRegParms genLookupForPerformNumArgs(sqInt numArgs);
-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);
@@ -2614,7 +2613,7 @@
 	case MoveRM16r:
 		/* begin is12BitValue:ifTrue:ifFalse: */
 		constant4 = ((self_in_computeMaximumSize->operands))[1];
-		if ((abs(constant4)) <= 0xFFF) {
+		if ((SQABS(constant4)) <= 0xFFF) {
 
 			/* (2 raisedTo: 12)-1 */
 			if (constant4 >= 0) {
@@ -2635,7 +2634,7 @@
 	case MoveMwrR:
 		/* begin is12BitValue:ifTrue:ifFalse: */
 		constant5 = ((self_in_computeMaximumSize->operands))[0];
-		if ((abs(constant5)) <= 0xFFF) {
+		if ((SQABS(constant5)) <= 0xFFF) {
 
 			/* (2 raisedTo: 12)-1 */
 			if (constant5 >= 0) {
@@ -3403,11 +3402,11 @@
 		jumpTarget = jumpTarget1;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord43 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord43;
 		instrOffset6 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -3437,11 +3436,11 @@
 		jumpTarget2 = jumpTarget11;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord44 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord44;
 		instrOffset7 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -3957,11 +3956,11 @@
 		rd2 = rn4;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord45 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord45;
 		instrOffset8 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4084,11 +4083,11 @@
 		rd22 = rn24;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord79 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord79;
 		instrOffset27 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4165,11 +4164,11 @@
 			rd4 = rn6;
 			/* begin moveCw:intoR: */
 			assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-			assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+			assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 			/* begin machineCodeAt:put: */
 			aWord47 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 				? 1
-				: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+				: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 			((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord47;
 			instrOffset9 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 			/* begin machineCodeAt:put: */
@@ -4251,11 +4250,11 @@
 		rd5 = 0;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord48 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord48;
 		instrOffset10 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4319,11 +4318,11 @@
 		rd23 = rn25;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord80 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord80;
 		instrOffset28 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4396,11 +4395,11 @@
 		rd7 = rn9;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord50 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord50;
 		instrOffset11 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4446,11 +4445,11 @@
 		rd8 = rn10;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord51 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord51;
 		instrOffset12 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4573,11 +4572,11 @@
 		rd24 = rn26;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord81 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord81;
 		instrOffset29 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4598,11 +4597,11 @@
 		rd10 = rn12;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord53 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord53;
 		instrOffset13 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4617,11 +4616,11 @@
 		rd11 = rn13;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord54 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord54;
 		instrOffset14 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4636,11 +4635,11 @@
 		rd12 = 0;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord55 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord55;
 		instrOffset15 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4655,11 +4654,11 @@
 		rd13 = rn15;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord56 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord56;
 		instrOffset16 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4674,11 +4673,11 @@
 		rd14 = rn16;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord57 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord57;
 		instrOffset17 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4693,11 +4692,11 @@
 		rd15 = rn17;
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord58 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord58;
 		instrOffset18 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -4855,11 +4854,11 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord36 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord36;
 		instrOffset = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -5050,11 +5049,11 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord210 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord210;
 		instrOffset19 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -5078,11 +5077,11 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord211 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord211;
 		instrOffset20 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -5106,11 +5105,11 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord212 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord212;
 		instrOffset21 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -5134,11 +5133,11 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord213 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord213;
 		instrOffset22 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -5153,7 +5152,7 @@
 		srcReg17 = ((self_in_dispatchConcretize->operands))[1];
 		destReg12 = ((self_in_dispatchConcretize->operands))[2];
 		/* begin is12BitValue:ifTrue:ifFalse: */
-		if ((abs(offset31)) <= 0xFFF) {
+		if ((SQABS(offset31)) <= 0xFFF) {
 
 			/* (2 raisedTo: 12)-1 */
 			if (offset31 >= 0) {
@@ -5166,7 +5165,7 @@
 				goto l245;
 			}
 			else {
-				immediate17 = abs(offset31);
+				immediate17 = SQABS(offset31);
 				/* begin machineCodeAt:put: */
 				aWord75 = ldrbrnplusimm(self_in_dispatchConcretize, destReg12, srcReg17, 0, immediate17);
 				((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord75;
@@ -5188,11 +5187,11 @@
 			else {
 				/* begin moveCw:intoR: */
 				assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-				assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+				assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 				/* begin machineCodeAt:put: */
 				aWord310 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 					? 1
-					: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+					: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 				((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord310;
 				instrOffset23 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 			}
@@ -5213,7 +5212,7 @@
 		offset32 = ((self_in_dispatchConcretize->operands))[1];
 		baseReg1 = ((self_in_dispatchConcretize->operands))[2];
 		/* begin is12BitValue:ifTrue:ifFalse: */
-		if ((abs(offset32)) <= 0xFFF) {
+		if ((SQABS(offset32)) <= 0xFFF) {
 
 			/* (2 raisedTo: 12)-1 */
 			if (offset32 >= 0) {
@@ -5226,7 +5225,7 @@
 				goto l251;
 			}
 			else {
-				immediate18 = abs(offset32);
+				immediate18 = SQABS(offset32);
 				/* begin machineCodeAt:put: */
 				aWord76 = strbrnplusimm(self_in_dispatchConcretize, srcReg18, baseReg1, 0, immediate18);
 				((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord76;
@@ -5248,11 +5247,11 @@
 			else {
 				/* begin moveCw:intoR: */
 				assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-				assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+				assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 				/* begin machineCodeAt:put: */
 				aWord311 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 					? 1
-					: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+					: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 				((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord311;
 				instrOffset24 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 			}
@@ -5273,7 +5272,7 @@
 		offset33 = ((self_in_dispatchConcretize->operands))[1];
 		baseReg2 = ((self_in_dispatchConcretize->operands))[2];
 		/* begin is12BitValue:ifTrue:ifFalse: */
-		if ((abs(offset33)) <= 0xFFF) {
+		if ((SQABS(offset33)) <= 0xFFF) {
 
 			/* (2 raisedTo: 12)-1 */
 			if (offset33 >= 0) {
@@ -5286,7 +5285,7 @@
 				goto l257;
 			}
 			else {
-				immediate19 = abs(offset33);
+				immediate19 = SQABS(offset33);
 				/* begin machineCodeAt:put: */
 				aWord77 = strhrnplusimm(self_in_dispatchConcretize, srcReg19, baseReg2, 0, immediate19);
 				((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord77;
@@ -5308,11 +5307,11 @@
 			else {
 				/* begin moveCw:intoR: */
 				assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-				assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+				assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 				/* begin machineCodeAt:put: */
 				aWord312 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 					? 1
-					: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+					: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 				((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord312;
 				instrOffset25 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 			}
@@ -5333,7 +5332,7 @@
 		srcReg3 = ((self_in_dispatchConcretize->operands))[1];
 		destReg2 = ((self_in_dispatchConcretize->operands))[2];
 		/* begin is8BitValue:ifTrue:ifFalse: */
-		if ((abs(offset3)) <= 0xFF) {
+		if ((SQABS(offset3)) <= 0xFF) {
 
 			/* (2 raisedTo: 8)-1 */
 			if (offset3 >= 0) {
@@ -5345,7 +5344,7 @@
 
 			}
 			else {
-				immediate8 = abs(offset3);
+				immediate8 = SQABS(offset3);
 				/* begin machineCodeAt:put: */
 				aWord20 = ldrhrnplusimm(self_in_dispatchConcretize, destReg2, srcReg3, 0, immediate8);
 				((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord20;
@@ -5357,11 +5356,11 @@
 		else {
 			/* begin moveCw:intoR: */
 			assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-			assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+			assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 			/* begin machineCodeAt:put: */
 			aWord38 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 				? 1
-				: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+				: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 			((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord38;
 			instrOffset1 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 			/* begin machineCodeAt:put: */
@@ -5390,7 +5389,7 @@
 		srcReg5 = ((self_in_dispatchConcretize->operands))[1];
 		destReg4 = ((self_in_dispatchConcretize->operands))[2];
 		/* begin is12BitValue:ifTrue:ifFalse: */
-		if ((abs(offset5)) <= 0xFFF) {
+		if ((SQABS(offset5)) <= 0xFFF) {
 
 			/* (2 raisedTo: 12)-1 */
 			if (offset5 >= 0) {
@@ -5403,7 +5402,7 @@
 				goto l40;
 			}
 			else {
-				immediate9 = abs(offset5);
+				immediate9 = SQABS(offset5);
 				/* begin machineCodeAt:put: */
 				aWord26 = ldrrnplusimm(self_in_dispatchConcretize, destReg4, srcReg5, 0, immediate9);
 				((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord26;
@@ -5416,11 +5415,11 @@
 		else {
 			/* begin moveCw:intoR: */
 			assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-			assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+			assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 			/* begin machineCodeAt:put: */
 			aWord39 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 				? 1
-				: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+				: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 			((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord39;
 			instrOffset2 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 			/* begin machineCodeAt:put: */
@@ -5500,7 +5499,7 @@
 		offset6 = ((self_in_dispatchConcretize->operands))[1];
 		baseReg = ((self_in_dispatchConcretize->operands))[2];
 		/* begin is12BitValue:ifTrue:ifFalse: */
-		if ((abs(offset6)) <= 0xFFF) {
+		if ((SQABS(offset6)) <= 0xFFF) {
 
 			/* (2 raisedTo: 12)-1 */
 			if (offset6 >= 0) {
@@ -5513,7 +5512,7 @@
 				goto l47;
 			}
 			else {
-				immediate10 = abs(offset6);
+				immediate10 = SQABS(offset6);
 				/* begin machineCodeAt:put: */
 				aWord31 = strrnplusimm(self_in_dispatchConcretize, srcReg6, baseReg, 0, immediate10);
 				((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord31;
@@ -5526,11 +5525,11 @@
 		else {
 			/* begin moveCw:intoR: */
 			assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-			assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+			assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 			/* begin machineCodeAt:put: */
 			aWord40 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 				? 1
-				: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+				: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 			((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord40;
 			instrOffset3 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 			/* begin machineCodeAt:put: */
@@ -5616,11 +5615,11 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord41 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord41;
 		instrOffset4 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 
@@ -5699,11 +5698,11 @@
 		}
 		/* begin moveCw:intoR: */
 		assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address)));
-		assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12));
+		assert((abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)))) < (1L << 12));
 		/* begin machineCodeAt:put: */
 		aWord126 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8)
 			? 1
-			: 0), abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8)));
+			: 0), abs((((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))));
 		((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord126;
 		instrOffset26 = ((self_in_dispatchConcretize->machineCodeSize) = 4);
 		/* begin machineCodeAt:put: */
@@ -6528,11 +6527,11 @@
 	}
 	/* begin moveCw:intoR: */
 	assert(addressIsInCurrentCompilation((((self_in_loadCwInto->dependent))->address)));
-	assert((abs(((((self_in_loadCwInto->dependent))->address)) - (((self_in_loadCwInto->address)) + 8))) < (1L << 12));
+	assert((abs((((((self_in_loadCwInto->dependent))->address)) - (((self_in_loadCwInto->address)) + 8)))) < (1L << 12));
 	/* begin machineCodeAt:put: */
 	aWord1 = ldrrnplusimm(self_in_loadCwInto, destReg, PC, (((((self_in_loadCwInto->dependent))->address)) >= (((self_in_loadCwInto->address)) + 8)
 		? 1
-		: 0), abs(((((self_in_loadCwInto->dependent))->address)) - (((self_in_loadCwInto->address)) + 8)));
+		: 0), abs((((((self_in_loadCwInto->dependent))->address)) - (((self_in_loadCwInto->address)) + 8))));
 	((self_in_loadCwInto->machineCode))[0 / 4] = aWord1;
 	return ((usqInt) (((self_in_loadCwInto->machineCodeSize) = 4)));
 }
@@ -20840,18 +20839,20 @@
 genPrimitiveIdenticalOrNotIf(sqInt orNot)
 {
     AbstractInstruction *anInstruction;
+    AbstractInstruction *anInstruction1;
+    AbstractInstruction *comp;
     sqInt constant;
+    sqInt constant1;
     AbstractInstruction *jumpCmp;
-    AbstractInstruction *jumpImmediate;
 
 	/* begin genLoadArgAtDepth:into: */
 	assert(0 < (numRegArgs()));
-	jumpImmediate = genJumpImmediate(Arg0Reg);
-	genEnsureObjInRegNotForwardedscratchReg(Arg0Reg, TempReg);
-	jmpTarget(jumpImmediate, gCmpRR(Arg0Reg, ReceiverResultReg));
+	/* begin CmpR:R: */
+	comp = genoperandoperand(CmpRR, Arg0Reg, ReceiverResultReg);
 	if (orNot) {
 		/* begin JumpZero: */
 		jumpCmp = genConditionalBranchoperand(JumpZero, ((sqInt)0));
+		genEnsureOopInRegNotForwardedscratchRegjumpBackTo(Arg0Reg, TempReg, comp);
 	}
 	else {
 		/* begin JumpNonZero: */
@@ -20873,7 +20874,22 @@
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
 	genoperand(RetN, 0);
-	jmpTarget(jumpCmp, genMoveFalseR(ReceiverResultReg));
+	jmpTarget(jumpCmp, gLabel());
+	if (!orNot) {
+		genEnsureOopInRegNotForwardedscratchRegjumpBackTo(Arg0Reg, TempReg, comp);
+	}
+	/* begin genMoveFalseR: */
+	constant1 = falseObject();
+	if (shouldAnnotateObjectReference(constant1)) {
+		annotateobjRef(gMoveCwR(constant1, ReceiverResultReg), constant1);
+	}
+	else {
+		/* begin MoveCq:R: */
+		anInstruction1 = genoperandoperand(MoveCqR, constant1, ReceiverResultReg);
+		if (usesOutOfLineLiteral(anInstruction1)) {
+			(anInstruction1->dependent = locateLiteral(constant1));
+		}
+	}
 	/* begin genPrimReturn */
 	assert(methodOrBlockNumArgs <= (numRegArgs()));
 	/* begin RetN: */
@@ -21965,7 +21981,7 @@
 	case MoveRM16r:
 		/* begin is12BitValue:ifTrue:ifFalse: */
 		constant4 = ((self_in_usesOutOfLineLiteral->operands))[1];
-		if ((abs(constant4)) <= 0xFFF) {
+		if ((SQABS(constant4)) <= 0xFFF) {
 
 			/* (2 raisedTo: 12)-1 */
 			if (constant4 >= 0) {
@@ -21987,7 +22003,7 @@
 	case MoveMwrR:
 		/* begin is12BitValue:ifTrue:ifFalse: */
 		constant5 = ((self_in_usesOutOfLineLiteral->operands))[0];
-		if ((abs(constant5)) <= 0xFFF) {
+		if ((SQABS(constant5)) <= 0xFFF) {
 
 			/* (2 raisedTo: 12)-1 */
 			if (constant5 >= 0) {

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list