Revision: 2913 Author: eliot Date: 2014-05-04 08:29:20 -0700 (Sun, 04 May 2014) Log Message: ----------- CogVM source as per VMMaker.oscog-eem.701
Spur: Fix bug in generated C for pigCompact. If "free" is unsigned then "free - self allocationUnit" is large when free is zero, so move subtraction to addition on other side of the comparison.
Fix a mis-write/typo bug in moveARunOfObjectsStartingAt:upTo:.
Make sure all pointer comparisons in pigCompact are unsigned.
Add forwardUnchecked:to: and use it to avoid the unnecessary store check in forwarding during compaction.
Correct the return type of bytesInObject: to sqInt.
Looking good. Snapshots are small at last.
Slang: Fix indenting in while loops and sequential and and or exprs.
Modified Paths: -------------- branches/Cog/nscogsrc/vm/cogit.c branches/Cog/nscogsrc/vm/cogit.h branches/Cog/nscogsrc/vm/cogmethod.h branches/Cog/nscogsrc/vm/cointerp.c branches/Cog/nscogsrc/vm/cointerp.h branches/Cog/nscogsrc/vm/gcc3x-cointerp.c branches/Cog/nscogsrc/vm/interp.h branches/Cog/nscogsrc/vm/vmCallback.h branches/Cog/nsspursrc/vm/cogit.c branches/Cog/nsspursrc/vm/cogit.h branches/Cog/nsspursrc/vm/cogmethod.h branches/Cog/nsspursrc/vm/cointerp.c branches/Cog/nsspursrc/vm/cointerp.h branches/Cog/nsspursrc/vm/gcc3x-cointerp.c branches/Cog/nsspursrc/vm/interp.h branches/Cog/nsspursrc/vm/vmCallback.h branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c branches/Cog/nsspurstacksrc/vm/interp.c branches/Cog/nsspurstacksrc/vm/interp.h branches/Cog/nsspurstacksrc/vm/vmCallback.h branches/Cog/sistasrc/vm/cogit.c branches/Cog/sistasrc/vm/cogit.h branches/Cog/sistasrc/vm/cogmethod.h branches/Cog/sistasrc/vm/cointerp.c branches/Cog/sistasrc/vm/cointerp.h branches/Cog/sistasrc/vm/gcc3x-cointerp.c branches/Cog/sistasrc/vm/interp.h branches/Cog/sistasrc/vm/vmCallback.h branches/Cog/spursistasrc/vm/cogit.c branches/Cog/spursistasrc/vm/cogit.h branches/Cog/spursistasrc/vm/cogmethod.h branches/Cog/spursistasrc/vm/cointerp.c branches/Cog/spursistasrc/vm/cointerp.h branches/Cog/spursistasrc/vm/gcc3x-cointerp.c branches/Cog/spursistasrc/vm/interp.h branches/Cog/spursistasrc/vm/vmCallback.h branches/Cog/spursrc/vm/cogit.c branches/Cog/spursrc/vm/cogit.h branches/Cog/spursrc/vm/cogmethod.h branches/Cog/spursrc/vm/cointerp.c branches/Cog/spursrc/vm/cointerp.h branches/Cog/spursrc/vm/gcc3x-cointerp.c branches/Cog/spursrc/vm/interp.h branches/Cog/spursrc/vm/vmCallback.h branches/Cog/spurstacksrc/vm/gcc3x-interp.c branches/Cog/spurstacksrc/vm/interp.c branches/Cog/spurstacksrc/vm/interp.h branches/Cog/spurstacksrc/vm/vmCallback.h branches/Cog/src/plugins/SoundGenerationPlugin/SoundGenerationPlugin.c branches/Cog/src/vm/cogit.c branches/Cog/src/vm/cogit.h branches/Cog/src/vm/cogmethod.h 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/src/vm/interp.h branches/Cog/src/vm/vmCallback.h branches/Cog/stacksrc/vm/gcc3x-interp.c branches/Cog/stacksrc/vm/interp.c branches/Cog/stacksrc/vm/interp.h branches/Cog/stacksrc/vm/vmCallback.h
Property Changed: ---------------- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nscogsrc/vm/cogit.c =================================================================== --- branches/Cog/nscogsrc/vm/cogit.c 2014-05-02 23:26:05 UTC (rev 2912) +++ branches/Cog/nscogsrc/vm/cogit.c 2014-05-04 15:29:20 UTC (rev 2913) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGenerator VMMaker.oscog-eem.701 uuid: 92f5171c-4e3e-4113-bb82-05f92e8b7c82 from - StackToRegisterMappingCogit VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + StackToRegisterMappingCogit VMMaker.oscog-eem.701 uuid: 92f5171c-4e3e-4113-bb82-05f92e8b7c82 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.701 uuid: 92f5171c-4e3e-4113-bb82-05f92e8b7c82 " __DATE__ ; char *__cogitBuildInfo = __buildInfo;
@@ -2159,7 +2159,7 @@ return blockStart; } if (!((((blockStart->startpc)) > bytecodepc) - && (i > 0))) break; + && (i > 0))) break; i -= 1; } for (j = blockCount; j >= (i + 1); j += -1) { @@ -2614,9 +2614,9 @@ mcpc1 += mapByte & DisplacementMask; if ((annotation == IsSendCall) || (((annotation == IsNSSendCall) - && ((bsOffset > 0 - ? AltNSSendIsPCAnnotated - : NSSendIsPCAnnotated))) + && ((bsOffset > 0 + ? AltNSSendIsPCAnnotated + : NSSendIsPCAnnotated))) || (annotation == HasBytecodePC))) { while (1) { byte = (fetchByteofObject(bcpc, aMethodObj)) + bsOffset; @@ -2643,8 +2643,8 @@ ? ((descriptor->spanFunction))(descriptor, bcpc, nExts, aMethodObj) : 0)); if (((descriptor->isMapped)) - || (isInBlock - && ((descriptor->isMappedInBlock)))) break; + || (isInBlock + && ((descriptor->isMappedInBlock)))) break; bcpc = nextBcpc; nExts = ((descriptor->isExtension) ? nExts + 1 @@ -2912,7 +2912,7 @@ cacheTag = inlineCacheTagForInstance(receiver); if ((((cPIC->cPICNumCases)) >= numPICCases) || (((errorSelectorOrNil != null) - && (errorSelectorOrNil != SelectorDoesNotUnderstand)) + && (errorSelectorOrNil != SelectorDoesNotUnderstand)) || ((inlineCacheTagIsYoung(cacheTag)) || ((newTargetMethodOrNil == null) || (isYoung(newTargetMethodOrNil)))))) { @@ -3073,7 +3073,7 @@ assert(outerReturn == (stackTop())); cacheTag = inlineCacheTagForInstance(receiver); if (((errorSelectorOrNil != null) - && (errorSelectorOrNil != SelectorDoesNotUnderstand)) + && (errorSelectorOrNil != SelectorDoesNotUnderstand)) || ((inlineCacheTagIsYoung(cacheTag)) || ((newTargetMethodOrNil == null) || (isYoung(newTargetMethodOrNil))))) { @@ -3352,7 +3352,7 @@ } if (!fullGCFlag) { if (((isYoungObject((cogMethod->methodObject))) - || (isYoung((cogMethod->selector)))) + || (isYoung((cogMethod->selector)))) && (!((cogMethod->cmRefersToYoung)))) { print("CM "); printHex(((sqInt)cogMethod)); @@ -3420,7 +3420,7 @@ checkValidInlineCacheTag(sqInt cacheTag) { return (((cacheTag & ((1 << ShiftForWord) - 1)) == 0) - && (((cacheTag >= (1 << ShiftForWord)) && (cacheTag <= ((compactClassIndexOfHeader(-1)) << ShiftForWord))))) + && (((cacheTag >= (1 << ShiftForWord)) && (cacheTag <= ((compactClassIndexOfHeader(-1)) << ShiftForWord))))) || (checkValidObjectReference(cacheTag)); }
@@ -4181,7 +4181,7 @@ ? ((descriptor->spanFunction))(descriptor, bytecodePC, nExts, methodObj) : 0)); if (!((result == 0) - && (bytecodePC <= end))) break; + && (bytecodePC <= end))) break; nExts = ((descriptor->isExtension) ? nExts + 1 : 0); @@ -6448,7 +6448,7 @@ AbstractInstruction *dependentChain;
dependentChain = (self_in_concretizeLabel->dependent); - while (!(dependentChain == null)) { + while ((dependentChain == null)) { updateLabel(dependentChain, self_in_concretizeLabel); dependentChain = (dependentChain->dependent); } @@ -7949,7 +7949,7 @@ case Label: /* begin concretizeLabel */ dependentChain = (self_in_dispatchConcretize->dependent); - while (!(dependentChain == null)) { + while ((dependentChain == null)) { updateLabel(dependentChain, self_in_dispatchConcretize); dependentChain = (dependentChain->dependent); } @@ -10755,7 +10755,7 @@ cogMethod = ((CogMethod *) (roundUpLength((((sqInt)cogMethod)) + ((cogMethod->blockSize))))); } } while((freedSoFar < amountToFree) - && (((freeableUsage += 1)) < CMMaxUsageCount)); + && (((freeableUsage += 1)) < CMMaxUsageCount)); }
@@ -11015,7 +11015,7 @@ if (rDividend != EAX) { if (rDivisor == EAX) { if (((rDividend != rQuotient) - && (rDividend != rRemainder)) + && (rDividend != rRemainder)) && ((rDividend != EDX) || (!saveRestoreEDX))) { /* begin PushR: */ @@ -15623,7 +15623,7 @@ return genSpecialSelectorSend(); } if ((rcvrIsConst - && (!rcvrIsInt)) + && (!rcvrIsInt)) || (argIsConst && (!argIsInt))) { return genSpecialSelectorSend(); @@ -17136,9 +17136,9 @@ { return (annotation == IsSendCall) || (((annotation == IsNSSendCall) - && ((isAlternateInstSet - ? AltNSSendIsPCAnnotated - : NSSendIsPCAnnotated))) + && ((isAlternateInstSet + ? AltNSSendIsPCAnnotated + : NSSendIsPCAnnotated))) || (annotation == HasBytecodePC)); }
@@ -18110,7 +18110,7 @@ && (isMarked((cogMethod->methodObject)))) { /* begin markAndTraceLiteralsIn: */ assert(((((cogMethod->cmType)) == CMMethod) - && (isMarked((cogMethod->methodObject)))) + && (isMarked((cogMethod->methodObject)))) || ((((cogMethod->cmType)) == CMOpenPIC) && ((isImmediate((cogMethod->selector))) || (isMarked((cogMethod->selector)))))); @@ -18142,7 +18142,7 @@ || (isMarked((cogMethod->selector))))) { /* begin markAndTraceLiteralsIn: */ assert(((((cogMethod->cmType)) == CMMethod) - && (isMarked((cogMethod->methodObject)))) + && (isMarked((cogMethod->methodObject)))) || ((((cogMethod->cmType)) == CMOpenPIC) && ((isImmediate((cogMethod->selector))) || (isMarked((cogMethod->selector)))))); @@ -18865,9 +18865,9 @@ mcpc += mapByte & DisplacementMask; if ((annotation == IsSendCall) || (((annotation == IsNSSendCall) - && ((bsOffset > 0 - ? AltNSSendIsPCAnnotated - : NSSendIsPCAnnotated))) + && ((bsOffset > 0 + ? AltNSSendIsPCAnnotated + : NSSendIsPCAnnotated))) || (annotation == HasBytecodePC))) { while (1) { byte = (fetchByteofObject(bcpc1, aMethodObj)) + bsOffset; @@ -18894,8 +18894,8 @@ ? ((descriptor->spanFunction))(descriptor, bcpc1, nExts, aMethodObj) : 0)); if (((descriptor->isMapped)) - || (isInBlock - && ((descriptor->isMappedInBlock)))) break; + || (isInBlock + && ((descriptor->isMappedInBlock)))) break; bcpc1 = nextBcpc; nExts = ((descriptor->isExtension) ? nExts + 1 @@ -19710,7 +19710,7 @@ CogMethod *openPIC;
openPIC = openPICList; - while (!(openPIC == null)) { + while ((openPIC == null)) { printCogMethod(openPIC); openPIC = ((CogMethod *) ((openPIC->nextOpenPIC))); } @@ -19762,7 +19762,7 @@ while (1) { next = dest - BytesPerWord; if (!((next >= youngReferrers) - && (((((CogMethod *) (longAt(next))))->cmRefersToYoung)))) break; + && (((((CogMethod *) (longAt(next))))->cmRefersToYoung)))) break; dest = next; } assert(dest >= youngReferrers); @@ -19953,8 +19953,8 @@ while (1) { next = dest - BytesPerWord; if (!((next >= youngReferrers) - && (((((cogMethod = ((CogMethod *) (longAt(next))))->cmType)) != CMFree) - && ((cogMethod->cmRefersToYoung))))) break; + && (((((cogMethod = ((CogMethod *) (longAt(next))))->cmType)) != CMFree) + && ((cogMethod->cmRefersToYoung))))) break; if (((cogMethod->objectHeader)) != 0) { longAtput(next, (((sqInt)cogMethod)) + ((cogMethod->objectHeader))); } @@ -20778,7 +20778,7 @@ shiftSetsConditionCodesFor(AbstractInstruction * self_in_shiftSetsConditionCodesFor, sqInt aConditionalJumpOpcode) { return ((((self_in_shiftSetsConditionCodesFor->opcode)) == ArithmeticShiftRightCqR) - || (((self_in_shiftSetsConditionCodesFor->opcode)) == LogicalShiftLeftCqR)) + || (((self_in_shiftSetsConditionCodesFor->opcode)) == LogicalShiftLeftCqR)) && ((((self_in_shiftSetsConditionCodesFor->operands))[0]) == 1); }
Modified: branches/Cog/nscogsrc/vm/cogit.h =================================================================== --- branches/Cog/nscogsrc/vm/cogit.h 2014-05-02 23:26:05 UTC (rev 2912) +++ branches/Cog/nscogsrc/vm/cogit.h 2014-05-04 15:29:20 UTC (rev 2913) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGenerator VMMaker.oscog-eem.701 uuid: 92f5171c-4e3e-4113-bb82-05f92e8b7c82 */
Modified: branches/Cog/nscogsrc/vm/cogmethod.h =================================================================== --- branches/Cog/nscogsrc/vm/cogmethod.h 2014-05-02 23:26:05 UTC (rev 2912) +++ branches/Cog/nscogsrc/vm/cogmethod.h 2014-05-04 15:29:20 UTC (rev 2913) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.695 uuid: b7ee76ce-807e-4f95-8065-b850143a0ced + CCodeGenerator VMMaker.oscog-eem.701 uuid: 92f5171c-4e3e-4113-bb82-05f92e8b7c82 */
typedef struct {
Modified: branches/Cog/nscogsrc/vm/cointerp.c =================================================================== --- branches/Cog/nscogsrc/vm/cointerp.c 2014-05-02 23:26:05 UTC (rev 2912) +++ branches/Cog/nscogsrc/vm/cointerp.c 2014-05-04 15:29:20 UTC (rev 2913) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.699 uuid: d19fe4fd-f2b0-4779-9ed6-7b9ea20c5255 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.701 uuid: 92f5171c-4e3e-4113-bb82-05f92e8b7c82 from - CoInterpreter VMMaker.oscog-eem.699 uuid: d19fe4fd-f2b0-4779-9ed6-7b9ea20c5255 + CoInterpreter VMMaker.oscog-eem.701 uuid: 92f5171c-4e3e-4113-bb82-05f92e8b7c82 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.699 uuid: d19fe4fd-f2b0-4779-9ed6-7b9ea20c5255 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.701 uuid: 92f5171c-4e3e-4113-bb82-05f92e8b7c82 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -1157,7 +1157,7 @@ static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void)); static sqInt roomToPushNArgs(sqInt n); static void runLeakCheckerForFullGC(sqInt fullGCFlag); -static sqInt safeObjectAfter(sqInt oop); +static usqInt safeObjectAfter(sqInt oop); static sqInt safePrintStringOf(sqInt oop); usqInt scavengeThresholdAddress(void); EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext); @@ -2045,7 +2045,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.699"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.701"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */; volatile int sendTrace;
@@ -4469,7 +4469,7 @@ else { contextToReturnTo = longAt((home + BaseHeaderSize) + (SenderIndex << ShiftForWord)); if ((((contextToReturnTo & 1) == 0) - && (((((usqInt) (longAt(contextToReturnTo))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) + && (((((usqInt) (longAt(contextToReturnTo))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) && (((longAt((contextToReturnTo + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1))) { assert(checkIsStillMarriedContextcurrentFP(contextToReturnTo, localFP)); /* begin frameOfMarriedContext: */ @@ -4534,7 +4534,7 @@ currentCtx = callerContextOrNil2; assert(isContext(currentCtx)); freeStackPage(GIV(stackPage)); - while (!((((longAt((currentCtx + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)) + while (((((longAt((currentCtx + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)) && ((stackPageFor((theFP = frameOfMarriedContext(currentCtx)))) == newPage))) { if (((longAt((currentCtx + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)) { /* begin stackPageFor: */ @@ -13458,9 +13458,9 @@ addressCouldBeClassObj(sqInt maybeClassObj) { DECL_MAYBE_SQ_GLOBAL_STRUCT return (((maybeClassObj & 3) == 0) - && (((((usqInt)maybeClassObj)) >= (startOfMemory())) - && (((((usqInt)maybeClassObj)) < GIV(freeStart)) - && (((longAt(maybeClassObj)) & TypeMask) != HeaderTypeGC)))) + && (((((usqInt)maybeClassObj)) >= (startOfMemory())) + && (((((usqInt)maybeClassObj)) < GIV(freeStart)) + && (((longAt(maybeClassObj)) & TypeMask) != HeaderTypeGC)))) && (objCouldBeClassObj(maybeClassObj)); }
@@ -14384,7 +14384,7 @@ return PrimErrBadReceiver; } if (!((((array2 & 1) == 0) - && (((((usqInt) (longAt(array2))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(array2))) >> (instFormatFieldLSB())) & 15) == 2)) && ((lastPointerOf(array1)) == (lastPointerOf(array2))))) { return PrimErrBadArgument; } @@ -15742,7 +15742,7 @@ else { contextToReturnTo = longAt((home + BaseHeaderSize) + (SenderIndex << ShiftForWord)); if ((((contextToReturnTo & 1) == 0) - && (((((usqInt) (longAt(contextToReturnTo))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) + && (((((usqInt) (longAt(contextToReturnTo))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) && (((longAt((contextToReturnTo + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1))) { assert(checkIsStillMarriedContextcurrentFP(contextToReturnTo, GIV(framePointer))); /* begin frameOfMarriedContext: */ @@ -17182,7 +17182,7 @@ sqInt value;
if (!((((aContext & 1) == 0) - && (((((usqInt) (longAt(aContext))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) + && (((((usqInt) (longAt(aContext))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) && (((longAt((aContext + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)))) { return 0; } @@ -17784,13 +17784,13 @@ ok = 0; } if (!((((oop & 1) == 0) - && (((((usqInt) (longAt(oop))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) + && (((((usqInt) (longAt(oop))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) && (((longAt((oop + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)))) { printFrameThingandFrameat("frame ctxt should be married", theFP, theFP + FoxThisContext); ok = 0; } if (!((((oop & 1) == 0) - && (((((usqInt) (longAt(oop))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) + && (((((usqInt) (longAt(oop))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) && ((frameOfMarriedContext(oop)) == theFP))) { printFrameThingandFrameat("frame ctxt should be married to this frame ", theFP, theFP + FoxThisContext); ok = 0; @@ -18509,8 +18509,8 @@ return (pc == encodedip) || (((methodHeader = headerOf(longAt((aContext + BaseHeaderSize) + (MethodIndex << ShiftForWord)))), (((((sqInt) methodHeader)) < 0 - ? methodHeader & (65536 << SmallIntegerShift) - : (methodHeader & 536871934) != 0)) + ? methodHeader & (65536 << SmallIntegerShift) + : (methodHeader & 536871934) != 0)) && ((((encodedip >> 1)) - ((pc >> 1))) == (((((sqInt) methodHeader)) < 0 ? 3 : 0))))); @@ -18894,7 +18894,7 @@ } /* begin success: */ successBoolean = (((displayObj & 1) == 0) - && (((((usqInt) (longAt(displayObj))) >> (instFormatFieldLSB())) & 15) <= 4)) + && (((((usqInt) (longAt(displayObj))) >> (instFormatFieldLSB())) & 15) <= 4)) && ((lengthOf(displayObj)) >= 4); if (!successBoolean) {
@@ -20650,7 +20650,7 @@ ? (longAt(explicitReceiver - BaseHeaderSize)) & AllButTypeMask : longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)))); mixinOrMixinApplication = aClass; - while (!((mixinOrMixinApplication == GIV(nilObj)) + while (((mixinOrMixinApplication == GIV(nilObj)) || ((mixinOrMixinApplication == targetMixin) || ((longAt((mixinOrMixinApplication + BaseHeaderSize) + (MixinIndex << ShiftForWord))) == targetMixin)))) { mixinOrMixinApplication = longAt((mixinOrMixinApplication + BaseHeaderSize) + (SuperclassIndex << ShiftForWord)); @@ -21561,7 +21561,7 @@ sqInt mixinOrMixinApplication;
mixinOrMixinApplication = aBehavior; - while (!((mixinOrMixinApplication == GIV(nilObj)) + while (((mixinOrMixinApplication == GIV(nilObj)) || ((mixinOrMixinApplication == targetMixin) || ((((mixin = longAt((mixinOrMixinApplication + BaseHeaderSize) + (MixinIndex << ShiftForWord)))) == targetMixin) || (((((ccIndex = (((usqInt) (longAt(mixin))) >> 12) & 0x1F)) == 0 @@ -21616,10 +21616,10 @@ sqInt rclass;
if ((((rcvr & 1)) - || (((rcvr & 3) == 0) - && (((((usqInt)rcvr)) >= (startOfMemory())) - && (((((usqInt)rcvr)) < GIV(freeStart)) - && (((longAt(rcvr)) & TypeMask) != HeaderTypeGC))))) + || (((rcvr & 3) == 0) + && (((((usqInt)rcvr)) >= (startOfMemory())) + && (((((usqInt)rcvr)) < GIV(freeStart)) + && (((longAt(rcvr)) & TypeMask) != HeaderTypeGC))))) && (!0)) { rclass = ((rcvr & 1) ? longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassInteger << ShiftForWord)) @@ -21634,9 +21634,9 @@ } } if (!((((meth & 3) == 0) - && (((((usqInt)meth)) >= (startOfMemory())) - && (((((usqInt)meth)) < GIV(freeStart)) - && (((longAt(meth)) & TypeMask) != HeaderTypeGC)))) + && (((((usqInt)meth)) >= (startOfMemory())) + && (((((usqInt)meth)) < GIV(freeStart)) + && (((longAt(meth)) & TypeMask) != HeaderTypeGC)))) && (((((usqInt) (longAt(meth))) >> (instFormatFieldLSB())) & 15) >= 12))) { return GIV(nilObj); } @@ -21752,8 +21752,8 @@ theFPAbove = startFP; do { if ((((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory()) - ? ((longAt(theFP + FoxMethod)) & MFMethodFlagHasContextFlag) != 0 - : (byteAt((theFP + FoxIFrameFlags) + 2)) != 0)) + ? ((longAt(theFP + FoxMethod)) & MFMethodFlagHasContextFlag) != 0 + : (byteAt((theFP + FoxIFrameFlags) + 2)) != 0)) && (homeContext == (longAt(theFP + FoxThisContext)))) { return 0; } @@ -22335,7 +22335,7 @@ } lit = longAt((methodObj + BaseHeaderSize) + ((0 + LiteralStart) << ShiftForWord)); if (!((((lit & 1) == 0) - && (((((usqInt) (longAt(lit))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(lit))) >> (instFormatFieldLSB())) & 15) == 2)) && ((lengthOf(lit)) == 4))) { return null; } @@ -22415,8 +22415,8 @@ oop = longAt(theFP + offset); if ((((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory()) - ? ((longAt(theFP + FoxMethod)) & MFMethodFlagHasContextFlag) != 0 - : (byteAt((theFP + FoxIFrameFlags) + 2)) != 0)) + ? ((longAt(theFP + FoxMethod)) & MFMethodFlagHasContextFlag) != 0 + : (byteAt((theFP + FoxIFrameFlags) + 2)) != 0)) && (isForwarded(longAt(theFP + FoxThisContext)))) { longAtput(theFP + FoxThisContext, followForwarded(longAt(theFP + FoxThisContext))); } @@ -22811,7 +22811,7 @@
displayObj = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (TheDisplay << ShiftForWord)); if ((((displayObj & 1) == 0) - && (((((usqInt) (longAt(displayObj))) >> (instFormatFieldLSB())) & 15) <= 4)) + && (((((usqInt) (longAt(displayObj))) >> (instFormatFieldLSB())) & 15) <= 4)) && ((lengthOf(displayObj)) >= 4)) { w = fetchIntegerofObject(1, displayObj); h = fetchIntegerofObject(2, displayObj); @@ -22963,7 +22963,7 @@
lit = longAt((methodObj + BaseHeaderSize) + ((0 + LiteralStart) << ShiftForWord)); if (!((((lit & 1) == 0) - && (((((usqInt) (longAt(lit))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(lit))) >> (instFormatFieldLSB())) & 15) == 2)) && ((lengthOf(lit)) == 4))) { return ((void (*)(void)) primitiveExternalCall); } @@ -23074,7 +23074,7 @@ getCurrentBytecode(void) { DECL_MAYBE_SQ_GLOBAL_STRUCT return (((((((usqInt)GIV(framePointer))) & (BytesPerWord - 1)) == 0) - && ((((((usqInt)GIV(framePointer))) >= (((usqInt)(GIV(stackBasePlus1) - 1)))) && ((((usqInt)GIV(framePointer))) <= (((usqInt)GIV(pages))))))) + && ((((((usqInt)GIV(framePointer))) >= (((usqInt)(GIV(stackBasePlus1) - 1)))) && ((((usqInt)GIV(framePointer))) <= (((usqInt)GIV(pages))))))) && (!((((usqInt)(longAt(GIV(framePointer) + FoxMethod)))) < (startOfMemory()))) ? byteAt(GIV(instructionPointer)) : -1); @@ -23770,7 +23770,7 @@ ? (longAt(implicitReceiver - BaseHeaderSize)) & AllButTypeMask : longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex1 - 1) << ShiftForWord)))); mixinOrMixinApplication = aClass; - while (!((mixinOrMixinApplication == GIV(nilObj)) + while (((mixinOrMixinApplication == GIV(nilObj)) || ((mixinOrMixinApplication == targetMixin) || ((longAt((mixinOrMixinApplication + BaseHeaderSize) + (MixinIndex << ShiftForWord))) == targetMixin)))) { mixinOrMixinApplication = longAt((mixinOrMixinApplication + BaseHeaderSize) + (SuperclassIndex << ShiftForWord)); @@ -24007,17 +24007,15 @@ sqInt header1; sqInt header2; sqInt header3; - sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - sqInt next; + usqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; - sqInt sz3; sqInt target; usqInt w;
@@ -24028,21 +24026,7 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - /* begin objectAfter: */ - if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) { - error("no objects after the end of memory"); - } - if (((longAt(oop)) & TypeMask) == HeaderTypeFree) { - sz2 = (longAt(oop)) & AllButTypeMask; - } - else { - /* begin sizeBitsOf: */ - header3 = longAt(oop); - sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass - ? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask - : header3 & SizeMask); - } - next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]); + next = ((sqInt) (objectAfter(oop))); goto l1; } fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1; @@ -24057,7 +24041,7 @@ else { sz1 = realHeader & SizeMask; } - next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]); + next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]))); l1: /* end objectAfterWhileForwarding: */; if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
@@ -24111,18 +24095,18 @@ } /* begin safeObjectAfter: */ if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) { - sz3 = (longAt(newFreeChunk)) & AllButTypeMask; + sz2 = (longAt(newFreeChunk)) & AllButTypeMask; } else { /* begin sizeBitsOf: */ - header4 = longAt(newFreeChunk); - sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass + header3 = longAt(newFreeChunk); + sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask - : header4 & SizeMask); + : header3 & SizeMask); } - next = ((newFreeChunk + sz3) >= GIV(freeStart) + next = ((newFreeChunk + sz2) >= GIV(freeStart) ? GIV(freeStart) - : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask])); + : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask])); assert((next == GIV(freeStart)) || (next == (oopFromChunk(GIV(compEnd))))); if (next == GIV(freeStart)) { @@ -24260,7 +24244,7 @@ GIV(statSurvivorCount) = survivorCount; weDidGrow = 0; if (((survivorCount > GIV(tenuringThreshold)) - || (GIV(rootTableCount) >= RootTableRedZone)) + || (GIV(rootTableCount) >= RootTableRedZone)) || (GIV(forceTenureFlag) == 1)) {
/* move up the young space boundary if @@ -25322,7 +25306,7 @@ } lit = longAt((aMethodObj + BaseHeaderSize) + ((0 + LiteralStart) << ShiftForWord)); return (((lit & 1) == 0) - && (((((usqInt) (longAt(lit))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(lit))) >> (instFormatFieldLSB())) & 15) == 2)) && (((lengthOf(lit)) == 4) && (((longAt((lit + BaseHeaderSize) + (3 << ShiftForWord))) == ConstZero) || ((longAt((lit + BaseHeaderSize) + (3 << ShiftForWord))) == ConstMinusOne))); @@ -25646,7 +25630,7 @@ : (((ccIndex = (((usqInt) (longAt(oop))) >> 12) & 0x1F)) == 0 ? (longAt(oop - BaseHeaderSize)) & AllButTypeMask : longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)))); - while (!(oopClass == GIV(nilObj))) { + while ((oopClass == GIV(nilObj))) { if (oopClass == aClass) { return 1; } @@ -25669,7 +25653,7 @@ : (((ccIndex = (((usqInt) (longAt(oop))) >> 12) & 0x1F)) == 0 ? (longAt(oop - BaseHeaderSize)) & AllButTypeMask : longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)))); - while (!(oopClass == GIV(nilObj))) { + while ((oopClass == GIV(nilObj))) { if (classNameOfIs(oopClass, className)) { return 1; } @@ -26184,7 +26168,7 @@ ; return 0; } - while (!(fieldPtr > lastPtr)) { + while ((fieldPtr > lastPtr)) {
/* Examine each pointer field */
@@ -26263,7 +26247,7 @@ /* Go through all oops, remapping them... */
lastPtr = segOop + (lastPointerOf(segOop)); - while (!(fieldPtr > lastPtr)) { + while ((fieldPtr > lastPtr)) {
/* Examine each pointer field */
@@ -26581,7 +26565,7 @@ error("heap is empty"); oop = null; l3: /* end firstAccessibleObject */; - while (!(oop == null)) { + while ((oop == null)) { if ((((((usqInt) (longAt(oop))) >> (instFormatFieldLSB())) & 15) <= 4) || (((((usqInt) (longAt(oop))) >> (instFormatFieldLSB())) & 15) >= 12)) { if (((((usqInt) (longAt(oop))) >> (instFormatFieldLSB())) & 15) >= 12) { @@ -27245,8 +27229,8 @@
if (((((sqInt) theIP)) > 0) && ((((((sqInt) header)) < 0 - ? header & (65536 << SmallIntegerShift) - : (header & 536871934) != 0)) + ? header & (65536 << SmallIntegerShift) + : (header & 536871934) != 0)) && (theIP == (1 + (lastPointerOf(theMethod)))))) { theIP += ((((sqInt) header)) < 0 ? 3 @@ -27502,9 +27486,9 @@ for (i = 1; i <= MethodCacheEntries; i += 1) { if (!((GIV(methodCache)[probe + MethodCacheSelector]) == 0)) { if (((((((usqInt) (GIV(methodCache)[probe + MethodCacheSelector]))) >= (((usqInt) memStart))) - && ((((usqInt) (GIV(methodCache)[probe + MethodCacheSelector]))) < (((usqInt) memEnd)))) - || (((((usqInt) (GIV(methodCache)[probe + MethodCacheClass]))) >= (((usqInt) memStart))) - && ((((usqInt) (GIV(methodCache)[probe + MethodCacheClass]))) < (((usqInt) memEnd))))) + && ((((usqInt) (GIV(methodCache)[probe + MethodCacheSelector]))) < (((usqInt) memEnd)))) + || (((((usqInt) (GIV(methodCache)[probe + MethodCacheClass]))) >= (((usqInt) memStart))) + && ((((usqInt) (GIV(methodCache)[probe + MethodCacheClass]))) < (((usqInt) memEnd))))) || (((((usqInt) (GIV(methodCache)[probe + MethodCacheMethod]))) >= (((usqInt) memStart))) && ((((usqInt) (GIV(methodCache)[probe + MethodCacheMethod]))) < (((usqInt) memEnd))))) { GIV(methodCache)[probe + MethodCacheSelector] = 0; @@ -27927,7 +27911,7 @@ || (isContext(callerContextOrNil))); context = callerContextOrNil; if ((((context & 1) == 0) - && (((((usqInt) (longAt(context))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) + && (((((usqInt) (longAt(context))) >> 12) & 0x1F) == ClassMethodContextCompactIndex)) && ((((longAt((context + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)) && ((((longAt((context + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)) && (!(isWidowedContext(context)))))) { @@ -28914,9 +28898,9 @@ sqInt primBits;
if (!((((GIV(newMethod) & 3) == 0) - && (((((usqInt)GIV(newMethod))) >= (startOfMemory())) - && (((((usqInt)GIV(newMethod))) < GIV(freeStart)) - && (((longAt(GIV(newMethod))) & TypeMask) != HeaderTypeGC)))) + && (((((usqInt)GIV(newMethod))) >= (startOfMemory())) + && (((((usqInt)GIV(newMethod))) < GIV(freeStart)) + && (((longAt(GIV(newMethod))) & TypeMask) != HeaderTypeGC)))) && (((((usqInt) (longAt(GIV(newMethod)))) >> (instFormatFieldLSB())) & 15) >= 12))) { return -1; } @@ -29582,16 +29566,16 @@ && (((numSlotsOf(objOop)) > InstanceSpecificationIndex) && (((fieldOop = longAt((objOop + BaseHeaderSize) + (SuperclassIndex << ShiftForWord))), (((fieldOop & 1) == 0) - && ((((((usqInt) (longAt(fieldOop))) >> (instFormatFieldLSB())) & 15) <= 4) - || ((((((usqInt) (longAt(fieldOop))) >> HashBitsOffset) & HashMaskUnshifted) == 0) - && (0 - && (isPointers(followForwarded(fieldOop))))))) + && ((((((usqInt) (longAt(fieldOop))) >> (instFormatFieldLSB())) & 15) <= 4) + || ((((((usqInt) (longAt(fieldOop))) >> HashBitsOffset) & HashMaskUnshifted) == 0) + && (0 + && (isPointers(followForwarded(fieldOop))))))) && (((fieldOop = longAt((objOop + BaseHeaderSize) + (MethodDictionaryIndex << ShiftForWord))), (((fieldOop & 1) == 0) - && ((((((usqInt) (longAt(fieldOop))) >> (instFormatFieldLSB())) & 15) <= 4) - || ((((((usqInt) (longAt(fieldOop))) >> HashBitsOffset) & HashMaskUnshifted) == 0) - && (0 - && (isPointers(followForwarded(fieldOop))))))) + && ((((((usqInt) (longAt(fieldOop))) >> (instFormatFieldLSB())) & 15) <= 4) + || ((((((usqInt) (longAt(fieldOop))) >> HashBitsOffset) & HashMaskUnshifted) == 0) + && (0 + && (isPointers(followForwarded(fieldOop))))))) && (((longAt((objOop + BaseHeaderSize) + (InstanceSpecificationIndex << ShiftForWord))) & 1))))))); }
@@ -31174,8 +31158,8 @@ stSize = totalLength - fixedFields; } if ((oopisGreaterThanOrEqualTo(index, (fmt >= 12 - ? (((literalCountOfHeader(headerOf(rcvr))) + LiteralStart) * BytesPerOop) + 1 - : 1))) + ? (((literalCountOfHeader(headerOf(rcvr))) + LiteralStart) * BytesPerOop) + 1 + : 1))) && ((((usqInt) index)) <= (((usqInt) stSize)))) { /* begin subscript:with:format: */ if (fmt <= 4) { @@ -31324,8 +31308,8 @@ stSize1 = totalLength1 - fixedFields1; } if ((oopisGreaterThanOrEqualTo(index, (fmt1 >= 12 - ? (((literalCountOfHeader(headerOf(rcvr))) + LiteralStart) * BytesPerOop) + 1 - : 1))) + ? (((literalCountOfHeader(headerOf(rcvr))) + LiteralStart) * BytesPerOop) + 1 + : 1))) && ((((usqInt) index)) <= (((usqInt) stSize1)))) { /* begin subscript:with:storing:format: */ if (fmt1 <= 4) { @@ -31432,7 +31416,7 @@ } /* begin success: */ successBoolean11 = (((cursorObj & 1) == 0) - && (((((usqInt) (longAt(cursorObj))) >> (instFormatFieldLSB())) & 15) <= 4)) + && (((((usqInt) (longAt(cursorObj))) >> (instFormatFieldLSB())) & 15) <= 4)) && ((lengthOf(cursorObj)) >= 5); if (!successBoolean11) {
@@ -31451,7 +31435,7 @@ } /* begin success: */ successBoolean12 = (((offsetObj & 1) == 0) - && (((((usqInt) (longAt(offsetObj))) >> (instFormatFieldLSB())) & 15) <= 4)) + && (((((usqInt) (longAt(offsetObj))) >> (instFormatFieldLSB())) & 15) <= 4)) && ((lengthOf(offsetObj)) >= 2); if (!successBoolean12) {
@@ -31504,7 +31488,7 @@ } /* begin success: */ successBoolean3 = (((bitsObj & 1) == 0) - && (((((usqInt) (longAt(bitsObj))) >> (instFormatFieldLSB())) & 15) == 6)) + && (((((usqInt) (longAt(bitsObj))) >> (instFormatFieldLSB())) & 15) == 6)) && ((lengthOf(bitsObj)) == (extentX * extentY)); if (!successBoolean3) {
@@ -31554,7 +31538,7 @@ } /* begin success: */ successBoolean7 = (((bitsObj & 1) == 0) - && (((((usqInt) (longAt(bitsObj))) >> (instFormatFieldLSB())) & 15) == 6)) + && (((((usqInt) (longAt(bitsObj))) >> (instFormatFieldLSB())) & 15) == 6)) && ((lengthOf(bitsObj)) == 16); if (!successBoolean7) {
@@ -31571,7 +31555,7 @@ if (GIV(argumentCount) == 1) { /* begin success: */ successBoolean10 = (((maskObj & 1) == 0) - && (((((usqInt) (longAt(maskObj))) >> (instFormatFieldLSB())) & 15) <= 4)) + && (((((usqInt) (longAt(maskObj))) >> (instFormatFieldLSB())) & 15) <= 4)) && ((lengthOf(maskObj)) >= 5); if (!successBoolean10) {
@@ -31602,7 +31586,7 @@ } /* begin success: */ successBoolean9 = (((bitsObj & 1) == 0) - && (((((usqInt) (longAt(bitsObj))) >> (instFormatFieldLSB())) & 15) == 6)) + && (((((usqInt) (longAt(bitsObj))) >> (instFormatFieldLSB())) & 15) == 6)) && ((lengthOf(bitsObj)) == 16); if (!successBoolean9) {
@@ -31655,7 +31639,7 @@ rcvr = longAt(GIV(stackPointer)); /* begin success: */ successBoolean = (((rcvr & 1) == 0) - && (((((usqInt) (longAt(rcvr))) >> (instFormatFieldLSB())) & 15) <= 4)) + && (((((usqInt) (longAt(rcvr))) >> (instFormatFieldLSB())) & 15) <= 4)) && ((lengthOf(rcvr)) >= 4); if (!successBoolean) {
@@ -33360,7 +33344,7 @@ arg1 = longAt(GIV(stackPointer) + (1 * BytesPerWord)); arg2 = longAt(GIV(stackPointer) + (0 * BytesPerWord)); if (!((((arg1 & 1) == 0) - && (((((usqInt) (longAt(arg1))) >> (instFormatFieldLSB())) & 15) >= 8)) + && (((((usqInt) (longAt(arg1))) >> (instFormatFieldLSB())) & 15) >= 8)) && (((arg2 & 1) == 0) && (((((usqInt) (longAt(arg2))) >> (instFormatFieldLSB())) & 15) >= 8)))) { /* begin primitiveFail */ @@ -33581,8 +33565,8 @@ stSize1 = totalLength1 - fixedFields1; } if ((oopisGreaterThanOrEqualTo(index, (fmt1 >= 12 - ? (((literalCountOfHeader(headerOf(aContext))) + LiteralStart) * BytesPerOop) + 1 - : 1))) + ? (((literalCountOfHeader(headerOf(aContext))) + LiteralStart) * BytesPerOop) + 1 + : 1))) && ((((usqInt) index)) <= (((usqInt) stSize1)))) { /* begin subscript:with:format: */ if (fmt1 <= 4) { @@ -33828,8 +33812,8 @@ stSize1 = totalLength1 - fixedFields1; } if ((oopisGreaterThanOrEqualTo(index, (fmt1 >= 12 - ? (((literalCountOfHeader(headerOf(aContext))) + LiteralStart) * BytesPerOop) + 1 - : 1))) + ? (((literalCountOfHeader(headerOf(aContext))) + LiteralStart) * BytesPerOop) + 1 + : 1))) && ((((usqInt) index)) <= (((usqInt) stSize1)))) { /* begin subscript:with:storing:format: */ if (fmt1 <= 4) { @@ -34702,7 +34686,7 @@ argumentArray = longAt(GIV(stackPointer)); methodArg = longAt(GIV(stackPointer) + (2 * BytesPerWord)); if (!((((argumentArray & 1) == 0) - && (((((usqInt) (longAt(argumentArray))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(argumentArray))) >> (instFormatFieldLSB())) & 15) == 2)) && (((methodArg & 1) == 0) && (((((usqInt) (longAt(methodArg))) >> (instFormatFieldLSB())) & 15) >= 12)))) { (GIV(primFailCode) = -2); @@ -35354,7 +35338,7 @@ methodArgument = longAt(GIV(stackPointer)); argumentArray = longAt(GIV(stackPointer) + (1 * BytesPerWord)); if (!((((methodArgument & 1) == 0) - && (((((usqInt) (longAt(methodArgument))) >> (instFormatFieldLSB())) & 15) >= 12)) + && (((((usqInt) (longAt(methodArgument))) >> (instFormatFieldLSB())) & 15) >= 12)) && (((argumentArray & 1) == 0) && (((((usqInt) (longAt(argumentArray))) >> (instFormatFieldLSB())) & 15) == 2)))) { (GIV(primFailCode) = PrimErrBadArgument); @@ -35666,7 +35650,7 @@
lit = longAt((GIV(newMethod) + BaseHeaderSize) + ((0 + LiteralStart) << ShiftForWord)); if (!((((lit & 1) == 0) - && (((((usqInt) (longAt(lit))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(lit))) >> (instFormatFieldLSB())) & 15) == 2)) && ((lengthOf(lit)) == 4))) { (GIV(primFailCode) = PrimErrBadMethod); return; @@ -37388,7 +37372,7 @@ l5: /* end floatValueOf: */; rcvr = longAt(GIV(stackPointer) + (3 * BytesPerWord)); if (!((((rcvr & 1) == 0) - && (((((usqInt) (longAt(rcvr))) >> (instFormatFieldLSB())) & 15) <= 4)) + && (((((usqInt) (longAt(rcvr))) >> (instFormatFieldLSB())) & 15) <= 4)) && ((lengthOf(rcvr)) >= 4))) { /* begin success: */ @@ -37666,7 +37650,7 @@ arg = longAt(GIV(stackPointer)); if (!((((arg & 1) == 0) - && (((((usqInt) (longAt(arg))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(arg))) >> (instFormatFieldLSB())) & 15) == 2)) && ((slotSizeOf(arg)) == 8))) { /* begin primitiveFail */ if (!GIV(primFailCode)) { @@ -39310,7 +39294,7 @@
segmentWordArray = longAt(GIV(stackPointer) + (1 * BytesPerWord)); if (!((((outPointerArray & 1) == 0) - && (((((usqInt) (longAt(outPointerArray))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(outPointerArray))) >> (instFormatFieldLSB())) & 15) == 2)) && (((segmentWordArray & 1) == 0) && (((((usqInt) (longAt(segmentWordArray))) >> (instFormatFieldLSB())) & 15) == 6)))) {
@@ -39449,9 +39433,9 @@ if ((GIV(longRunningPrimitiveStopUsecs) > GIV(longRunningPrimitiveStartUsecs)) && ((((lrpcm = GIV(longRunningPrimitiveCheckMethod))) != null) && ((((lrpcm & 3) == 0) - && (((((usqInt)lrpcm)) >= (startOfMemory())) - && (((((usqInt)lrpcm)) < GIV(freeStart)) - && (((longAt(lrpcm)) & TypeMask) != HeaderTypeGC)))) + && (((((usqInt)lrpcm)) >= (startOfMemory())) + && (((((usqInt)lrpcm)) < GIV(freeStart)) + && (((longAt(lrpcm)) & TypeMask) != HeaderTypeGC)))) && ((!(((longAt(lrpcm)) & TypeMask) == HeaderTypeFree)) && (((((usqInt) (longAt(lrpcm))) >> (instFormatFieldLSB())) & 15) >= 12))))) { result = instantiateClassindexableSize(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord)), 3); @@ -39521,7 +39505,7 @@ activeContext = voidVMStateForSnapshotFlushingExternalPrimitivesIf(0); marryContextInNewStackPageAndInitializeInterpreterRegisters(activeContext); assert((((stackValue(0)) == (nilObject())) - && (GIV(longRunningPrimitiveCheckSemaphore) == null)) + && (GIV(longRunningPrimitiveCheckSemaphore) == null)) || (((stackValue(0)) == GIV(longRunningPrimitiveCheckSemaphore)) && ((fetchClassOfNonImm(sema)) == (splObj(ClassSemaphore))))); } @@ -40808,7 +40792,7 @@ } findNewMethodInClassTag(lookupClass); if ((((GIV(newMethod) & 1) == 0) - && (((((usqInt) (longAt(GIV(newMethod)))) >> (instFormatFieldLSB())) & 15) >= 12)) + && (((((usqInt) (longAt(GIV(newMethod)))) >> (instFormatFieldLSB())) & 15) >= 12)) && ((argumentCountOf(GIV(newMethod))) != GIV(argumentCount))) {
/* Restore the state by popping all those array entries and pushing back the selector and array, and fail */ @@ -41020,8 +41004,8 @@ : (next >= heapBase) && ((!(((longAt(next)) & MarkBit) != 0)) && (((((next & 1) == 0) - && (((((usqInt) (longAt(next))) >> (instFormatFieldLSB())) & 15) <= 4)) - || (((((usqInt) (longAt(next))) >> (instFormatFieldLSB())) & 15) >= 12)) + && (((((usqInt) (longAt(next))) >> (instFormatFieldLSB())) & 15) <= 4)) + || (((((usqInt) (longAt(next))) >> (instFormatFieldLSB())) & 15) >= 12)) && (followWeak || (!(((((usqInt) (longAt(next))) >> (instFormatFieldLSB())) & 15) == 4)))))))) { if ((stackp + 2) > stackSize) { @@ -41144,7 +41128,7 @@ } findNewMethodInClassTag(lookupClassTag); if (!((((GIV(newMethod) & 1) == 0) - && (((((usqInt) (longAt(GIV(newMethod)))) >> (instFormatFieldLSB())) & 15) >= 12)) + && (((((usqInt) (longAt(GIV(newMethod)))) >> (instFormatFieldLSB())) & 15) >= 12)) && ((argumentCountOf(GIV(newMethod))) == GIV(argumentCount)))) {
/* Slide the args back up (sigh) and re-insert the selector. */ @@ -41306,7 +41290,7 @@ activeContext = voidVMStateForSnapshotFlushingExternalPrimitivesIf(0); marryContextInNewStackPageAndInitializeInterpreterRegisters(activeContext); assert((((stackValue(0)) == (nilObject())) - && (GIV(profileSemaphore) == (nilObject()))) + && (GIV(profileSemaphore) == (nilObject()))) || (((stackValue(0)) == GIV(profileSemaphore)) && ((fetchClassOfNonImm(sema)) == (splObj(ClassSemaphore))))); } @@ -41890,7 +41874,7 @@ rcvr = oop2; l7: /* end stackObjectValue: */; if (!((((rcvr & 1) == 0) - && (((((usqInt) (longAt(rcvr))) >> (instFormatFieldLSB())) & 15) <= 4)) + && (((((usqInt) (longAt(rcvr))) >> (instFormatFieldLSB())) & 15) <= 4)) && ((slotSizeOf(rcvr)) >= 4))) { /* begin primitiveFail */ if (!GIV(primFailCode)) { @@ -41903,7 +41887,7 @@ scanXTable = longAt((rcvr + BaseHeaderSize) + (2 << ShiftForWord)); scanMap = longAt((rcvr + BaseHeaderSize) + (3 << ShiftForWord)); if (!((((scanXTable & 1) == 0) - && (((((usqInt) (longAt(scanXTable))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(scanXTable))) >> (instFormatFieldLSB())) & 15) == 2)) && (((scanMap & 1) == 0) && (((((usqInt) (longAt(scanMap))) >> (instFormatFieldLSB())) & 15) == 2)))) { /* begin primitiveFail */ @@ -43193,7 +43177,7 @@ error("heap is empty"); thisObj = null; l2: /* end firstAccessibleObject */; - while (!(thisObj == null)) { + while ((thisObj == null)) { thisClass = ((thisObj & 1) ? longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassInteger << ShiftForWord)) : (((ccIndex = (((usqInt) (longAt(thisObj))) >> 12) & 0x1F)) == 0 @@ -43441,9 +43425,9 @@
arrayOfRoots = longAt(GIV(stackPointer) + (2 * BytesPerWord)); if (!((((arrayOfRoots & 1) == 0) - && (((((usqInt) (longAt(arrayOfRoots))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(arrayOfRoots))) >> (instFormatFieldLSB())) & 15) == 2)) && ((((outPointerArray & 1) == 0) - && (((((usqInt) (longAt(outPointerArray))) >> (instFormatFieldLSB())) & 15) == 2)) + && (((((usqInt) (longAt(outPointerArray))) >> (instFormatFieldLSB())) & 15) == 2)) && (((segmentWordArray & 1) == 0) && (((((usqInt) (longAt(segmentWordArray))) >> (instFormatFieldLSB())) & 15) == 6))))) {
@@ -43677,8 +43661,8 @@ stSize = totalLength - fixedFields; } if ((oopisGreaterThanOrEqualTo(index, (fmt >= 12 - ? (((literalCountOfHeader(headerOf(rcvr))) + LiteralStart) * BytesPerOop) + 1 - : 1))) + ? (((literalCountOfHeader(headerOf(rcvr))) + LiteralStart) * BytesPerOop) + 1 + : 1))) && ((((usqInt) index)) <= (((usqInt) stSize)))) { /* begin subscript:with:format: */ if (fmt <= 4) { @@ -43833,8 +43817,8 @@ stSize = totalLength - fixedFields; } if ((oopisGreaterThanOrEqualTo(index, (fmt >= 12 - ? (((literalCountOfHeader(headerOf(rcvr))) + LiteralStart) * BytesPerOop) + 1 - : 1))) + ? (((literalCountOfHeader(headerOf(rcvr))) + LiteralStart) * BytesPerOop) + 1 + : 1))) && ((((usqInt) index)) <= (((usqInt) stSize)))) { /* begin subscript:with:storing:format: */ if (fmt <= 4) { @@ -44550,7 +44534,7 @@
/* Need to walk the stack freeing stack pages and nilling contexts. */
- while (!((currentCtx == aContextOrNil) + while (((currentCtx == aContextOrNil) || (currentCtx == GIV(nilObj)))) { assert(isContext(currentCtx)); if (((longAt((currentCtx + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)) { @@ -46298,10 +46282,10 @@ } /* begin findClassOfMethod:forReceiver: */ if ((((anObject & 1)) - || (((anObject & 3) == 0) - && (((((usqInt)anObject)) >= (startOfMemory())) - && (((((usqInt)anObject)) < GIV(freeStart)) - && (((longAt(anObject)) & TypeMask) != HeaderTypeGC))))) + || (((anObject & 3) == 0) + && (((((usqInt)anObject)) >= (startOfMemory())) + && (((((usqInt)anObject)) < GIV(freeStart)) + && (((longAt(anObject)) & TypeMask) != HeaderTypeGC))))) && (!0)) { rclass = ((anObject & 1) ? longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassInteger << ShiftForWord)) @@ -46317,9 +46301,9 @@ } } if (!((((aMethod & 3) == 0) - && (((((usqInt)aMethod)) >= (startOfMemory())) - && (((((usqInt)aMethod)) < GIV(freeStart)) - && (((longAt(aMethod)) & TypeMask) != HeaderTypeGC)))) + && (((((usqInt)aMethod)) >= (startOfMemory())) + && (((((usqInt)aMethod)) < GIV(freeStart)) + && (((longAt(aMethod)) & TypeMask) != HeaderTypeGC)))) && (((((usqInt) (longAt(aMethod))) >> (instFormatFieldLSB())) & 15) >= 12))) { methClass = GIV(nilObj); goto l1; @@ -46328,10 +46312,10 @@ l1: /* end findClassOfMethod:forReceiver: */; methodSel = findSelectorOfMethod(aMethod); if ((((anObject & 1)) - || (((anObject & 3) == 0) - && (((((usqInt)anObject)) >= (startOfMemory())) - && (((((usqInt)anObject)) < GIV(freeStart)) - && (((longAt(anObject)) & TypeMask) != HeaderTypeGC))))) + || (((anObject & 3) == 0) + && (((((usqInt)anObject)) >= (startOfMemory())) + && (((((usqInt)anObject)) < GIV(freeStart)) + && (((longAt(anObject)) & TypeMask) != HeaderTypeGC))))) && ((!0) && (addressCouldBeClassObj((classObj = ((anObject & 1) ? longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassInteger << ShiftForWord)) @@ -46372,9 +46356,9 @@ } if ((methodSel == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorDoesNotUnderstand << ShiftForWord)))) && ((((maybeMessage & 3) == 0) - && (((((usqInt)maybeMessage)) >= (startOfMemory())) - && (((((usqInt)maybeMessage)) < GIV(freeStart)) - && (((longAt(maybeMessage)) & TypeMask) != HeaderTypeGC)))) + && (((((usqInt)maybeMessage)) >= (startOfMemory())) + && (((((usqInt)maybeMessage)) < GIV(freeStart)) + && (((longAt(maybeMessage)) & TypeMask) != HeaderTypeGC)))) && (((((ccIndex1 = (((usqInt) (longAt(maybeMessage))) >> 12) & 0x1F)) == 0 ? (longAt(maybeMessage - BaseHeaderSize)) & AllButTypeMask : longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex1 - 1) << ShiftForWord)))) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassMessage << ShiftForWord)))))) { @@ -46531,7 +46515,7 @@ sqInt context;
context = shortReversePrintFrameAndCallers(theFP); - while (!(context == GIV(nilObj))) { + while ((context == GIV(nilObj))) { if (((longAt((context + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)) { if (!(checkIsStillMarriedContextcurrentFP(context, GIV(framePointer)))) { shortPrintContext(context); @@ -46562,7 +46546,7 @@ return printCallStackOf(longAt((aContextOrProcessOrFrame + BaseHeaderSize) + (SuspendedContextIndex << ShiftForWord))); } context = aContextOrProcessOrFrame; - while (!(context == GIV(nilObj))) { + while ((context == GIV(nilObj))) { if (((longAt((context + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)) { if (!(checkIsStillMarriedContextcurrentFP(context, GIV(framePointer)))) { shortPrintContext(context); @@ -46589,7 +46573,7 @@ sqInt value;
ctxt = aContext; - while (!(ctxt == GIV(nilObj))) { + while ((ctxt == GIV(nilObj))) { if (((longAt((ctxt + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)) { /* begin frameOfMarriedContext: */ value = longAt((ctxt + BaseHeaderSize) + (SenderIndex << ShiftForWord)); @@ -46720,7 +46704,7 @@ sqInt ctxt;
ctxt = aContext; - while (!((ctxt == GIV(nilObj)) + while (((ctxt == GIV(nilObj)) || (((longAt((ctxt + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)))) { shortPrintContext(ctxt); ctxt = longAt((ctxt + BaseHeaderSize) + (SenderIndex << ShiftForWord)); @@ -47331,9 +47315,9 @@ rcvrOrClosure = longAt(theFP + (frameStackedReceiverOffset(theFP))); if (((rcvrOrClosure & 1) == 0) && ((((rcvrOrClosure & 3) == 0) - && (((((usqInt)rcvrOrClosure)) >= (startOfMemory())) - && (((((usqInt)rcvrOrClosure)) < GIV(freeStart)) - && (((longAt(rcvrOrClosure)) & TypeMask) != HeaderTypeGC)))) + && (((((usqInt)rcvrOrClosure)) >= (startOfMemory())) + && (((((usqInt)rcvrOrClosure)) < GIV(freeStart)) + && (((longAt(rcvrOrClosure)) & TypeMask) != HeaderTypeGC)))) && (((((ccIndex = (((usqInt) (longAt(rcvrOrClosure))) >> 12) & 0x1F)) == 0 ? (longAt(rcvrOrClosure - BaseHeaderSize)) & AllButTypeMask : longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)))) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassBlockClosure << ShiftForWord)))))) { @@ -47482,7 +47466,7 @@ error("heap is empty"); oop = null; l2: /* end firstAccessibleObject */; - while (!(oop == null)) { + while ((oop == null)) { if (((((ccIndex = (((usqInt) (longAt(oop))) >> 12) & 0x1F)) == 0 ? (longAt(oop - BaseHeaderSize)) & AllButTypeMask : longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)))) == aClassOop) { @@ -47572,7 +47556,7 @@ penultimateLiteral = longAt((oop + BaseHeaderSize) + ((offset1 + LiteralStart) << ShiftForWord)); if ((penultimateLiteral == selector) || ((((penultimateLiteral & 1) == 0) - && (((((usqInt) (longAt(penultimateLiteral))) >> (instFormatFieldLSB())) & 15) <= 4)) + && (((((usqInt) (longAt(penultimateLiteral))) >> (instFormatFieldLSB())) & 15) <= 4)) && (((numSlotsOf(penultimateLiteral)) >= 2) && (((longAt((penultimateLiteral + BaseHeaderSize) + (0 << ShiftForWord))) == oop) && ((longAt((penultimateLiteral + BaseHeaderSize) + (1 << ShiftForWord))) == selector))))) { @@ -47589,7 +47573,7 @@ putchar(' '); /* begin printOopShortInner: */ oop1 = ((((methodClassAssociation & 1) == 0) - && (((((usqInt) (longAt(methodClassAssociation))) >> (instFormatFieldLSB())) & 15) <= 4)) + && (((((usqInt) (longAt(methodClassAssociation))) >> (instFormatFieldLSB())) & 15) <= 4)) && ((numSlotsOf(methodClassAssociation)) >= 2) ? longAt((methodClassAssociation + BaseHeaderSize) + (0 << ShiftForWord)) : methodClassAssociation); @@ -47999,23 +47983,23 @@ m = GIV(methodCache)[i + MethodCacheMethod]; p = GIV(methodCache)[i + MethodCachePrimFunction]; if (((thing == -1) - || ((s == thing) - || ((c == thing) - || ((p == thing) - || ((m == thing) - || ((((m & 3) == 0) - && (((((usqInt)m)) >= (startOfMemory())) - && (((((usqInt)m)) < GIV(freeStart)) - && (((longAt(m)) & TypeMask) != HeaderTypeGC)))) - && ((((m & 1) == 0) - && ((((((usqInt) (longAt(m))) >> (instFormatFieldLSB())) & 15) >= 12) - && (isCogMethodReference(longAt((m + BaseHeaderSize) + (HeaderIndex << ShiftForWord)))))) - && ((((sqInt)(cogMethodOf(m)))) == thing)))))))) + || ((s == thing) + || ((c == thing) + || ((p == thing) + || ((m == thing) + || ((((m & 3) == 0) + && (((((usqInt)m)) >= (startOfMemory())) + && (((((usqInt)m)) < GIV(freeStart)) + && (((longAt(m)) & TypeMask) != HeaderTypeGC)))) + && ((((m & 1) == 0) + && ((((((usqInt) (longAt(m))) >> (instFormatFieldLSB())) & 15) >= 12) + && (isCogMethodReference(longAt((m + BaseHeaderSize) + (HeaderIndex << ShiftForWord)))))) + && ((((sqInt)(cogMethodOf(m)))) == thing)))))))) && ((((s & 1)) - || (((s & 3) == 0) - && (((((usqInt)s)) >= (startOfMemory())) - && (((((usqInt)s)) < GIV(freeStart)) - && (((longAt(s)) & TypeMask) != HeaderTypeGC))))) + || (((s & 3) == 0) + && (((((usqInt)s)) >= (startOfMemory())) + && (((((usqInt)s)) < GIV(freeStart)) + && (((longAt(s)) & TypeMask) != HeaderTypeGC))))) && ((c != 0)
@@ Diff output truncated at 50000 characters. @@
vm-dev@lists.squeakfoundation.org