[Vm-dev] [commit][2892] CogVM source as per VMMaker.oscog-eem.672
commits at squeakvm.org
commits at squeakvm.org
Fri Apr 11 18:50:33 UTC 2014
Revision: 2892
Author: eliot
Date: 2014-04-11 11:50:26 -0700 (Fri, 11 Apr 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.672
Implement the new Spur interpreterProxy API for ObjectMemory (of course
pinObject: fails, and isCharacterValue: has a smaller range).
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/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/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/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-04-10 18:41:54 UTC (rev 2891)
+++ branches/Cog/nscogsrc/vm/cogit.c 2014-04-11 18:50:26 UTC (rev 2892)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.670 uuid: 071bf6af-04c0-4256-b053-d66378b73d27
+ CCodeGenerator VMMaker.oscog-eem.672 uuid: 21493732-2e31-4b57-a8ae-aa6e6a9e4c3c
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.670 uuid: 071bf6af-04c0-4256-b053-d66378b73d27
+ StackToRegisterMappingCogit VMMaker.oscog-eem.672 uuid: 21493732-2e31-4b57-a8ae-aa6e6a9e4c3c
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.670 uuid: 071bf6af-04c0-4256-b053-d66378b73d27 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.672 uuid: 21493732-2e31-4b57-a8ae-aa6e6a9e4c3c " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h 2014-04-10 18:41:54 UTC (rev 2891)
+++ branches/Cog/nscogsrc/vm/cogit.h 2014-04-11 18:50:26 UTC (rev 2892)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.670 uuid: 071bf6af-04c0-4256-b053-d66378b73d27
+ CCodeGenerator VMMaker.oscog-eem.672 uuid: 21493732-2e31-4b57-a8ae-aa6e6a9e4c3c
*/
Modified: branches/Cog/nscogsrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogmethod.h 2014-04-10 18:41:54 UTC (rev 2891)
+++ branches/Cog/nscogsrc/vm/cogmethod.h 2014-04-11 18:50:26 UTC (rev 2892)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.670 uuid: 071bf6af-04c0-4256-b053-d66378b73d27
+ CCodeGenerator VMMaker.oscog-eem.672 uuid: 21493732-2e31-4b57-a8ae-aa6e6a9e4c3c
*/
typedef struct {
Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c 2014-04-10 18:41:54 UTC (rev 2891)
+++ branches/Cog/nscogsrc/vm/cointerp.c 2014-04-11 18:50:26 UTC (rev 2892)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.670 uuid: 071bf6af-04c0-4256-b053-d66378b73d27
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.672 uuid: 21493732-2e31-4b57-a8ae-aa6e6a9e4c3c
from
- CoInterpreter VMMaker.oscog-eem.670 uuid: 071bf6af-04c0-4256-b053-d66378b73d27
+ CoInterpreter VMMaker.oscog-eem.672 uuid: 21493732-2e31-4b57-a8ae-aa6e6a9e4c3c
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.670 uuid: 071bf6af-04c0-4256-b053-d66378b73d27 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.672 uuid: 21493732-2e31-4b57-a8ae-aa6e6a9e4c3c " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -426,7 +426,9 @@
void ceTraceStoreOfinto(sqInt aValue, sqInt anObject);
static sqInt changeClassOfto(sqInt rcvr, sqInt argClass);
sqInt characterForAscii(sqInt ascii);
+sqInt characterObjectOf(sqInt characterCode);
sqInt characterTable(void);
+sqInt characterValueOf(sqInt oop);
static sqInt cheapAddressCouldBeInHeap(sqInt address);
sqInt checkAllAccessibleObjectsOkay(void);
void checkAssertsEnabledInCoInterpreter(void);
@@ -659,6 +661,7 @@
static sqInt isBaseFrame(char *theFP);
sqInt isBytes(sqInt oop);
sqInt isCharacterObject(sqInt oop);
+sqInt isCharacterValue(sqInt anInteger);
static sqInt isClassOfNonImmequalTo(sqInt oop, sqInt classOop);
sqInt isCogMethodReference(sqInt methodHeader);
static sqInt isCompiledMethodHeader(sqInt objHeader);
@@ -686,6 +689,7 @@
static sqInt isOopForwarded(sqInt oop);
sqInt isOopImmutable(sqInt anOop);
sqInt isOopMutable(sqInt anOop);
+sqInt isPinned(sqInt objOop);
sqInt isPointers(sqInt oop);
static sqInt isPrimitiveFunctionPointerAnIndex(void);
sqInt isQuickPrimitiveIndex(sqInt anInteger);
@@ -811,6 +815,7 @@
static sqInt pageIndexFor(void *pointer);
static sqInt pageListIsWellFormed(void);
sqInt penultimateLiteralOf(sqInt aMethodOop);
+void pinObject(sqInt objOop);
sqInt popRemappableOop(void);
sqInt popStack(void);
sqInt pop(sqInt nItems);
@@ -2040,7 +2045,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.670";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.672";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -4338,7 +4343,7 @@
? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
: (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
goto commonCallerReturn;
- goto l299;
+ goto l301;
}
closure = longAt(localFP + (frameStackedReceiverOffsetNumArgs(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
? ((mframeCogMethod(localFP))->cmNumArgs)
@@ -4375,11 +4380,11 @@
theMethod = longAt((home + BaseHeaderSize) + (MethodIndex << ShiftForWord));
if ((primitiveIndexOfMethodheader(theMethod, headerOf(theMethod))) == 198) {
unwindContextOrNilOrZero = home;
- goto l300;
+ goto l302;
}
}
unwindContextOrNilOrZero = ctxtOrNilOrZero;
- l300: /* end internalFindUnwindThroughContext: */;
+ l302: /* end internalFindUnwindThroughContext: */;
if (unwindContextOrNilOrZero == GIV(nilObj)) {
/* error: can't find home on chain; cannot return */
@@ -4393,10 +4398,10 @@
: (byteAt((localFP + FoxIFrameFlags) + 2)) != 0)) {
assert(isContext(frameContext(localFP)));
ourContext = longAt(localFP + FoxThisContext);
- goto l301;
+ goto l303;
}
ourContext = marryFrameSP(localFP, localSP);
- l301: /* end ensureFrameIsMarried:SP: */;
+ l303: /* end ensureFrameIsMarried:SP: */;
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), ourContext);
/* begin internalPush: */
@@ -4405,7 +4410,7 @@
GIV(argumentCount) = 1;
goto normalSend;
/* return self */
- goto l299;
+ goto l301;
}
if (unwindContextOrNilOrZero != 0) {
/* begin internalAboutToReturn:through: */
@@ -4417,10 +4422,10 @@
: (byteAt((localFP + FoxIFrameFlags) + 2)) != 0)) {
assert(isContext(frameContext(localFP)));
ourContext1 = longAt(localFP + FoxThisContext);
- goto l302;
+ goto l304;
}
ourContext1 = marryFrameSP(localFP, localSP);
- l302: /* end ensureFrameIsMarried:SP: */;
+ l304: /* end ensureFrameIsMarried:SP: */;
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), ourContext1);
/* begin internalPush: */
@@ -4431,7 +4436,7 @@
GIV(argumentCount) = 2;
goto normalSend;
/* return self */
- goto l299;
+ goto l301;
}
contextToReturnTo = null;
if (((longAt((home + BaseHeaderSize) + (SenderIndex << ShiftForWord))) & 1)) {
@@ -4490,10 +4495,10 @@
: (byteAt((localFP + FoxIFrameFlags) + 2)) != 0)) {
assert(isContext(frameContext(localFP)));
ourContext2 = longAt(localFP + FoxThisContext);
- goto l303;
+ goto l305;
}
ourContext2 = marryFrameSP(localFP, localSP);
- l303: /* end ensureFrameIsMarried:SP: */;
+ l305: /* end ensureFrameIsMarried:SP: */;
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), ourContext2);
/* begin internalPush: */
@@ -4502,7 +4507,7 @@
GIV(argumentCount) = 1;
goto normalSend;
/* return self */
- goto l299;
+ goto l301;
}
}
assert(pageListIsWellFormed());
@@ -4613,7 +4618,7 @@
GIV(framePointer) = localFP;
ceEnterCogCodePopReceiverReg();
- goto l299;
+ goto l301;
}
localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
}
@@ -4631,7 +4636,7 @@
/* return self */
}
- l299: /* end case */;
+ l301: /* end case */;
break;
case 121:
/* returnTrue */
@@ -4751,27 +4756,27 @@
fp = (thePage->headFP);
if (fp == theFP) {
frameAbove = 0;
- goto l305;
+ goto l307;
}
while (((callerFP = frameCallerFP(fp))) != 0) {
if (callerFP == theFP) {
frameAbove = fp;
- goto l305;
+ goto l307;
}
fp = callerFP;
}
error("did not find theFP in stack page");
frameAbove = 0;
- l305: /* end findFrameAbove:inPage: */;
+ l307: /* end findFrameAbove:inPage: */;
/* begin newStackPage */
lruOrFree = ((mostRecentlyUsedPage())->nextPage);
if (isFree(lruOrFree)) {
newPage = lruOrFree;
- goto l306;
+ goto l308;
}
divorceFramesIn(lruOrFree);
newPage = lruOrFree;
- l306: /* end newStackPage */;
+ l308: /* end newStackPage */;
assert(newPage == GIV(stackPage));
moveFramesInthroughtoPage(thePage, frameAbove, newPage);
markStackPageMostRecentlyUsed(newPage);
@@ -4795,7 +4800,7 @@
longAtput((sp2 = GIV(stackPointer) - BytesPerWord), GIV(instructionPointer));
GIV(stackPointer) = sp2;
ceSendAborttonumArgs(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorCannotReturn << ShiftForWord)), contextToReturnFrom, 1);
- goto l307;
+ goto l309;
}
GIV(instructionPointer) = 0;
thePage = makeBaseFrameFor(contextToReturnTo);
@@ -4834,7 +4839,7 @@
GIV(framePointer) = localFP;
ceEnterCogCodePopReceiverReg();
- goto l307;
+ goto l309;
}
localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
}
@@ -4852,8 +4857,8 @@
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
/* return self */
- l307: /* end baseFrameReturn */;
- goto l304;
+ l309: /* end baseFrameReturn */;
+ goto l306;
}
/* begin frameCallerSavedIP: */
localIP = pointerForOop(longAt(localFP + FoxCallerSavedIP));
@@ -4882,7 +4887,7 @@
GIV(framePointer) = localFP;
ceEnterCogCodePopReceiverReg();
- goto l304;
+ goto l306;
}
localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
}
@@ -4899,7 +4904,7 @@
longAtPointerput(localSP, localReturnValue);
}
- l304: /* end case */;
+ l306: /* end case */;
break;
case 126:
/* dynamicSuperSendBytecode */
@@ -5195,7 +5200,7 @@
GIV(newMethod) = GIV(methodCache)[probe1 + MethodCacheMethod];
primitiveFunctionPointer = ((void (*)()) (GIV(methodCache)[probe1 + MethodCachePrimFunction]));
ok = 1;
- goto l312;
+ goto l314;
}
/* second probe */
@@ -5206,7 +5211,7 @@
GIV(newMethod) = GIV(methodCache)[probe1 + MethodCacheMethod];
primitiveFunctionPointer = ((void (*)()) (GIV(methodCache)[probe1 + MethodCachePrimFunction]));
ok = 1;
- goto l312;
+ goto l314;
}
probe1 = (((usqInt) hash1) >> 2) & MethodCacheMask;
if (((GIV(methodCache)[probe1 + MethodCacheSelector]) == GIV(messageSelector))
@@ -5214,10 +5219,10 @@
GIV(newMethod) = GIV(methodCache)[probe1 + MethodCacheMethod];
primitiveFunctionPointer = ((void (*)()) (GIV(methodCache)[probe1 + MethodCachePrimFunction]));
ok = 1;
- goto l312;
+ goto l314;
}
ok = 0;
- l312: /* end lookupInMethodCacheSel:classTag: */;
+ l314: /* end lookupInMethodCacheSel:classTag: */;
if (ok) {
/* begin ifAppropriateCompileToNativeCode:selector: */
VM_LABEL(0ifAppropriateCompileToNativeCodeselector);
@@ -5258,7 +5263,7 @@
localFP = pointerForOop(GIV(framePointer));
addNewMethodToCache(GIV(lkupClass));
}
- l313: /* end internalFindNewMethod */;
+ l315: /* end internalFindNewMethod */;
/* begin internalExecuteNewMethod */
VM_LABEL(0internalExecuteNewMethod);
if (primitiveFunctionPointer != 0) {
@@ -5272,31 +5277,31 @@
if (localPrimIndex >= 264) {
longAtPointerput(localSP, longAt(((longAtPointer(localSP)) + BaseHeaderSize) + ((localPrimIndex - 264) << ShiftForWord)));
1;
- goto l309;
+ goto l311;
}
if (localPrimIndex == 256) {
1;
- goto l309;
+ goto l311;
}
if (localPrimIndex == 257) {
longAtPointerput(localSP, GIV(trueObj));
1;
- goto l309;
+ goto l311;
}
if (localPrimIndex == 258) {
longAtPointerput(localSP, GIV(falseObj));
1;
- goto l309;
+ goto l311;
}
if (localPrimIndex == 259) {
longAtPointerput(localSP, GIV(nilObj));
1;
- goto l309;
+ goto l311;
}
longAtPointerput(localSP, (((localPrimIndex - 261) << 1) | 1));
1;
- l309: /* end internalQuickPrimitiveResponse */;
- goto l308;
+ l311: /* end internalQuickPrimitiveResponse */;
+ goto l310;
}
/* begin externalizeIPandSP */
assert((((usqInt)localIP)) != (ceReturnToInterpreterPC()));
@@ -5347,7 +5352,7 @@
returntoExecutive(popStack(), 1);
browserPluginReturnIfNeeded();
null;
- goto l308;
+ goto l310;
}
}
if (methodHasCogMethod(GIV(newMethod))) {
@@ -5428,11 +5433,11 @@
table = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (PrimErrTableIndex << ShiftForWord));
if (GIV(primFailCode) <= (((sqInt) (lastPointerOf(table)) >> 2))) {
errorCode = longAt((table + BaseHeaderSize) + ((GIV(primFailCode) - 1) << ShiftForWord));
- goto l310;
+ goto l312;
}
}
errorCode = ((GIV(primFailCode) << 1) | 1);
- l310: /* end getErrorObjectFromPrimFailCode */;
+ l312: /* end getErrorObjectFromPrimFailCode */;
longAtPointerput(localSP, errorCode);
}
GIV(primFailCode) = 0;
@@ -5456,7 +5461,7 @@
localFP = pointerForOop(GIV(framePointer));
}
}
- l308: /* end internalExecuteNewMethod */;
+ l310: /* end internalExecuteNewMethod */;
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
@@ -6833,7 +6838,7 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l314;
+ goto l316;
}
if (bytecode == 172) {
@@ -6843,7 +6848,7 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l314;
+ goto l316;
}
if (bytecode > 167) {
@@ -6854,7 +6859,7 @@
localIP = (localIP + offset) + 1;
currentBytecode = (byteAtPointer(localIP)) + GIV(bytecodeSetSelector);
- goto l314;
+ goto l316;
}
}
currentBytecode = bytecode + GIV(bytecodeSetSelector);
@@ -6862,7 +6867,7 @@
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), GIV(trueObj));
}
- l314: /* end case */;
+ l316: /* end case */;
break;
case 179:
/* bytecodePrimGreaterThan */
@@ -7012,7 +7017,7 @@
localIP = (localIP + (bytecode - 151)) + 1;
currentBytecode = (byteAtPointer(localIP)) + GIV(bytecodeSetSelector);
- goto l315;
+ goto l317;
}
if (bytecode == 172) {
@@ -7023,14 +7028,14 @@
localIP = (localIP + offset) + 1;
currentBytecode = (byteAtPointer(localIP)) + GIV(bytecodeSetSelector);
- goto l315;
+ goto l317;
}
currentBytecode = bytecode + GIV(bytecodeSetSelector);
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), GIV(falseObj));
}
- l315: /* end case */;
+ l317: /* end case */;
break;
case 180:
/* bytecodePrimLessOrEqual */
@@ -8377,7 +8382,9 @@
result1 = byteAt((rcvr + BaseHeaderSize) + (((index >> 1)) - 1));
result = (CharacterTable == null
- ? characterObjectOf(result1)
+ ? (((result1 >= 0) && (result1 <= 0xFF))
+ ? longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CharacterTable << ShiftForWord))) + BaseHeaderSize) + (result1 << ShiftForWord))
+ : GIV(nilObj))
: longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CharacterTable << ShiftForWord))) + BaseHeaderSize) + (result1 << ShiftForWord)));
goto l120;
}
@@ -8480,7 +8487,7 @@
GIV(primFailCode) = PrimErrBadReceiver;
0;
- goto l127;
+ goto l128;
}
/* begin lengthOf:baseHeader:format: */
if ((hdr & TypeMask) == HeaderTypeSizeAndClass) {
@@ -8492,35 +8499,35 @@
sz1 -= hdr & Size4Bit;
if (fmt1 <= 4) {
totalLength = ((usqInt) (sz1 - BaseHeaderSize)) >> ShiftForWord;
- goto l125;
+ goto l126;
}
totalLength = (fmt1 < 8
? ((usqInt) (sz1 - BaseHeaderSize)) >> 2
: (sz1 - BaseHeaderSize) - (fmt1 & 3));
- l125: /* end lengthOf:baseHeader:format: */;
+ l126: /* end lengthOf:baseHeader:format: */;
/* begin fixedFieldsOf:format:length: */
if ((fmt1 > 4)
|| (fmt1 == 2)) {
fixedFields1 = 0;
- goto l126;
+ goto l127;
}
if (fmt1 < 2) {
fixedFields1 = totalLength;
- goto l126;
+ goto l127;
}
class = (((ccIndex1 = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F)) == 0
? (longAt(rcvr - BaseHeaderSize)) & AllButTypeMask
: longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex1 - 1) << ShiftForWord)));
classFormat = (longAt((class + BaseHeaderSize) + (InstanceSpecificationIndex << ShiftForWord))) - 1;
fixedFields1 = (((((usqInt) classFormat) >> 11) & 192) + ((((usqInt) classFormat) >> 2) & 0x3F)) - 1;
- l126: /* end fixedFieldsOf:format:length: */;
+ l127: /* end fixedFieldsOf:format:length: */;
GIV(atCache)[atIx + AtCacheOop] = rcvr;
GIV(atCache)[atIx + AtCacheFmt] = fmt1;
GIV(atCache)[atIx + AtCacheFixedFields] = fixedFields1;
GIV(atCache)[atIx + AtCacheSize] = (totalLength - fixedFields1);
1;
- l127: /* end install:inAtCache:at:string: */;
+ l128: /* end install:inAtCache:at:string: */;
}
else {
if (primitiveFunctionPointer == primitiveStringAtPut) {
@@ -8539,12 +8546,12 @@
sz2 -= hdr1 & Size4Bit;
if (fmt2 <= 4) {
totalLength1 = ((usqInt) (sz2 - BaseHeaderSize)) >> ShiftForWord;
- goto l128;
+ goto l129;
}
totalLength1 = (fmt2 < 8
? ((usqInt) (sz2 - BaseHeaderSize)) >> 2
: (sz2 - BaseHeaderSize) - (fmt2 & 3));
- l128: /* end lengthOf:baseHeader:format: */;
+ l129: /* end lengthOf:baseHeader:format: */;
fixedFields2 = 0;
/* special flag for strings */
@@ -8556,7 +8563,7 @@
GIV(atCache)[atIx + AtCacheFixedFields] = fixedFields2;
GIV(atCache)[atIx + AtCacheSize] = (totalLength1 - fixedFields2);
1;
- l131: /* end install:inAtCache:at:string: */;
+ l132: /* end install:inAtCache:at:string: */;
}
else {
GIV(argumentCount) = 2;
@@ -8580,7 +8587,7 @@
possibleRootStoreIntovalue(rcvr, value);
}
longAtput((rcvr + BaseHeaderSize) + (((((index >> 1)) + fixedFields) - 1) << ShiftForWord), value);
- goto l123;
+ goto l124;
}
if (fmt < 8) {
@@ -8589,10 +8596,10 @@
valToPut = positive32BitValueOf(value);
if (!GIV(primFailCode)) {
long32Atput((rcvr + BaseHeaderSize) + ((((index >> 1)) - 1) << 2), valToPut);
- goto l123;
+ goto l124;
}
GIV(primFailCode) = PrimErrBadArgument;
- goto l123;
+ goto l124;
}
if (fmt >= 16) {
@@ -8601,22 +8608,22 @@
/* begin is:instanceOf:compactClassIndex: */
if ((value & 1)) {
isCharacter = 0;
- goto l122;
+ goto l123;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((value & 1)));
ccIndex3 = (((usqInt) (longAt(value))) >> 12) & 0x1F;
if (ccIndex3 == 0) {
isCharacter = ((longAt(value - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassCharacter << ShiftForWord)));
- goto l132;
+ goto l133;
}
isCharacter = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassCharacter << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex3 - 1) << ShiftForWord)));
- l132: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l122: /* end is:instanceOf:compactClassIndex: */;
+ l133: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l123: /* end is:instanceOf:compactClassIndex: */;
if (!isCharacter) {
GIV(primFailCode) = PrimErrBadArgument;
- goto l123;
+ goto l124;
}
valToPut = longAt((value + BaseHeaderSize) + (CharacterValueIndex << ShiftForWord));
valToPut = ((valToPut & 1)
@@ -8629,7 +8636,7 @@
if ((fmt >= 12)
&& (((index >> 1)) < ((((literalCountOfHeader(headerOf(rcvr))) + LiteralStart) * BytesPerOop) + 1))) {
GIV(primFailCode) = PrimErrBadIndex;
- goto l123;
+ goto l124;
}
valToPut = ((value & 1)
? (value >> 1)
@@ -8638,17 +8645,17 @@
if (!((valToPut >= 0)
&& (valToPut <= 0xFF))) {
GIV(primFailCode) = PrimErrBadArgument;
- goto l123;
+ goto l124;
}
byteAtput((rcvr + BaseHeaderSize) + (((index >> 1)) - 1), valToPut);
- goto l123;
+ goto l124;
}
/* begin primitiveFailFor: */
reasonCode = (((((usqInt) (longAt(rcvr))) >> (instFormatFieldLSB())) & 15) >= 2
? PrimErrBadIndex
: PrimErrBadReceiver);
GIV(primFailCode) = reasonCode;
- l123: /* end commonVariable:at:put:cacheIndex: */;
+ l124: /* end commonVariable:at:put:cacheIndex: */;
}
if (!GIV(primFailCode)) {
/* begin fetchNextBytecode */
@@ -8694,21 +8701,21 @@
/* begin is:instanceOf:compactClassIndex: */
if ((rcvr & 1)) {
isString = 0;
- goto l136;
+ goto l137;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((rcvr & 1)));
ccIndex = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F;
if (ccIndex == 0) {
isString = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassByteString << ShiftForWord)));
- goto l138;
+ goto l139;
}
isString = ClassByteStringCompactIndex == ccIndex;
- goto l138;
+ goto l139;
isString = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassByteString << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)));
- l138: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l136: /* end is:instanceOf:compactClassIndex: */;
+ l139: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l137: /* end is:instanceOf:compactClassIndex: */;
if (isString) {
/* begin lengthOf: */
header = longAt(rcvr);
@@ -8723,36 +8730,36 @@
sz1 -= header & Size4Bit;
if (fmt <= 4) {
sz = ((usqInt) (sz1 - BaseHeaderSize)) >> ShiftForWord;
- goto l134;
+ goto l135;
}
sz = (fmt < 8
? ((usqInt) (sz1 - BaseHeaderSize)) >> 2
: (sz1 - BaseHeaderSize) - (fmt & 3));
- l134: /* end lengthOf: */;
+ l135: /* end lengthOf: */;
longAtPointerput(localSP, ((sz << 1) | 1));
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l133;
+ goto l134;
}
/* begin is:instanceOf:compactClassIndex: */
if ((rcvr & 1)) {
isArray = 0;
- goto l137;
+ goto l138;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((rcvr & 1)));
ccIndex1 = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F;
if (ccIndex1 == 0) {
isArray = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord)));
- goto l139;
+ goto l140;
}
isArray = ClassArrayCompactIndex == ccIndex1;
- goto l139;
+ goto l140;
isArray = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex1 - 1) << ShiftForWord)));
- l139: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l137: /* end is:instanceOf:compactClassIndex: */;
+ l140: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l138: /* end is:instanceOf:compactClassIndex: */;
if (isArray) {
/* begin lengthOf: */
header1 = longAt(rcvr);
@@ -8767,23 +8774,23 @@
sz2 -= header1 & Size4Bit;
if (fmt1 <= 4) {
sz = ((usqInt) (sz2 - BaseHeaderSize)) >> ShiftForWord;
- goto l135;
+ goto l136;
}
sz = (fmt1 < 8
? ((usqInt) (sz2 - BaseHeaderSize)) >> 2
: (sz2 - BaseHeaderSize) - (fmt1 & 3));
- l135: /* end lengthOf: */;
+ l136: /* end lengthOf: */;
longAtPointerput(localSP, ((sz << 1) | 1));
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l133;
+ goto l134;
}
GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << ShiftForWord))) + BaseHeaderSize) + ((18 * 2) << ShiftForWord));
GIV(argumentCount) = 0;
goto normalSend;
}
- l133: /* end case */;
+ l134: /* end case */;
break;
case 195:
case 355: /*99*/
@@ -8881,19 +8888,19 @@
/* begin is:instanceOf:compactClassIndex: */
if ((rcvr & 1)) {
isBlock = 0;
- goto l141;
+ goto l142;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((rcvr & 1)));
ccIndex = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F;
if (ccIndex == 0) {
isBlock = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassBlockClosure << ShiftForWord)));
- goto l142;
+ goto l143;
}
isBlock = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassBlockClosure << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)));
- l142: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l141: /* end is:instanceOf:compactClassIndex: */;
+ l143: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l142: /* end is:instanceOf:compactClassIndex: */;
if (isBlock) {
/* begin externalizeIPandSP */
assert((((usqInt)localIP)) != (ceReturnToInterpreterPC()));
@@ -8912,14 +8919,14 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l140;
+ goto l141;
}
GIV(primFailCode) = 0;
}
GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << ShiftForWord))) + BaseHeaderSize) + ((25 * 2) << ShiftForWord));
goto normalSend;
}
- l140: /* end case */;
+ l141: /* end case */;
break;
case 202:
/* bytecodePrimValueWithArg */
@@ -8934,19 +8941,19 @@
/* begin is:instanceOf:compactClassIndex: */
if ((rcvr & 1)) {
isBlock = 0;
- goto l144;
+ goto l145;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((rcvr & 1)));
ccIndex = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F;
if (ccIndex == 0) {
isBlock = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassBlockClosure << ShiftForWord)));
- goto l145;
+ goto l146;
}
isBlock = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassBlockClosure << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)));
- l145: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l144: /* end is:instanceOf:compactClassIndex: */;
+ l146: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l145: /* end is:instanceOf:compactClassIndex: */;
if (isBlock) {
/* begin externalizeIPandSP */
assert((((usqInt)localIP)) != (ceReturnToInterpreterPC()));
@@ -8965,14 +8972,14 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l143;
+ goto l144;
}
GIV(primFailCode) = 0;
}
GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << ShiftForWord))) + BaseHeaderSize) + ((26 * 2) << ShiftForWord));
goto normalSend;
}
- l143: /* end case */;
+ l144: /* end case */;
break;
case 203:
case 363: /*107*/
@@ -9021,13 +9028,13 @@
/* begin isClassOfNonImm:equalTo: */
if ((rcvr & 1)) {
successBoolean = 0;
- goto l147;
+ goto l148;
}
cl = (((ccIndex = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F)) == 0
? (longAt(rcvr - BaseHeaderSize)) & AllButTypeMask
: longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)));
successBoolean = cl == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassPoint << ShiftForWord)));
- l147: /* end isClassOfNonImm:equalTo: */;
+ l148: /* end isClassOfNonImm:equalTo: */;
if (!successBoolean) {
/* Don't overwrite an error code that has already been set. */
@@ -9041,14 +9048,14 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l146;
+ goto l147;
}
GIV(primFailCode) = 0;
GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << ShiftForWord))) + BaseHeaderSize) + ((30 * 2) << ShiftForWord));
GIV(argumentCount) = 0;
goto normalSend;
}
- l146: /* end case */;
+ l147: /* end case */;
break;
case 207:
/* bytecodePrimPointY */
@@ -9067,13 +9074,13 @@
/* begin isClassOfNonImm:equalTo: */
if ((rcvr & 1)) {
successBoolean = 0;
- goto l149;
+ goto l150;
}
cl = (((ccIndex = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F)) == 0
? (longAt(rcvr - BaseHeaderSize)) & AllButTypeMask
: longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)));
successBoolean = cl == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassPoint << ShiftForWord)));
- l149: /* end isClassOfNonImm:equalTo: */;
+ l150: /* end isClassOfNonImm:equalTo: */;
if (!successBoolean) {
/* Don't overwrite an error code that has already been set. */
@@ -9087,14 +9094,14 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l148;
+ goto l149;
}
GIV(primFailCode) = 0;
GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << ShiftForWord))) + BaseHeaderSize) + ((0x1F * 2) << ShiftForWord));
GIV(argumentCount) = 0;
goto normalSend;
}
- l148: /* end case */;
+ l149: /* end case */;
break;
case 208:
case 209:
@@ -9267,7 +9274,7 @@
case 0:
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), GIV(falseObj));
- goto l150;
+ goto l151;
break;
case 1:
@@ -9286,10 +9293,10 @@
: (byteAt((localFP + FoxIFrameFlags) + 2)) != 0)) {
assert(isContext(frameContext(localFP)));
context = longAt(localFP + FoxThisContext);
- goto l151;
+ goto l152;
}
context = marryFrameSP(localFP, localSP);
- l151: /* end ensureFrameIsMarried:SP: */;
+ l152: /* end ensureFrameIsMarried:SP: */;
thing = context;
break;
@@ -9304,7 +9311,7 @@
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), thing);
}
- l150: /* end case */;
+ l151: /* end case */;
break;
case 336: /*80*/
/* bytecodePrimAdd */
@@ -9333,7 +9340,7 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l152;
+ goto l153;
}
}
else {
@@ -9348,77 +9355,77 @@
/* begin loadFloatOrIntFrom: */
if ((rcvr & 1)) {
rcvr1 = ((double) ((rcvr >> 1)) );
- goto l153;
+ goto l154;
}
/* begin floatValueOf: */
/* begin is:instanceOf:compactClassIndex: */
if ((rcvr & 1)) {
isFloat = 0;
- goto l155;
+ goto l156;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((rcvr & 1)));
ccIndex = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F;
if (ccIndex == 0) {
isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord)));
- goto l159;
+ goto l160;
}
isFloat = ClassFloatCompactIndex == ccIndex;
- goto l159;
+ goto l160;
isFloat = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)));
- l159: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l155: /* end is:instanceOf:compactClassIndex: */;
+ l160: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l156: /* end is:instanceOf:compactClassIndex: */;
if (isFloat) {
;
fetchFloatAtinto(rcvr + (BaseHeaderSize), result1);
rcvr1 = result1;
- goto l156;
+ goto l157;
}
/* begin primitiveFail */
if (!GIV(primFailCode)) {
GIV(primFailCode) = 1;
}
rcvr1 = 0.0;
- l156: /* end floatValueOf: */;
- l153: /* end loadFloatOrIntFrom: */;
+ l157: /* end floatValueOf: */;
+ l154: /* end loadFloatOrIntFrom: */;
/* begin loadFloatOrIntFrom: */
if ((arg & 1)) {
arg1 = ((double) ((arg >> 1)) );
- goto l154;
+ goto l155;
}
/* begin floatValueOf: */
/* begin is:instanceOf:compactClassIndex: */
if ((arg & 1)) {
isFloat1 = 0;
- goto l157;
+ goto l158;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((arg & 1)));
ccIndex1 = (((usqInt) (longAt(arg))) >> 12) & 0x1F;
if (ccIndex1 == 0) {
isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord)));
- goto l160;
+ goto l161;
}
isFloat1 = ClassFloatCompactIndex == ccIndex1;
- goto l160;
+ goto l161;
isFloat1 = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex1 - 1) << ShiftForWord)));
- l160: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l157: /* end is:instanceOf:compactClassIndex: */;
+ l161: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l158: /* end is:instanceOf:compactClassIndex: */;
if (isFloat1) {
;
fetchFloatAtinto(arg + (BaseHeaderSize), result2);
arg1 = result2;
- goto l158;
+ goto l159;
}
/* begin primitiveFail */
if (!GIV(primFailCode)) {
GIV(primFailCode) = 1;
}
arg1 = 0.0;
- l158: /* end floatValueOf: */;
- l154: /* end loadFloatOrIntFrom: */;
+ l159: /* end floatValueOf: */;
+ l155: /* end loadFloatOrIntFrom: */;
if (!GIV(primFailCode)) {
/* begin pop:thenPushFloat: */
longAtput((sp = GIV(stackPointer) + ((2 - 1) * BytesPerWord)), floatObjectOf(rcvr1 + arg1));
@@ -9433,14 +9440,14 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l152;
+ goto l153;
}
}
GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << ShiftForWord))) + BaseHeaderSize) + ((0 * 2) << ShiftForWord));
GIV(argumentCount) = 1;
goto normalSend;
}
- l152: /* end case */;
+ l153: /* end case */;
break;
case 337: /*81*/
/* bytecodePrimSubtract */
@@ -9469,7 +9476,7 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l161;
+ goto l162;
}
}
else {
@@ -9484,77 +9491,77 @@
/* begin loadFloatOrIntFrom: */
if ((rcvr & 1)) {
rcvr1 = ((double) ((rcvr >> 1)) );
- goto l162;
+ goto l163;
}
/* begin floatValueOf: */
/* begin is:instanceOf:compactClassIndex: */
if ((rcvr & 1)) {
isFloat = 0;
- goto l164;
+ goto l165;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((rcvr & 1)));
ccIndex = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F;
if (ccIndex == 0) {
isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord)));
- goto l168;
+ goto l169;
}
isFloat = ClassFloatCompactIndex == ccIndex;
- goto l168;
+ goto l169;
isFloat = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)));
- l168: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l164: /* end is:instanceOf:compactClassIndex: */;
+ l169: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l165: /* end is:instanceOf:compactClassIndex: */;
if (isFloat) {
;
fetchFloatAtinto(rcvr + (BaseHeaderSize), result1);
rcvr1 = result1;
- goto l165;
+ goto l166;
}
/* begin primitiveFail */
if (!GIV(primFailCode)) {
GIV(primFailCode) = 1;
}
rcvr1 = 0.0;
- l165: /* end floatValueOf: */;
- l162: /* end loadFloatOrIntFrom: */;
+ l166: /* end floatValueOf: */;
+ l163: /* end loadFloatOrIntFrom: */;
/* begin loadFloatOrIntFrom: */
if ((arg & 1)) {
arg1 = ((double) ((arg >> 1)) );
- goto l163;
+ goto l164;
}
/* begin floatValueOf: */
/* begin is:instanceOf:compactClassIndex: */
if ((arg & 1)) {
isFloat1 = 0;
- goto l166;
+ goto l167;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((arg & 1)));
ccIndex1 = (((usqInt) (longAt(arg))) >> 12) & 0x1F;
if (ccIndex1 == 0) {
isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord)));
- goto l169;
+ goto l170;
}
isFloat1 = ClassFloatCompactIndex == ccIndex1;
- goto l169;
+ goto l170;
isFloat1 = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex1 - 1) << ShiftForWord)));
- l169: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l166: /* end is:instanceOf:compactClassIndex: */;
+ l170: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l167: /* end is:instanceOf:compactClassIndex: */;
if (isFloat1) {
;
fetchFloatAtinto(arg + (BaseHeaderSize), result2);
arg1 = result2;
- goto l167;
+ goto l168;
}
/* begin primitiveFail */
if (!GIV(primFailCode)) {
GIV(primFailCode) = 1;
}
arg1 = 0.0;
- l167: /* end floatValueOf: */;
- l163: /* end loadFloatOrIntFrom: */;
+ l168: /* end floatValueOf: */;
+ l164: /* end loadFloatOrIntFrom: */;
if (!GIV(primFailCode)) {
/* begin pop:thenPushFloat: */
longAtput((sp = GIV(stackPointer) + ((2 - 1) * BytesPerWord)), floatObjectOf(rcvr1 - arg1));
@@ -9569,14 +9576,14 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l161;
+ goto l162;
}
}
GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << ShiftForWord))) + BaseHeaderSize) + ((1 * 2) << ShiftForWord));
GIV(argumentCount) = 1;
goto normalSend;
}
- l161: /* end case */;
+ l162: /* end case */;
break;
case 338: /*82*/
/* bytecodePrimLessThanV4 */
@@ -9608,7 +9615,7 @@
else {
goto booleanCheatFalseV4;
}
- goto l170;
+ goto l171;
}
/* begin initPrimCall */
GIV(primFailCode) = 0;
@@ -9616,77 +9623,77 @@
/* begin loadFloatOrIntFrom: */
if ((rcvr & 1)) {
rcvr1 = ((double) ((rcvr >> 1)) );
- goto l171;
+ goto l172;
}
/* begin floatValueOf: */
/* begin is:instanceOf:compactClassIndex: */
if ((rcvr & 1)) {
isFloat = 0;
- goto l173;
+ goto l174;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((rcvr & 1)));
ccIndex = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F;
if (ccIndex == 0) {
isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord)));
- goto l177;
+ goto l178;
}
isFloat = ClassFloatCompactIndex == ccIndex;
- goto l177;
+ goto l178;
isFloat = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)));
- l177: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l173: /* end is:instanceOf:compactClassIndex: */;
+ l178: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l174: /* end is:instanceOf:compactClassIndex: */;
if (isFloat) {
;
fetchFloatAtinto(rcvr + (BaseHeaderSize), result);
rcvr1 = result;
- goto l174;
+ goto l175;
}
/* begin primitiveFail */
if (!GIV(primFailCode)) {
GIV(primFailCode) = 1;
}
rcvr1 = 0.0;
- l174: /* end floatValueOf: */;
- l171: /* end loadFloatOrIntFrom: */;
+ l175: /* end floatValueOf: */;
+ l172: /* end loadFloatOrIntFrom: */;
/* begin loadFloatOrIntFrom: */
if ((arg & 1)) {
arg1 = ((double) ((arg >> 1)) );
- goto l172;
+ goto l173;
}
/* begin floatValueOf: */
/* begin is:instanceOf:compactClassIndex: */
if ((arg & 1)) {
isFloat1 = 0;
- goto l175;
+ goto l176;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((arg & 1)));
ccIndex1 = (((usqInt) (longAt(arg))) >> 12) & 0x1F;
if (ccIndex1 == 0) {
isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord)));
- goto l178;
+ goto l179;
}
isFloat1 = ClassFloatCompactIndex == ccIndex1;
- goto l178;
+ goto l179;
isFloat1 = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex1 - 1) << ShiftForWord)));
- l178: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l175: /* end is:instanceOf:compactClassIndex: */;
+ l179: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l176: /* end is:instanceOf:compactClassIndex: */;
if (isFloat1) {
;
fetchFloatAtinto(arg + (BaseHeaderSize), result1);
arg1 = result1;
- goto l176;
+ goto l177;
}
/* begin primitiveFail */
if (!GIV(primFailCode)) {
GIV(primFailCode) = 1;
}
arg1 = 0.0;
- l176: /* end floatValueOf: */;
- l172: /* end loadFloatOrIntFrom: */;
+ l177: /* end floatValueOf: */;
+ l173: /* end loadFloatOrIntFrom: */;
aBool = rcvr1 < arg1;
if (!GIV(primFailCode)) {
/* begin booleanCheatV4: */
@@ -9696,13 +9703,13 @@
else {
goto booleanCheatFalseV4;
}
- goto l170;
+ goto l171;
}
GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << ShiftForWord))) + BaseHeaderSize) + ((2 * 2) << ShiftForWord));
GIV(argumentCount) = 1;
goto normalSend;
}
- l170: /* end case */;
+ l171: /* end case */;
booleanCheatTrueV4:
/* booleanCheatTrueV4 */
@@ -9725,7 +9732,7 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l316;
+ goto l318;
}
if (bytecode == 244) {
@@ -9735,7 +9742,7 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- goto l316;
+ goto l318;
}
if (bytecode == 243) {
@@ -9746,7 +9753,7 @@
localIP = (localIP + offset) + 1;
currentBytecode = (byteAtPointer(localIP)) + GIV(bytecodeSetSelector);
- goto l316;
+ goto l318;
}
}
currentBytecode = bytecode + GIV(bytecodeSetSelector);
@@ -9754,7 +9761,7 @@
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), GIV(trueObj));
}
- l316: /* end case */;
+ l318: /* end case */;
break;
case 339: /*83*/
/* bytecodePrimGreaterThanV4 */
@@ -9786,7 +9793,7 @@
else {
/* goto booleanCheatFalseV4 */
}
- goto l179;
+ goto l180;
}
/* begin initPrimCall */
GIV(primFailCode) = 0;
@@ -9794,77 +9801,77 @@
/* begin loadFloatOrIntFrom: */
if ((rcvr & 1)) {
rcvr1 = ((double) ((rcvr >> 1)) );
- goto l180;
+ goto l181;
}
/* begin floatValueOf: */
/* begin is:instanceOf:compactClassIndex: */
if ((rcvr & 1)) {
isFloat = 0;
- goto l182;
+ goto l183;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((rcvr & 1)));
ccIndex = (((usqInt) (longAt(rcvr))) >> 12) & 0x1F;
if (ccIndex == 0) {
isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord)));
- goto l186;
+ goto l187;
}
isFloat = ClassFloatCompactIndex == ccIndex;
- goto l186;
+ goto l187;
isFloat = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex - 1) << ShiftForWord)));
- l186: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l182: /* end is:instanceOf:compactClassIndex: */;
+ l187: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l183: /* end is:instanceOf:compactClassIndex: */;
if (isFloat) {
;
fetchFloatAtinto(rcvr + (BaseHeaderSize), result);
rcvr1 = result;
- goto l183;
+ goto l184;
}
/* begin primitiveFail */
if (!GIV(primFailCode)) {
GIV(primFailCode) = 1;
}
rcvr1 = 0.0;
- l183: /* end floatValueOf: */;
- l180: /* end loadFloatOrIntFrom: */;
+ l184: /* end floatValueOf: */;
+ l181: /* end loadFloatOrIntFrom: */;
/* begin loadFloatOrIntFrom: */
if ((arg & 1)) {
arg1 = ((double) ((arg >> 1)) );
- goto l181;
+ goto l182;
}
/* begin floatValueOf: */
/* begin is:instanceOf:compactClassIndex: */
if ((arg & 1)) {
isFloat1 = 0;
- goto l184;
+ goto l185;
}
/* begin isClassOfNonImm:equalTo:compactClassIndex: */
assert(!((arg & 1)));
ccIndex1 = (((usqInt) (longAt(arg))) >> 12) & 0x1F;
if (ccIndex1 == 0) {
isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord)));
- goto l187;
+ goto l188;
}
isFloat1 = ClassFloatCompactIndex == ccIndex1;
- goto l187;
+ goto l188;
isFloat1 = (longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << ShiftForWord))) == (longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << ShiftForWord))) + BaseHeaderSize) + ((ccIndex1 - 1) << ShiftForWord)));
- l187: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
- l184: /* end is:instanceOf:compactClassIndex: */;
+ l188: /* end isClassOfNonImm:equalTo:compactClassIndex: */;
+ l185: /* end is:instanceOf:compactClassIndex: */;
if (isFloat1) {
;
fetchFloatAtinto(arg + (BaseHeaderSize), result1);
arg1 = result1;
- goto l185;
+ goto l186;
}
/* begin primitiveFail */
if (!GIV(primFailCode)) {
GIV(primFailCode) = 1;
}
arg1 = 0.0;
- l185: /* end floatValueOf: */;
- l181: /* end loadFloatOrIntFrom: */;
+ l186: /* end floatValueOf: */;
+ l182: /* end loadFloatOrIntFrom: */;
aBool = rcvr1 > arg1;
if (!GIV(primFailCode)) {
/* begin booleanCheatV4: */
@@ -9874,13 +9881,13 @@
else {
goto booleanCheatFalseV4;
}
- goto l179;
+ goto l180;
}
GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << ShiftForWord))) + BaseHeaderSize) + ((3 * 2) << ShiftForWord));
GIV(argumentCount) = 1;
goto normalSend;
}
- l179: /* end case */;
+ l180: /* end case */;
booleanCheatFalseV4:
/* booleanCheatFalseV4 */
@@ -9904,7 +9911,7 @@
localIP = (localIP + (bytecode - 207)) + 1;
currentBytecode = (byteAtPointer(localIP)) + GIV(bytecodeSetSelector);
- goto l317;
+ goto l319;
}
if (bytecode == 244) {
@@ -9915,14 +9922,14 @@
localIP = (localIP + offset) + 1;
currentBytecode = (byteAtPointer(localIP)) + GIV(bytecodeSetSelector);
- goto l317;
+ goto l319;
}
currentBytecode = bytecode + GIV(bytecodeSetSelector);
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), GIV(falseObj));
}
- l317: /* end case */;
+ l319: /* end case */;
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list