[Vm-dev] [commit][3148] CogVM source as per VMMaker.oscog-eem.956

commits at squeakvm.org commits at squeakvm.org
Mon Nov 24 20:22:04 UTC 2014


Revision: 3148
Author:   eliot
Date:     2014-11-24 12:21:59 -0800 (Mon, 24 Nov 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.956

Fix brain fade in primitive[SmallFloat]Truncated

Modified Paths:
--------------
    branches/Cog/nscogsrc/vm/cointerp.c
    branches/Cog/nscogsrc/vm/cointerp.h
    branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
    branches/Cog/nsspursrc/vm/cointerp.c
    branches/Cog/nsspursrc/vm/cointerp.h
    branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
    branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsspurstacksrc/vm/interp.c
    branches/Cog/sistasrc/vm/cointerp.c
    branches/Cog/sistasrc/vm/cointerp.h
    branches/Cog/sistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.h
    branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.c
    branches/Cog/src/vm/cointerp.c
    branches/Cog/src/vm/cointerp.h
    branches/Cog/src/vm/cointerpmt.c
    branches/Cog/src/vm/cointerpmt.h
    branches/Cog/src/vm/gcc3x-cointerp.c
    branches/Cog/src/vm/gcc3x-cointerpmt.c
    branches/Cog/stacksrc/vm/gcc3x-interp.c
    branches/Cog/stacksrc/vm/interp.c

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

Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c	2014-11-24 19:12:43 UTC (rev 3147)
+++ branches/Cog/nscogsrc/vm/cointerp.c	2014-11-24 20:21:59 UTC (rev 3148)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.951 uuid: f669df37-8b1c-41de-b9ab-a6626a19f914
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.956 uuid: c2eb8c1e-ed43-4316-80b4-781c57cf3f1e
    from
-	CoInterpreter VMMaker.oscog-eem.951 uuid: f669df37-8b1c-41de-b9ab-a6626a19f914
+	CoInterpreter VMMaker.oscog-eem.956 uuid: c2eb8c1e-ed43-4316-80b4-781c57cf3f1e
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.951 uuid: f669df37-8b1c-41de-b9ab-a6626a19f914 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.956 uuid: c2eb8c1e-ed43-4316-80b4-781c57cf3f1e " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -821,6 +821,8 @@
 static sqInt eeInstantiateSmallClassnumSlots(sqInt classPointer, sqInt numSlots) NoDbgRegParms;
 void findStringBeginningWith(char *aCString);
 void findString(char *aCString);
+sqInt floatObjectOf(double aFloat);
+double floatValueOf(sqInt oop);
 void fullGC(void);
 static sqInt fwdTableInit(sqInt blkSize) NoDbgRegParms;
 static sqInt fwdTableSize(sqInt blkSize) NoDbgRegParms;
@@ -854,7 +856,7 @@
 void printWronglySizedContexts(sqInt printContexts);
 static void restoreHeadersFromtofromandtofrom(sqInt firstIn, sqInt lastIn, sqInt hdrBaseIn, sqInt firstOut, sqInt lastOut, sqInt hdrBaseOut) NoDbgRegParms;
 static void runLeakCheckerForFullGC(sqInt fullGCFlag) NoDbgRegParms;
-static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
+static usqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
 static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms;
 static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms;
 static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms;
@@ -1082,8 +1084,6 @@
 sqInt findSelectorOfMethod(sqInt methArg);
 static char * findSPOfon(char *theFP, StackPage *thePage) NoDbgRegParms;
 double floatArg(sqInt index);
-sqInt floatObjectOf(double aFloat);
-double floatValueOf(sqInt oop);
 sqInt followLiteralofMethod(sqInt offset, sqInt methodPointer);
 sqInt forceInterruptCheck(void);
 static char * frameCallerFP(char *theFP) NoDbgRegParms;
@@ -2093,7 +2093,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.951";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.956";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -4344,7 +4344,7 @@
 						? ((longAt(localFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
 						: (byteAt((localFP + FoxIFrameFlags) + 3)) != 0))) {
 					goto commonCallerReturn;
-					goto l254;
+					goto l294;
 				}
 				closure = longAt(localFP + (frameStackedReceiverOffsetNumArgs(((((usqInt)(longAt(localFP + FoxMethod)))) < (startOfMemory())
 	? ((mframeCogMethod(localFP))->cmNumArgs)
@@ -4380,11 +4380,11 @@
 					theMethod = longAt((home + BaseHeaderSize) + (MethodIndex << (shiftForWord())));
 					if ((primitiveIndexOfMethodheader(theMethod, methodHeaderOf(theMethod))) == 198) {
 						unwindContextOrNilOrZero = home;
-						goto l256;
+						goto l296;
 					}
 				}
 				unwindContextOrNilOrZero = ctxtOrNilOrZero;
-			l256:	/* end internalFindUnwindThroughContext: */;
+			l296:	/* end internalFindUnwindThroughContext: */;
 				if (unwindContextOrNilOrZero == GIV(nilObj)) {
 
 					/* error: can't find home on chain; cannot return */
@@ -4396,10 +4396,10 @@
 						: (byteAt((localFP + FoxIFrameFlags) + 2)) != 0)) {
 						assert(isContext(frameContext(localFP)));
 						ourContext = longAt(localFP + FoxThisContext);
-						goto l258;
+						goto l298;
 					}
 					ourContext = marryFrameSP(localFP, localSP);
-				l258:	/* end ensureFrameIsMarried:SP: */;
+				l298:	/* end ensureFrameIsMarried:SP: */;
 					/* begin internalPush: */
 					longAtPointerput((localSP -= BytesPerOop), ourContext);
 					/* begin internalPush: */
@@ -4408,7 +4408,7 @@
 					GIV(argumentCount) = 1;
 					goto normalSend;
 					/* return self */
-					goto l254;
+					goto l294;
 				}
 				if (unwindContextOrNilOrZero != 0) {
 					/* begin internalAboutToReturn:through: */
@@ -4418,10 +4418,10 @@
 						: (byteAt((localFP + FoxIFrameFlags) + 2)) != 0)) {
 						assert(isContext(frameContext(localFP)));
 						ourContext1 = longAt(localFP + FoxThisContext);
-						goto l255;
+						goto l295;
 					}
 					ourContext1 = marryFrameSP(localFP, localSP);
-				l255:	/* end ensureFrameIsMarried:SP: */;
+				l295:	/* end ensureFrameIsMarried:SP: */;
 					/* begin internalPush: */
 					longAtPointerput((localSP -= BytesPerOop), ourContext1);
 					/* begin internalPush: */
@@ -4432,7 +4432,7 @@
 					GIV(argumentCount) = 2;
 					goto normalSend;
 					/* return self */
-					goto l254;
+					goto l294;
 				}
 				contextToReturnTo = null;
 				if (((longAt((home + BaseHeaderSize) + (SenderIndex << (shiftForWord())))) & 1)) {
@@ -4489,10 +4489,10 @@
 							: (byteAt((localFP + FoxIFrameFlags) + 2)) != 0)) {
 							assert(isContext(frameContext(localFP)));
 							ourContext2 = longAt(localFP + FoxThisContext);
-							goto l257;
+							goto l297;
 						}
 						ourContext2 = marryFrameSP(localFP, localSP);
