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. @@
vm-dev@lists.squeakfoundation.org