-					l257:	/* end ensureFrameIsMarried:SP: */;
+					l297:	/* end ensureFrameIsMarried:SP: */;
 						/* begin internalPush: */
 						longAtPointerput((localSP -= BytesPerOop), ourContext2);
 						/* begin internalPush: */
@@ -4501,7 +4501,7 @@
 						GIV(argumentCount) = 1;
 						goto normalSend;
 						/* return self */
-						goto l254;
+						goto l294;
 					}
 				}
 				assert(pageListIsWellFormed());
@@ -4611,7 +4611,7 @@
 						GIV(framePointer) = localFP;
 						
 						ceEnterCogCodePopReceiverReg();
-						goto l254;
+						goto l294;
 					}
 					localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
 				}
@@ -4629,7 +4629,7 @@
 
 				/* return self */
 			}
-		l254:	/* end case */;
+		l294:	/* end case */;
 			break;
 		case 121:
 			/* returnTrue */
@@ -4748,27 +4748,27 @@
 							fp = (thePage->headFP);
 							if (fp == theFP) {
 								frameAbove = 0;
-								goto l261;
+								goto l301;
 							}
 							while (((callerFP = frameCallerFP(fp))) != 0) {
 								if (callerFP == theFP) {
 									frameAbove = fp;
-									goto l261;
+									goto l301;
 								}
 								fp = callerFP;
 							}
 							error("did not find theFP in stack page");
 							frameAbove = 0;
-						l261:	/* end findFrameAbove:inPage: */;
+						l301:	/* end findFrameAbove:inPage: */;
 							/* begin newStackPage */
 							lruOrFree = ((mostRecentlyUsedPage())->nextPage);
 							if (isFree(lruOrFree)) {
 								newPage = lruOrFree;
-								goto l262;
+								goto l302;
 							}
 							divorceFramesIn(lruOrFree);
 							newPage = lruOrFree;
-						l262:	/* end newStackPage */;
+						l302:	/* end newStackPage */;
 							assert(newPage == GIV(stackPage));
 							moveFramesInthroughtoPage(thePage, frameAbove, newPage);
 							markStackPageMostRecentlyUsed(newPage);
@@ -4792,7 +4792,7 @@
 							longAtput((sp2 = GIV(stackPointer) - BytesPerWord), GIV(instructionPointer));
 							GIV(stackPointer) = sp2;
 							ceSendAborttonumArgs(longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SelectorCannotReturn << (shiftForWord()))), contextToReturnFrom, 1);
-							goto l260;
+							goto l300;
 						}
 						GIV(instructionPointer) = 0;
 						thePage = makeBaseFrameFor(contextToReturnTo);
@@ -4830,7 +4830,7 @@
 							GIV(framePointer) = localFP;
 							
 							ceEnterCogCodePopReceiverReg();
-							goto l260;
+							goto l300;
 						}
 						localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
 					}
@@ -4848,8 +4848,8 @@
 					currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
 					/* return self */
-				l260:	/* end baseFrameReturn */;
-					goto l259;
+				l300:	/* end baseFrameReturn */;
+					goto l299;
 				}
 				/* begin frameCallerSavedIP: */
 				localIP = pointerForOop(longAt(localFP + FoxCallerSavedIP));
@@ -4877,7 +4877,7 @@
 						GIV(framePointer) = localFP;
 						
 						ceEnterCogCodePopReceiverReg();
-						goto l259;
+						goto l299;
 					}
 					localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
 				}
@@ -4894,7 +4894,7 @@
 
 				longAtPointerput(localSP, localReturnValue);
 			}
-		l259:	/* end case */;
+		l299:	/* end case */;
 			break;
 		case 126:
 			/* dynamicSuperSendBytecode */
@@ -5192,7 +5192,7 @@
 						GIV(newMethod) = GIV(methodCache)[probe + MethodCacheMethod];
 						primitiveFunctionPointer = ((void (*)()) (GIV(methodCache)[probe + MethodCachePrimFunction]));
 						ok = 1;
-						goto l266;
+						goto l306;
 					}
 
 					/* second probe */
@@ -5203,7 +5203,7 @@
 						GIV(newMethod) = GIV(methodCache)[probe + MethodCacheMethod];
 						primitiveFunctionPointer = ((void (*)()) (GIV(methodCache)[probe + MethodCachePrimFunction]));
 						ok = 1;
-						goto l266;
+						goto l306;
 					}
 					probe = (((usqInt) hash) >> 2) & MethodCacheMask;
 					if (((GIV(methodCache)[probe + MethodCacheSelector]) == GIV(messageSelector))
@@ -5211,10 +5211,10 @@
 						GIV(newMethod) = GIV(methodCache)[probe + MethodCacheMethod];
 						primitiveFunctionPointer = ((void (*)()) (GIV(methodCache)[probe + MethodCachePrimFunction]));
 						ok = 1;
-						goto l266;
+						goto l306;
 					}
 					ok = 0;
-				l266:	/* end inlineLookupInMethodCacheSel:classTag: */;
+				l306:	/* end inlineLookupInMethodCacheSel:classTag: */;
 					if (ok) {
 						/* begin ifAppropriateCompileToNativeCode:selector: */
 						methodHeader2 = longAt((GIV(newMethod) + BaseHeaderSize) + (HeaderIndex << (shiftForWord())));
@@ -5252,7 +5252,7 @@
 						localFP = pointerForOop(GIV(framePointer));
 						addNewMethodToCache(GIV(lkupClass));
 					}
-				l263:	/* end internalFindNewMethod */;
+				l303:	/* end internalFindNewMethod */;
 					/* begin internalExecuteNewMethod */
 					if (primitiveFunctionPointer != 0) {
 						if ((((unsigned long) primitiveFunctionPointer)) <= MaxQuickPrimitiveIndex) {
@@ -5265,31 +5265,31 @@
 								/* begin internalStackTopPut: */
 								longAtPointerput(localSP, longAt(((longAtPointer(localSP)) + BaseHeaderSize) + ((localPrimIndex - 264) << (shiftForWord()))));
 								1;
-								goto l267;
+								goto l307;
 							}
 							if (localPrimIndex == 256) {
 								1;
-								goto l267;
+								goto l307;
 							}
 							if (localPrimIndex == 257) {
 								longAtPointerput(localSP, GIV(trueObj));
 								1;
-								goto l267;
+								goto l307;
 							}
 							if (localPrimIndex == 258) {
 								longAtPointerput(localSP, GIV(falseObj));
 								1;
-								goto l267;
+								goto l307;
 							}
 							if (localPrimIndex == 259) {
 								longAtPointerput(localSP, GIV(nilObj));
 								1;
-								goto l267;
+								goto l307;
 							}
 							longAtPointerput(localSP, (((localPrimIndex - 261) << 1) | 1));
 							1;
-						l267:	/* end internalQuickPrimitiveResponse */;
-							goto l265;
+						l307:	/* end internalQuickPrimitiveResponse */;
+							goto l305;
 						}
 						/* begin externalizeIPandSP */
 						assert((((usqInt)localIP)) != (ceReturnToInterpreterPC()));
@@ -5349,7 +5349,7 @@
 							returntoExecutive(popStack(), 1);
 							browserPluginReturnIfNeeded();
 							null;
-							goto l265;
+							goto l305;
 						}
 					}
 					if (methodHasCogMethod(GIV(newMethod))) {
@@ -5430,11 +5430,11 @@
 										table = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (PrimErrTableIndex << (shiftForWord())));
 										if (GIV(primFailCode) <= ((lastPointerOf(table)) / BytesPerWord)) {
 											errorCode = longAt((table + BaseHeaderSize) + ((GIV(primFailCode) - 1) << (shiftForWord())));
-											goto l264;
+											goto l304;
 										}
 									}
 									errorCode = ((GIV(primFailCode) << 1) | 1);
-								l264:	/* end getErrorObjectFromPrimFailCode */;
+								l304:	/* end getErrorObjectFromPrimFailCode */;
 									longAtPointerput(localSP, errorCode);
 								}
 								GIV(primFailCode) = 0;
@@ -5458,7 +5458,7 @@
 							localFP = pointerForOop(GIV(framePointer));
 						}
 					}
-				l265:	/* end internalExecuteNewMethod */;
+				l305:	/* end internalExecuteNewMethod */;
 					/* begin fetchNextBytecode */
 					currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
@@ -6408,53 +6408,54 @@
 					/* begin loadFloatOrIntFrom: */
 					if ((rcvr & 1)) {
 						rcvr1 = ((double) ((rcvr >> 1)) );
-						goto l17;
+						goto l18;
 					}
 					/* begin floatValueOf: */
 					/* begin is:instanceOf:compactClassIndex: */
-					classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					if ((rcvr & 1)) {
 						isFloat = 0;
-						goto l16;
+						goto l17;
 					}
 					/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+					classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					assert(!((rcvr & 1)));
 					ccIndex = (((usqInt) (longAt(rcvr))) >> (compactClassFieldLSB())) & 0x1F;
 					if (ccIndex == 0) {
 						isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == classOop;
-						goto l16;
+						goto l21;
 					}
 					isFloat = ClassFloatCompactIndex == ccIndex;
-					goto l16;
+					goto l21;
 
 					isFloat = classOop == (fetchPointerofObject(ccIndex - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-				l16:	/* end is:instanceOf:compactClassIndex: */;
+				l21:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+				l17:	/* end is:instanceOf:compactClassIndex: */;
 					if (isFloat) {
 						;
 						fetchFloatAtinto(rcvr + BaseHeaderSize, result1);
 						rcvr1 = result1;
-						goto l19;
+						goto l16;
 					}
 					/* begin primitiveFail */
 					if (!GIV(primFailCode)) {
 						GIV(primFailCode) = 1;
 					}
 					rcvr1 = 0.0;
-				l19:	/* end floatValueOf: */;
-				l17:	/* end loadFloatOrIntFrom: */;
+				l16:	/* end floatValueOf: */;
+				l18:	/* end loadFloatOrIntFrom: */;
 					/* begin loadFloatOrIntFrom: */
 					if ((arg & 1)) {
 						arg1 = ((double) ((arg >> 1)) );
-						goto l20;
+						goto l22;
 					}
 					/* begin floatValueOf: */
 					/* begin is:instanceOf:compactClassIndex: */
-					classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					if ((arg & 1)) {
 						isFloat1 = 0;
-						goto l15;
+						goto l20;
 					}
 					/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+					classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					assert(!((arg & 1)));
 					ccIndex1 = (((usqInt) (longAt(arg))) >> (compactClassFieldLSB())) & 0x1F;
 					if (ccIndex1 == 0) {
@@ -6465,20 +6466,21 @@
 					goto l15;
 
 					isFloat1 = classOop1 == (fetchPointerofObject(ccIndex1 - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-				l15:	/* end is:instanceOf:compactClassIndex: */;
+				l15:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+				l20:	/* end is:instanceOf:compactClassIndex: */;
 					if (isFloat1) {
 						;
 						fetchFloatAtinto(arg + BaseHeaderSize, result2);
 						arg1 = result2;
-						goto l18;
+						goto l19;
 					}
 					/* begin primitiveFail */
 					if (!GIV(primFailCode)) {
 						GIV(primFailCode) = 1;
 					}
 					arg1 = 0.0;
-				l18:	/* end floatValueOf: */;
-				l20:	/* end loadFloatOrIntFrom: */;
+				l19:	/* end floatValueOf: */;
+				l22:	/* end loadFloatOrIntFrom: */;
 					if (!GIV(primFailCode)) {
 						/* begin pop:thenPushFloat: */
 						longAtput((sp = GIV(stackPointer) + ((2 - 1) * BytesPerWord)), floatObjectOf(rcvr1 + arg1));
@@ -6532,7 +6534,7 @@
 						/* begin fetchNextBytecode */
 						currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
-						goto l21;
+						goto l23;
 					}
 				}
 				else {
@@ -6547,77 +6549,79 @@
 					/* begin loadFloatOrIntFrom: */
 					if ((rcvr & 1)) {
 						rcvr1 = ((double) ((rcvr >> 1)) );
-						goto l24;
+						goto l27;
 					}
 					/* begin floatValueOf: */
 					/* begin is:instanceOf:compactClassIndex: */
-					classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					if ((rcvr & 1)) {
 						isFloat = 0;
-						goto l23;
+						goto l26;
 					}
 					/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+					classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					assert(!((rcvr & 1)));
 					ccIndex = (((usqInt) (longAt(rcvr))) >> (compactClassFieldLSB())) & 0x1F;
 					if (ccIndex == 0) {
 						isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == classOop;
-						goto l23;
+						goto l30;
 					}
 					isFloat = ClassFloatCompactIndex == ccIndex;
-					goto l23;
+					goto l30;
 
 					isFloat = classOop == (fetchPointerofObject(ccIndex - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-				l23:	/* end is:instanceOf:compactClassIndex: */;
+				l30:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+				l26:	/* end is:instanceOf:compactClassIndex: */;
 					if (isFloat) {
 						;
 						fetchFloatAtinto(rcvr + BaseHeaderSize, result1);
 						rcvr1 = result1;
-						goto l26;
+						goto l25;
 					}
 					/* begin primitiveFail */
 					if (!GIV(primFailCode)) {
 						GIV(primFailCode) = 1;
 					}
 					rcvr1 = 0.0;
-				l26:	/* end floatValueOf: */;
-				l24:	/* end loadFloatOrIntFrom: */;
+				l25:	/* end floatValueOf: */;
+				l27:	/* end loadFloatOrIntFrom: */;
 					/* begin loadFloatOrIntFrom: */
 					if ((arg & 1)) {
 						arg1 = ((double) ((arg >> 1)) );
-						goto l27;
+						goto l31;
 					}
 					/* begin floatValueOf: */
 					/* begin is:instanceOf:compactClassIndex: */
-					classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					if ((arg & 1)) {
 						isFloat1 = 0;
-						goto l22;
+						goto l29;
 					}
 					/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+					classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					assert(!((arg & 1)));
 					ccIndex1 = (((usqInt) (longAt(arg))) >> (compactClassFieldLSB())) & 0x1F;
 					if (ccIndex1 == 0) {
 						isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == classOop1;
-						goto l22;
+						goto l24;
 					}
 					isFloat1 = ClassFloatCompactIndex == ccIndex1;
-					goto l22;
+					goto l24;
 
 					isFloat1 = classOop1 == (fetchPointerofObject(ccIndex1 - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-				l22:	/* end is:instanceOf:compactClassIndex: */;
+				l24:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+				l29:	/* end is:instanceOf:compactClassIndex: */;
 					if (isFloat1) {
 						;
 						fetchFloatAtinto(arg + BaseHeaderSize, result2);
 						arg1 = result2;
-						goto l25;
+						goto l28;
 					}
 					/* begin primitiveFail */
 					if (!GIV(primFailCode)) {
 						GIV(primFailCode) = 1;
 					}
 					arg1 = 0.0;
-				l25:	/* end floatValueOf: */;
-				l27:	/* end loadFloatOrIntFrom: */;
+				l28:	/* end floatValueOf: */;
+				l31:	/* end loadFloatOrIntFrom: */;
 					if (!GIV(primFailCode)) {
 						/* begin pop:thenPushFloat: */
 						longAtput((sp = GIV(stackPointer) + ((2 - 1) * BytesPerWord)), floatObjectOf(rcvr1 - arg1));
@@ -6632,7 +6636,7 @@
 						/* begin fetchNextBytecode */
 						currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
-						goto l21;
+						goto l23;
 					}
 				}
 				/* begin fetchPointer:ofObject: */
@@ -6640,7 +6644,7 @@
 				GIV(argumentCount) = 1;
 				goto normalSend;
 			}
-		l21:	/* end case */;
+		l23:	/* end case */;
 			break;
 		case 178:
 			/* bytecodePrimLessThan */
@@ -6674,7 +6678,7 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l28;
+					goto l32;
 				}
 				/* begin initPrimCall */
 				GIV(primFailCode) = 0;
@@ -6682,77 +6686,79 @@
 				/* begin loadFloatOrIntFrom: */
 				if ((rcvr & 1)) {
 					rcvr1 = ((double) ((rcvr >> 1)) );
-					goto l31;
+					goto l36;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((rcvr & 1)) {
 					isFloat = 0;
-					goto l30;
+					goto l35;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((rcvr & 1)));
 				ccIndex = (((usqInt) (longAt(rcvr))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex == 0) {
 					isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == classOop;
-					goto l30;
+					goto l39;
 				}
 				isFloat = ClassFloatCompactIndex == ccIndex;
-				goto l30;
+				goto l39;
 
 				isFloat = classOop == (fetchPointerofObject(ccIndex - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l30:	/* end is:instanceOf:compactClassIndex: */;
+			l39:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l35:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat) {
 					;
 					fetchFloatAtinto(rcvr + BaseHeaderSize, result);
 					rcvr1 = result;
-					goto l33;
+					goto l34;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				rcvr1 = 0.0;
-			l33:	/* end floatValueOf: */;
-			l31:	/* end loadFloatOrIntFrom: */;
+			l34:	/* end floatValueOf: */;
+			l36:	/* end loadFloatOrIntFrom: */;
 				/* begin loadFloatOrIntFrom: */
 				if ((arg & 1)) {
 					arg1 = ((double) ((arg >> 1)) );
-					goto l34;
+					goto l40;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((arg & 1)) {
 					isFloat1 = 0;
-					goto l29;
+					goto l38;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((arg & 1)));
 				ccIndex1 = (((usqInt) (longAt(arg))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex1 == 0) {
 					isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == classOop1;
-					goto l29;
+					goto l33;
 				}
 				isFloat1 = ClassFloatCompactIndex == ccIndex1;
-				goto l29;
+				goto l33;
 
 				isFloat1 = classOop1 == (fetchPointerofObject(ccIndex1 - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l29:	/* end is:instanceOf:compactClassIndex: */;
+			l33:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l38:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat1) {
 					;
 					fetchFloatAtinto(arg + BaseHeaderSize, result1);
 					arg1 = result1;
-					goto l32;
+					goto l37;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				arg1 = 0.0;
-			l32:	/* end floatValueOf: */;
-			l34:	/* end loadFloatOrIntFrom: */;
+			l37:	/* end floatValueOf: */;
+			l40:	/* end loadFloatOrIntFrom: */;
 				aBool = rcvr1 < arg1;
 				if (!GIV(primFailCode)) {
 					/* begin booleanCheat: */
@@ -6762,14 +6768,14 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l28;
+					goto l32;
 				}
 				/* begin fetchPointer:ofObject: */
 				GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << (shiftForWord())))) + BaseHeaderSize) + ((2 * 2) << (shiftForWord())));
 				GIV(argumentCount) = 1;
 				goto normalSend;
 			}
-		l28:	/* end case */;
+		l32:	/* end case */;
 			
 		booleanCheatTrue:
 			/* booleanCheatTrue */
@@ -6793,7 +6799,7 @@
 						/* begin fetchNextBytecode */
 						currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
-						goto l268;
+						goto l308;
 					}
 					if (bytecode == 172) {
 
@@ -6803,7 +6809,7 @@
 						/* begin fetchNextBytecode */
 						currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
-						goto l268;
+						goto l308;
 					}
 					if (bytecode > 167) {
 
@@ -6814,7 +6820,7 @@
 						localIP = (localIP + offset) + 1;
 						currentBytecode = (byteAtPointer(localIP)) + GIV(bytecodeSetSelector);
 
-						goto l268;
+						goto l308;
 					}
 				}
 				currentBytecode = bytecode + GIV(bytecodeSetSelector);
@@ -6822,7 +6828,7 @@
 				/* begin internalPush: */
 				longAtPointerput((localSP -= BytesPerOop), GIV(trueObj));
 			}
-		l268:	/* end case */;
+		l308:	/* end case */;
 			break;
 		case 179:
 			/* bytecodePrimGreaterThan */
@@ -6856,7 +6862,7 @@
 					else {
 						/* goto booleanCheatFalse */
 					}
-					goto l35;
+					goto l41;
 				}
 				/* begin initPrimCall */
 				GIV(primFailCode) = 0;
@@ -6864,77 +6870,79 @@
 				/* begin loadFloatOrIntFrom: */
 				if ((rcvr & 1)) {
 					rcvr1 = ((double) ((rcvr >> 1)) );
-					goto l38;
+					goto l45;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((rcvr & 1)) {
 					isFloat = 0;
-					goto l37;
+					goto l44;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((rcvr & 1)));
 				ccIndex = (((usqInt) (longAt(rcvr))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex == 0) {
 					isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == classOop;
-					goto l37;
+					goto l48;
 				}
 				isFloat = ClassFloatCompactIndex == ccIndex;
-				goto l37;
+				goto l48;
 
 				isFloat = classOop == (fetchPointerofObject(ccIndex - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l37:	/* end is:instanceOf:compactClassIndex: */;
+			l48:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l44:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat) {
 					;
 					fetchFloatAtinto(rcvr + BaseHeaderSize, result);
 					rcvr1 = result;
-					goto l40;
+					goto l43;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				rcvr1 = 0.0;
-			l40:	/* end floatValueOf: */;
-			l38:	/* end loadFloatOrIntFrom: */;
+			l43:	/* end floatValueOf: */;
+			l45:	/* end loadFloatOrIntFrom: */;
 				/* begin loadFloatOrIntFrom: */
 				if ((arg & 1)) {
 					arg1 = ((double) ((arg >> 1)) );
-					goto l41;
+					goto l49;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((arg & 1)) {
 					isFloat1 = 0;
-					goto l36;
+					goto l47;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((arg & 1)));
 				ccIndex1 = (((usqInt) (longAt(arg))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex1 == 0) {
 					isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == classOop1;
-					goto l36;
+					goto l42;
 				}
 				isFloat1 = ClassFloatCompactIndex == ccIndex1;
-				goto l36;
+				goto l42;
 
 				isFloat1 = classOop1 == (fetchPointerofObject(ccIndex1 - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l36:	/* end is:instanceOf:compactClassIndex: */;
+			l42:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l47:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat1) {
 					;
 					fetchFloatAtinto(arg + BaseHeaderSize, result1);
 					arg1 = result1;
-					goto l39;
+					goto l46;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				arg1 = 0.0;
-			l39:	/* end floatValueOf: */;
-			l41:	/* end loadFloatOrIntFrom: */;
+			l46:	/* end floatValueOf: */;
+			l49:	/* end loadFloatOrIntFrom: */;
 				aBool = rcvr1 > arg1;
 				if (!GIV(primFailCode)) {
 					/* begin booleanCheat: */
@@ -6944,14 +6952,14 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l35;
+					goto l41;
 				}
 				/* begin fetchPointer:ofObject: */
 				GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << (shiftForWord())))) + BaseHeaderSize) + ((3 * 2) << (shiftForWord())));
 				GIV(argumentCount) = 1;
 				goto normalSend;
 			}
-		l35:	/* end case */;
+		l41:	/* end case */;
 			
 		booleanCheatFalse:
 			/* booleanCheatFalse */
@@ -6975,7 +6983,7 @@
 					localIP = (localIP + (bytecode - 151)) + 1;
 					currentBytecode = (byteAtPointer(localIP)) + GIV(bytecodeSetSelector);
 
-					goto l269;
+					goto l309;
 				}
 				if (bytecode == 172) {
 
@@ -6986,14 +6994,14 @@
 					localIP = (localIP + offset) + 1;
 					currentBytecode = (byteAtPointer(localIP)) + GIV(bytecodeSetSelector);
 
-					goto l269;
+					goto l309;
 				}
 				currentBytecode = bytecode + GIV(bytecodeSetSelector);
 
 				/* begin internalPush: */
 				longAtPointerput((localSP -= BytesPerOop), GIV(falseObj));
 			}
-		l269:	/* end case */;
+		l309:	/* end case */;
 			break;
 		case 180:
 			/* bytecodePrimLessOrEqual */
@@ -7027,7 +7035,7 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l42;
+					goto l50;
 				}
 				/* begin initPrimCall */
 				GIV(primFailCode) = 0;
@@ -7035,77 +7043,79 @@
 				/* begin loadFloatOrIntFrom: */
 				if ((rcvr & 1)) {
 					rcvr1 = ((double) ((rcvr >> 1)) );
-					goto l45;
+					goto l54;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((rcvr & 1)) {
 					isFloat = 0;
-					goto l44;
+					goto l53;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((rcvr & 1)));
 				ccIndex = (((usqInt) (longAt(rcvr))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex == 0) {
 					isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == classOop;
-					goto l44;
+					goto l57;
 				}
 				isFloat = ClassFloatCompactIndex == ccIndex;
-				goto l44;
+				goto l57;
 
 				isFloat = classOop == (fetchPointerofObject(ccIndex - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l44:	/* end is:instanceOf:compactClassIndex: */;
+			l57:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l53:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat) {
 					;
 					fetchFloatAtinto(rcvr + BaseHeaderSize, result);
 					rcvr1 = result;
-					goto l47;
+					goto l52;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				rcvr1 = 0.0;
-			l47:	/* end floatValueOf: */;
-			l45:	/* end loadFloatOrIntFrom: */;
+			l52:	/* end floatValueOf: */;
+			l54:	/* end loadFloatOrIntFrom: */;
 				/* begin loadFloatOrIntFrom: */
 				if ((arg & 1)) {
 					arg1 = ((double) ((arg >> 1)) );
-					goto l48;
+					goto l58;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((arg & 1)) {
 					isFloat1 = 0;
-					goto l43;
+					goto l56;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((arg & 1)));
 				ccIndex1 = (((usqInt) (longAt(arg))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex1 == 0) {
 					isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == classOop1;
-					goto l43;
+					goto l51;
 				}
 				isFloat1 = ClassFloatCompactIndex == ccIndex1;
-				goto l43;
+				goto l51;
 
 				isFloat1 = classOop1 == (fetchPointerofObject(ccIndex1 - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l43:	/* end is:instanceOf:compactClassIndex: */;
+			l51:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l56:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat1) {
 					;
 					fetchFloatAtinto(arg + BaseHeaderSize, result1);
 					arg1 = result1;
-					goto l46;
+					goto l55;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				arg1 = 0.0;
-			l46:	/* end floatValueOf: */;
-			l48:	/* end loadFloatOrIntFrom: */;
+			l55:	/* end floatValueOf: */;
+			l58:	/* end loadFloatOrIntFrom: */;
 				aBool = rcvr1 <= arg1;
 				if (!GIV(primFailCode)) {
 					/* begin booleanCheat: */
@@ -7115,14 +7125,14 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l42;
+					goto l50;
 				}
 				/* begin fetchPointer:ofObject: */
 				GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << (shiftForWord())))) + BaseHeaderSize) + ((4 * 2) << (shiftForWord())));
 				GIV(argumentCount) = 1;
 				goto normalSend;
 			}
-		l42:	/* end case */;
+		l50:	/* end case */;
 			break;
 		case 181:
 			/* bytecodePrimGreaterOrEqual */
@@ -7156,7 +7166,7 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l49;
+					goto l59;
 				}
 				/* begin initPrimCall */
 				GIV(primFailCode) = 0;
@@ -7164,77 +7174,79 @@
 				/* begin loadFloatOrIntFrom: */
 				if ((rcvr & 1)) {
 					rcvr1 = ((double) ((rcvr >> 1)) );
-					goto l52;
+					goto l63;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((rcvr & 1)) {
 					isFloat = 0;
-					goto l51;
+					goto l62;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((rcvr & 1)));
 				ccIndex = (((usqInt) (longAt(rcvr))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex == 0) {
 					isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == classOop;
-					goto l51;
+					goto l66;
 				}
 				isFloat = ClassFloatCompactIndex == ccIndex;
-				goto l51;
+				goto l66;
 
 				isFloat = classOop == (fetchPointerofObject(ccIndex - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l51:	/* end is:instanceOf:compactClassIndex: */;
+			l66:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l62:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat) {
 					;
 					fetchFloatAtinto(rcvr + BaseHeaderSize, result);
 					rcvr1 = result;
-					goto l54;
+					goto l61;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				rcvr1 = 0.0;
-			l54:	/* end floatValueOf: */;
-			l52:	/* end loadFloatOrIntFrom: */;
+			l61:	/* end floatValueOf: */;
+			l63:	/* end loadFloatOrIntFrom: */;
 				/* begin loadFloatOrIntFrom: */
 				if ((arg & 1)) {
 					arg1 = ((double) ((arg >> 1)) );
-					goto l55;
+					goto l67;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((arg & 1)) {
 					isFloat1 = 0;
-					goto l50;
+					goto l65;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((arg & 1)));
 				ccIndex1 = (((usqInt) (longAt(arg))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex1 == 0) {
 					isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == classOop1;
-					goto l50;
+					goto l60;
 				}
 				isFloat1 = ClassFloatCompactIndex == ccIndex1;
-				goto l50;
+				goto l60;
 
 				isFloat1 = classOop1 == (fetchPointerofObject(ccIndex1 - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l50:	/* end is:instanceOf:compactClassIndex: */;
+			l60:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l65:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat1) {
 					;
 					fetchFloatAtinto(arg + BaseHeaderSize, result1);
 					arg1 = result1;
-					goto l53;
+					goto l64;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				arg1 = 0.0;
-			l53:	/* end floatValueOf: */;
-			l55:	/* end loadFloatOrIntFrom: */;
+			l64:	/* end floatValueOf: */;
+			l67:	/* end loadFloatOrIntFrom: */;
 				aBool = rcvr1 >= arg1;
 				if (!GIV(primFailCode)) {
 					/* begin booleanCheat: */
@@ -7244,14 +7256,14 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l49;
+					goto l59;
 				}
 				/* begin fetchPointer:ofObject: */
 				GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << (shiftForWord())))) + BaseHeaderSize) + ((5 * 2) << (shiftForWord())));
 				GIV(argumentCount) = 1;
 				goto normalSend;
 			}
-		l49:	/* end case */;
+		l59:	/* end case */;
 			break;
 		case 182:
 			/* bytecodePrimEqual */
@@ -7281,7 +7293,7 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l56;
+					goto l68;
 				}
 				/* begin initPrimCall */
 				GIV(primFailCode) = 0;
@@ -7289,77 +7301,79 @@
 				/* begin loadFloatOrIntFrom: */
 				if ((rcvr & 1)) {
 					rcvr1 = ((double) ((rcvr >> 1)) );
-					goto l59;
+					goto l72;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((rcvr & 1)) {
 					isFloat = 0;
-					goto l58;
+					goto l71;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((rcvr & 1)));
 				ccIndex = (((usqInt) (longAt(rcvr))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex == 0) {
 					isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == classOop;
-					goto l58;
+					goto l75;
 				}
 				isFloat = ClassFloatCompactIndex == ccIndex;
-				goto l58;
+				goto l75;
 
 				isFloat = classOop == (fetchPointerofObject(ccIndex - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l58:	/* end is:instanceOf:compactClassIndex: */;
+			l75:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l71:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat) {
 					;
 					fetchFloatAtinto(rcvr + BaseHeaderSize, result);
 					rcvr1 = result;
-					goto l61;
+					goto l70;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				rcvr1 = 0.0;
-			l61:	/* end floatValueOf: */;
-			l59:	/* end loadFloatOrIntFrom: */;
+			l70:	/* end floatValueOf: */;
+			l72:	/* end loadFloatOrIntFrom: */;
 				/* begin loadFloatOrIntFrom: */
 				if ((arg & 1)) {
 					arg1 = ((double) ((arg >> 1)) );
-					goto l62;
+					goto l76;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((arg & 1)) {
 					isFloat1 = 0;
-					goto l57;
+					goto l74;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((arg & 1)));
 				ccIndex1 = (((usqInt) (longAt(arg))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex1 == 0) {
 					isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == classOop1;
-					goto l57;
+					goto l69;
 				}
 				isFloat1 = ClassFloatCompactIndex == ccIndex1;
-				goto l57;
+				goto l69;
 
 				isFloat1 = classOop1 == (fetchPointerofObject(ccIndex1 - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l57:	/* end is:instanceOf:compactClassIndex: */;
+			l69:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l74:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat1) {
 					;
 					fetchFloatAtinto(arg + BaseHeaderSize, result1);
 					arg1 = result1;
-					goto l60;
+					goto l73;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				arg1 = 0.0;
-			l60:	/* end floatValueOf: */;
-			l62:	/* end loadFloatOrIntFrom: */;
+			l73:	/* end floatValueOf: */;
+			l76:	/* end loadFloatOrIntFrom: */;
 				aBool = rcvr1 == arg1;
 				if (!GIV(primFailCode)) {
 					/* begin booleanCheat: */
@@ -7369,14 +7383,14 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l56;
+					goto l68;
 				}
 				/* begin fetchPointer:ofObject: */
 				GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << (shiftForWord())))) + BaseHeaderSize) + ((6 * 2) << (shiftForWord())));
 				GIV(argumentCount) = 1;
 				goto normalSend;
 			}
-		l56:	/* end case */;
+		l68:	/* end case */;
 			break;
 		case 183:
 			/* bytecodePrimNotEqual */
@@ -7406,7 +7420,7 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l63;
+					goto l77;
 				}
 				/* begin initPrimCall */
 				GIV(primFailCode) = 0;
@@ -7414,77 +7428,79 @@
 				/* begin loadFloatOrIntFrom: */
 				if ((rcvr & 1)) {
 					rcvr1 = ((double) ((rcvr >> 1)) );
-					goto l66;
+					goto l81;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((rcvr & 1)) {
 					isFloat = 0;
-					goto l65;
+					goto l80;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((rcvr & 1)));
 				ccIndex = (((usqInt) (longAt(rcvr))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex == 0) {
 					isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == classOop;
-					goto l65;
+					goto l84;
 				}
 				isFloat = ClassFloatCompactIndex == ccIndex;
-				goto l65;
+				goto l84;
 
 				isFloat = classOop == (fetchPointerofObject(ccIndex - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l65:	/* end is:instanceOf:compactClassIndex: */;
+			l84:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l80:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat) {
 					;
 					fetchFloatAtinto(rcvr + BaseHeaderSize, result);
 					rcvr1 = result;
-					goto l68;
+					goto l79;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				rcvr1 = 0.0;
-			l68:	/* end floatValueOf: */;
-			l66:	/* end loadFloatOrIntFrom: */;
+			l79:	/* end floatValueOf: */;
+			l81:	/* end loadFloatOrIntFrom: */;
 				/* begin loadFloatOrIntFrom: */
 				if ((arg & 1)) {
 					arg1 = ((double) ((arg >> 1)) );
-					goto l69;
+					goto l85;
 				}
 				/* begin floatValueOf: */
 				/* begin is:instanceOf:compactClassIndex: */
-				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				if ((arg & 1)) {
 					isFloat1 = 0;
-					goto l64;
+					goto l83;
 				}
 				/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+				classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 				assert(!((arg & 1)));
 				ccIndex1 = (((usqInt) (longAt(arg))) >> (compactClassFieldLSB())) & 0x1F;
 				if (ccIndex1 == 0) {
 					isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == classOop1;
-					goto l64;
+					goto l78;
 				}
 				isFloat1 = ClassFloatCompactIndex == ccIndex1;
-				goto l64;
+				goto l78;
 
 				isFloat1 = classOop1 == (fetchPointerofObject(ccIndex1 - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-			l64:	/* end is:instanceOf:compactClassIndex: */;
+			l78:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+			l83:	/* end is:instanceOf:compactClassIndex: */;
 				if (isFloat1) {
 					;
 					fetchFloatAtinto(arg + BaseHeaderSize, result1);
 					arg1 = result1;
-					goto l67;
+					goto l82;
 				}
 				/* begin primitiveFail */
 				if (!GIV(primFailCode)) {
 					GIV(primFailCode) = 1;
 				}
 				arg1 = 0.0;
-			l67:	/* end floatValueOf: */;
-			l69:	/* end loadFloatOrIntFrom: */;
+			l82:	/* end floatValueOf: */;
+			l85:	/* end loadFloatOrIntFrom: */;
 				aBool = rcvr1 == arg1;
 				if (!GIV(primFailCode)) {
 					/* begin booleanCheat: */
@@ -7494,14 +7510,14 @@
 					else {
 						goto booleanCheatFalse;
 					}
-					goto l63;
+					goto l77;
 				}
 				/* begin fetchPointer:ofObject: */
 				GIV(messageSelector) = longAt(((longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (SpecialSelectors << (shiftForWord())))) + BaseHeaderSize) + ((7 * 2) << (shiftForWord())));
 				GIV(argumentCount) = 1;
 				goto normalSend;
 			}
-		l63:	/* end case */;
+		l77:	/* end case */;
 			break;
 		case 184:
 			/* bytecodePrimMultiply */
@@ -7536,7 +7552,7 @@
 						/* begin fetchNextBytecode */
 						currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
-						goto l70;
+						goto l86;
 					}
 				}
 				else {
@@ -7551,77 +7567,79 @@
 					/* begin loadFloatOrIntFrom: */
 					if ((rcvr & 1)) {
 						rcvr1 = ((double) ((rcvr >> 1)) );
-						goto l73;
+						goto l90;
 					}
 					/* begin floatValueOf: */
 					/* begin is:instanceOf:compactClassIndex: */
-					classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					if ((rcvr & 1)) {
 						isFloat = 0;
-						goto l72;
+						goto l89;
 					}
 					/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+					classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					assert(!((rcvr & 1)));
 					ccIndex = (((usqInt) (longAt(rcvr))) >> (compactClassFieldLSB())) & 0x1F;
 					if (ccIndex == 0) {
 						isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == classOop;
-						goto l72;
+						goto l93;
 					}
 					isFloat = ClassFloatCompactIndex == ccIndex;
-					goto l72;
+					goto l93;
 
 					isFloat = classOop == (fetchPointerofObject(ccIndex - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-				l72:	/* end is:instanceOf:compactClassIndex: */;
+				l93:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+				l89:	/* end is:instanceOf:compactClassIndex: */;
 					if (isFloat) {
 						;
 						fetchFloatAtinto(rcvr + BaseHeaderSize, result1);
 						rcvr1 = result1;
-						goto l75;
+						goto l88;
 					}
 					/* begin primitiveFail */
 					if (!GIV(primFailCode)) {
 						GIV(primFailCode) = 1;
 					}
 					rcvr1 = 0.0;
-				l75:	/* end floatValueOf: */;
-				l73:	/* end loadFloatOrIntFrom: */;
+				l88:	/* end floatValueOf: */;
+				l90:	/* end loadFloatOrIntFrom: */;
 					/* begin loadFloatOrIntFrom: */
 					if ((arg & 1)) {
 						arg1 = ((double) ((arg >> 1)) );
-						goto l76;
+						goto l94;
 					}
 					/* begin floatValueOf: */
 					/* begin is:instanceOf:compactClassIndex: */
-					classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					if ((arg & 1)) {
 						isFloat1 = 0;
-						goto l71;
+						goto l92;
 					}
 					/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+					classOop1 = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					assert(!((arg & 1)));
 					ccIndex1 = (((usqInt) (longAt(arg))) >> (compactClassFieldLSB())) & 0x1F;
 					if (ccIndex1 == 0) {
 						isFloat1 = ((longAt(arg - BaseHeaderSize)) & AllButTypeMask) == classOop1;
-						goto l71;
+						goto l87;
 					}
 					isFloat1 = ClassFloatCompactIndex == ccIndex1;
-					goto l71;
+					goto l87;
 
 					isFloat1 = classOop1 == (fetchPointerofObject(ccIndex1 - 1, longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (CompactClasses << (shiftForWord())))));
-				l71:	/* end is:instanceOf:compactClassIndex: */;
+				l87:	/* end isClassOfNonImm:equalTo:compactClassIndex: */;
+				l92:	/* end is:instanceOf:compactClassIndex: */;
 					if (isFloat1) {
 						;
 						fetchFloatAtinto(arg + BaseHeaderSize, result2);
 						arg1 = result2;
-						goto l74;
+						goto l91;
 					}
 					/* begin primitiveFail */
 					if (!GIV(primFailCode)) {
 						GIV(primFailCode) = 1;
 					}
 					arg1 = 0.0;
-				l74:	/* end floatValueOf: */;
-				l76:	/* end loadFloatOrIntFrom: */;
+				l91:	/* end floatValueOf: */;
+				l94:	/* end loadFloatOrIntFrom: */;
 					if (!GIV(primFailCode)) {
 						/* begin pop:thenPushFloat: */
 						longAtput((sp = GIV(stackPointer) + ((2 - 1) * BytesPerWord)), floatObjectOf(rcvr1 * arg1));
@@ -7636,7 +7654,7 @@
 						/* begin fetchNextBytecode */
 						currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
-						goto l70;
+						goto l86;
 					}
 				}
 				/* begin fetchPointer:ofObject: */
@@ -7644,7 +7662,7 @@
 				GIV(argumentCount) = 1;
 				goto normalSend;
 			}
-		l70:	/* end case */;
+		l86:	/* end case */;
 			break;
 		case 185:
 			/* bytecodePrimDivide */
@@ -7682,7 +7700,7 @@
 							/* begin fetchNextBytecode */
 							currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
-							goto l77;
+							goto l95;
 						}
 					}
 				}
@@ -7698,77 +7716,79 @@
 					/* begin loadFloatOrIntFrom: */
 					if ((rcvr & 1)) {
 						rcvr1 = ((double) ((rcvr >> 1)) );
-						goto l80;
+						goto l99;
 					}
 					/* begin floatValueOf: */
 					/* begin is:instanceOf:compactClassIndex: */
-					classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					if ((rcvr & 1)) {
 						isFloat = 0;
-						goto l79;
+						goto l98;
 					}
 					/* begin isClassOfNonImm:equalTo:compactClassIndex: */
+					classOop = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassFloat << (shiftForWord())));
 					assert(!((rcvr & 1)));
 					ccIndex = (((usqInt) (longAt(rcvr))) >> (compactClassFieldLSB())) & 0x1F;
 					if (ccIndex == 0) {
 						isFloat = ((longAt(rcvr - BaseHeaderSize)) & AllButTypeMask) == classOop;
-						goto l79;
+						goto l102;
 					}
 					isFloat = ClassFloatCompactIndex == ccIndex;
-					goto l79;
+					goto l102;
 

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list