Revision: 3109 Author: eliot Date: 2014-10-24 11:53:45 -0700 (Fri, 24 Oct 2014) Log Message: ----------- CogVm source as per VMMaker.oscog-eem.911 Avoid cogging methods containing unknown bytecodes early in scanMethod. Use a hack to avoid a test on the common path. Fix the return type of implicitReceiverCacheAddressAt:. Both of these together fix assert fails due to cogging mehtods containing unknown bytecodes. Modified Paths: -------------- branches/Cog/nscogsrc/vm/cogit.c branches/Cog/nscogsrc/vm/cogit.h branches/Cog/nscogsrc/vm/cointerp.c branches/Cog/nscogsrc/vm/cointerp.h branches/Cog/nscogsrc/vm/gcc3x-cointerp.c branches/Cog/nsspursrc/vm/cogit.c branches/Cog/nsspursrc/vm/cogit.h branches/Cog/nsspursrc/vm/cointerp.c branches/Cog/nsspursrc/vm/cointerp.h branches/Cog/nsspursrc/vm/gcc3x-cointerp.c branches/Cog/sistasrc/vm/cogit.c branches/Cog/sistasrc/vm/cogit.h branches/Cog/sistasrc/vm/cointerp.c branches/Cog/sistasrc/vm/cointerp.h branches/Cog/sistasrc/vm/gcc3x-cointerp.c branches/Cog/spursistasrc/vm/cogit.c branches/Cog/spursistasrc/vm/cogit.h branches/Cog/spursistasrc/vm/cointerp.c branches/Cog/spursistasrc/vm/cointerp.h branches/Cog/spursistasrc/vm/gcc3x-cointerp.c branches/Cog/spursrc/vm/cogit.c branches/Cog/spursrc/vm/cogit.h branches/Cog/spursrc/vm/cointerp.c branches/Cog/spursrc/vm/cointerp.h branches/Cog/spursrc/vm/gcc3x-cointerp.c branches/Cog/src/vm/cogit.c branches/Cog/src/vm/cogit.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 Property Changed: ---------------- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h Modified: branches/Cog/nscogsrc/vm/cogit.c =================================================================== --- branches/Cog/nscogsrc/vm/cogit.c 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/nscogsrc/vm/cogit.c 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd from - StackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + StackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -1726,8 +1726,8 @@ { duplicateTopBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genPopStackBytecode, 0, needsFrameNever, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genExtNopBytecode, 0, needsFrameNever, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, { extABytecode, 0, needsFrameNever, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { extBBytecode, 0, needsFrameNever, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { genExtPushReceiverVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, @@ -1749,17 +1749,17 @@ { genExtUnconditionalJump, v4LongBranchDistance, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0 }, { genExtJumpIfTrue, v4LongBranchDistance, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0 }, { genExtJumpIfFalse, v4LongBranchDistance, 0, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { callPrimitiveBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genPushRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreAndPopRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genExtPushClosureBytecode, v4BlockCodeSize, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 } + { unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 } }; static sqInt guardPageSize; static sqInt hasYoungReferent; @@ -12553,7 +12553,7 @@ { sqInt *address; sqInt *address1; - sqInt cacheAddress; + usqInt cacheAddress; sqInt cacheTag; sqInt cacheTag1; sqInt cacheTagMarked; @@ -12723,7 +12723,7 @@ static sqInt markYoungObjectspcmethod(sqInt annotation, char *mcpc, sqInt cogMethod) { - sqInt cacheAddress; + usqInt cacheAddress; sqInt cacheTag; sqInt cacheTag1; sqInt class; @@ -13814,7 +13814,7 @@ static sqInt remapIfObjectRefpchasYoung(sqInt annotation, char *mcpc, sqInt hasYoungPtr) { - sqInt cacheAddress; + usqInt cacheAddress; sqInt cacheTag; sqInt cacheTag1; sqInt entryPoint; @@ -14583,7 +14583,7 @@ static void voidImplicitReceiverCacheAt(sqInt mcpc) { - sqInt cacheAddress; + usqInt cacheAddress; assert(NumOopsPerIRC == 2); cacheAddress = (((usqInt)mcpc)) + (jumpShortByteSize(backEnd)); @@ -22355,6 +22355,12 @@ byte0 = (fetchByteofObject(pc, methodObj)) + bytecodeSetOffset; descriptor = generatorAt(byte0); if ((descriptor->isExtension)) { + if (((descriptor->opcode)) == Nop) { + + /* unknown bytecode tag; see Cogit class>>#generatorTableFrom: */ + + return EncounteredUnknownBytecode; + } loadSubsequentBytesForDescriptorat(descriptor, pc); ((descriptor->generator))(); } Modified: branches/Cog/nscogsrc/vm/cogit.h =================================================================== --- branches/Cog/nscogsrc/vm/cogit.h 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/nscogsrc/vm/cogit.h 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ Modified: branches/Cog/nscogsrc/vm/cointerp.c =================================================================== --- branches/Cog/nscogsrc/vm/cointerp.c 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/nscogsrc/vm/cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd from - CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -852,7 +852,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; @@ -1366,9 +1366,9 @@ _iss sqInt growHeadroom; _iss sqInt lastMethodCacheProbeWrite; _iss sqInt preemptionYields; -_iss sqInt cogCompiledCodeCompactionCalledFor; _iss usqLong nextWakeupUsecs; _iss sqInt statMarkCount; +_iss sqInt cogCompiledCodeCompactionCalledFor; _iss sqInt gcMode; _iss sqInt highestRunnableProcessPriority; _iss sqInt lastCoggableInterpretedBlockMethod; @@ -2085,7 +2085,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.909"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.911"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -14412,10 +14412,6 @@ } } } - else { - assert(GIV(cogCompiledCodeCompactionCalledFor) - || (!(methodShouldBeCogged(aMethodObj)))); - } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ @@ -36761,17 +36757,15 @@ sqInt header1; sqInt header2; sqInt header3; - sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - sqInt next; + usqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; - sqInt sz3; sqInt target; usqInt w; @@ -36782,21 +36776,7 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - /* begin objectAfter: */ - if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) { - error("no objects after the end of memory"); - } - if (((longAt(oop)) & TypeMask) == HeaderTypeFree) { - sz2 = (longAt(oop)) & AllButTypeMask; - } - else { - /* begin sizeBitsOf: */ - header3 = longAt(oop); - sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass - ? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask - : header3 & SizeMask); - } - next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]); + next = ((sqInt) (objectAfter(oop))); goto l1; } fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1; @@ -36811,7 +36791,7 @@ else { sz1 = realHeader & SizeMask; } - next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]); + next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]))); l1: /* end objectAfterWhileForwarding: */; if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) { @@ -36865,18 +36845,18 @@ } /* begin safeObjectAfter: */ if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) { - sz3 = (longAt(newFreeChunk)) & AllButTypeMask; + sz2 = (longAt(newFreeChunk)) & AllButTypeMask; } else { /* begin sizeBitsOf: */ - header4 = longAt(newFreeChunk); - sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass + header3 = longAt(newFreeChunk); + sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask - : header4 & SizeMask); + : header3 & SizeMask); } - next = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart) + next = ((((usqInt)(newFreeChunk + sz2))) >= GIV(freeStart) ? GIV(freeStart) - : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask])); + : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask])); assert((next == GIV(freeStart)) || (next == (oopFromChunk(GIV(compEnd))))); if (next == GIV(freeStart)) { @@ -38751,7 +38731,7 @@ given object or free chunk in memory. Return freeStart when enumeration is complete. This is for assertion checking only. */ -static sqInt +static usqInt safeObjectAfter(sqInt oop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt header; Modified: branches/Cog/nscogsrc/vm/cointerp.h =================================================================== --- branches/Cog/nscogsrc/vm/cointerp.h 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/nscogsrc/vm/cointerp.h 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd from - CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -855,7 +855,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; @@ -1369,9 +1369,9 @@ _iss sqInt growHeadroom; _iss sqInt lastMethodCacheProbeWrite; _iss sqInt preemptionYields; -_iss sqInt cogCompiledCodeCompactionCalledFor; _iss usqLong nextWakeupUsecs; _iss sqInt statMarkCount; +_iss sqInt cogCompiledCodeCompactionCalledFor; _iss sqInt gcMode; _iss sqInt highestRunnableProcessPriority; _iss sqInt lastCoggableInterpretedBlockMethod; @@ -2088,7 +2088,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.909"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.911"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -14421,10 +14421,6 @@ } } } - else { - assert(GIV(cogCompiledCodeCompactionCalledFor) - || (!(methodShouldBeCogged(aMethodObj)))); - } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ @@ -36770,17 +36766,15 @@ sqInt header1; sqInt header2; sqInt header3; - sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - sqInt next; + usqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; - sqInt sz3; sqInt target; usqInt w; @@ -36791,21 +36785,7 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - /* begin objectAfter: */ - if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) { - error("no objects after the end of memory"); - } - if (((longAt(oop)) & TypeMask) == HeaderTypeFree) { - sz2 = (longAt(oop)) & AllButTypeMask; - } - else { - /* begin sizeBitsOf: */ - header3 = longAt(oop); - sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass - ? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask - : header3 & SizeMask); - } - next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]); + next = ((sqInt) (objectAfter(oop))); goto l1; } fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1; @@ -36820,7 +36800,7 @@ else { sz1 = realHeader & SizeMask; } - next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]); + next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]))); l1: /* end objectAfterWhileForwarding: */; if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) { @@ -36874,18 +36854,18 @@ } /* begin safeObjectAfter: */ if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) { - sz3 = (longAt(newFreeChunk)) & AllButTypeMask; + sz2 = (longAt(newFreeChunk)) & AllButTypeMask; } else { /* begin sizeBitsOf: */ - header4 = longAt(newFreeChunk); - sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass + header3 = longAt(newFreeChunk); + sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask - : header4 & SizeMask); + : header3 & SizeMask); } - next = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart) + next = ((((usqInt)(newFreeChunk + sz2))) >= GIV(freeStart) ? GIV(freeStart) - : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask])); + : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask])); assert((next == GIV(freeStart)) || (next == (oopFromChunk(GIV(compEnd))))); if (next == GIV(freeStart)) { @@ -38760,7 +38740,7 @@ given object or free chunk in memory. Return freeStart when enumeration is complete. This is for assertion checking only. */ -static sqInt +static usqInt safeObjectAfter(sqInt oop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt header; Modified: branches/Cog/nsspursrc/vm/cogit.c =================================================================== --- branches/Cog/nsspursrc/vm/cogit.c 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/nsspursrc/vm/cogit.c 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd from - StackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + StackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -1744,8 +1744,8 @@ { duplicateTopBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genPopStackBytecode, 0, needsFrameNever, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genExtNopBytecode, 0, needsFrameNever, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, { extABytecode, 0, needsFrameNever, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { extBBytecode, 0, needsFrameNever, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { genExtPushReceiverVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, @@ -1767,17 +1767,17 @@ { genExtUnconditionalJump, v4LongBranchDistance, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0 }, { genExtJumpIfTrue, v4LongBranchDistance, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0 }, { genExtJumpIfFalse, v4LongBranchDistance, 0, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { callPrimitiveBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genPushRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreAndPopRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genExtPushClosureBytecode, v4BlockCodeSize, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 } + { unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 } }; static sqInt guardPageSize; static sqInt hasYoungReferent; @@ -12625,7 +12625,7 @@ } if (entryPoint1 == ceImplicitReceiverTrampoline) { assert(NumOopsPerIRC == 2); - cacheAddress = implicitReceiveCacheAt(backEnd, mcpc); + cacheAddress = ((usqInt)(implicitReceiveCacheAt(backEnd, mcpc))); if (((class = unalignedLongAt(backEnd, cacheAddress))) != 0) { if (((mixin = unalignedLongAt(backEnd, cacheAddress + BytesPerOop))) != 0) { markAndTraceLiteralinat(mixin, ((CogMethod *) cogMethod), (cacheAddress + BytesPerOop)); @@ -13801,7 +13801,7 @@ /* Examine an implicit receiver cache. */ assert(NumOopsPerIRC == 2); - cacheAddress = implicitReceiveCacheAt(backEnd, mcpc); + cacheAddress = ((usqInt)(implicitReceiveCacheAt(backEnd, mcpc))); if (((oop = unalignedLongAt(backEnd, cacheAddress))) != 0) { /* First look at the classTag entry. This is an inline cache tag and so might not be an object. */ @@ -14066,7 +14066,7 @@ else { if (entryPoint == ceImplicitReceiverTrampoline) { assert(NumOopsPerIRC == 2); - cacheAddress = implicitReceiveCacheAt(backEnd, mcpc); + cacheAddress = ((usqInt)(implicitReceiveCacheAt(backEnd, mcpc))); if ((isForwardedClassIndex(unalignedLongAt(backEnd, cacheAddress))) || (isForwardedClassIndex(unalignedLongAt(backEnd, cacheAddress + BytesPerOop)))) { voidImplicitReceiverCacheAt(mcpc); @@ -14614,7 +14614,7 @@ usqInt cacheAddress; assert(NumOopsPerIRC == 2); - cacheAddress = implicitReceiveCacheAt(backEnd, mcpc); + cacheAddress = ((usqInt)(implicitReceiveCacheAt(backEnd, mcpc))); unalignedLongAtput(backEnd, cacheAddress, 0); unalignedLongAtput(backEnd, cacheAddress + BytesPerOop, 0); @@ -24183,6 +24183,12 @@ byte0 = (fetchByteofObject(pc, methodObj)) + bytecodeSetOffset; descriptor = generatorAt(byte0); if ((descriptor->isExtension)) { + if (((descriptor->opcode)) == Nop) { + + /* unknown bytecode tag; see Cogit class>>#generatorTableFrom: */ + + return EncounteredUnknownBytecode; + } loadSubsequentBytesForDescriptorat(descriptor, pc); ((descriptor->generator))(); } Modified: branches/Cog/nsspursrc/vm/cogit.h =================================================================== --- branches/Cog/nsspursrc/vm/cogit.h 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/nsspursrc/vm/cogit.h 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ Modified: branches/Cog/nsspursrc/vm/cointerp.c =================================================================== --- branches/Cog/nsspursrc/vm/cointerp.c 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/nsspursrc/vm/cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd from - CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -1582,10 +1582,10 @@ _iss sqInt lastMethodCacheProbeWrite; _iss sqInt metaclassNumSlots; _iss sqInt preemptionYields; -_iss sqInt cogCompiledCodeCompactionCalledFor; _iss sqInt lkupClass; _iss usqLong nextWakeupUsecs; _iss sqInt numSegInfos; +_iss sqInt cogCompiledCodeCompactionCalledFor; _iss sqInt highestRunnableProcessPriority; _iss sqInt lastCoggableInterpretedBlockMethod; _iss sqInt lastUncoggableInterpretedBlockMethod; @@ -2335,7 +2335,7 @@ /*540*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.909"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.911"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -16301,10 +16301,6 @@ } } } - else { - assert(GIV(cogCompiledCodeCompactionCalledFor) - || (!(methodShouldBeCogged(aMethodObj)))); - } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Modified: branches/Cog/nsspursrc/vm/cointerp.h =================================================================== --- branches/Cog/nsspursrc/vm/cointerp.h 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/nsspursrc/vm/cointerp.h 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd from - CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -1585,10 +1585,10 @@ _iss sqInt lastMethodCacheProbeWrite; _iss sqInt metaclassNumSlots; _iss sqInt preemptionYields; -_iss sqInt cogCompiledCodeCompactionCalledFor; _iss sqInt lkupClass; _iss usqLong nextWakeupUsecs; _iss sqInt numSegInfos; +_iss sqInt cogCompiledCodeCompactionCalledFor; _iss sqInt highestRunnableProcessPriority; _iss sqInt lastCoggableInterpretedBlockMethod; _iss sqInt lastUncoggableInterpretedBlockMethod; @@ -2338,7 +2338,7 @@ /*540*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.909"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.911"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -16310,10 +16310,6 @@ } } } - else { - assert(GIV(cogCompiledCodeCompactionCalledFor) - || (!(methodShouldBeCogged(aMethodObj)))); - } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Thu Oct 23 17:35:33 PDT 2014 + Fri Oct 24 11:52:39 PDT 2014 Modified: branches/Cog/sistasrc/vm/cogit.c =================================================================== --- branches/Cog/sistasrc/vm/cogit.c 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/sistasrc/vm/cogit.c 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd from - SistaStackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + SistaStackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ -static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d " __DATE__ ; +static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -1380,8 +1380,8 @@ { genReturnNil, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, { genReturnTopFromMethod, 0, needsFrameIfInBlock, -1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, { genReturnTopFromBlock, 0, needsFrameNever, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, { extendedPushBytecode, 0, needsFrameNever, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, { extendedStoreBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, { extendedStoreAndPopBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, @@ -1393,7 +1393,7 @@ { duplicateTopBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genPushActiveContextBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genPushNewArrayBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, { genPushRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreAndPopRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, @@ -1594,10 +1594,10 @@ { genPushConstantOneBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genExtPushPseudoVariable, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { duplicateTopBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, { genReturnReceiver, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, { genReturnTrue, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, { genReturnFalse, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, @@ -1727,13 +1727,13 @@ { genStoreAndPopTemporaryVariableBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreAndPopTemporaryVariableBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genPopStackBytecode, 0, needsFrameNever, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, { extABytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { extBBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { genExtPushReceiverVariableBytecode, 0, needsFrameNever, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, @@ -1756,16 +1756,16 @@ { genExtStoreReceiverVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, { genExtStoreLiteralVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, { genLongStoreTemporaryVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { genCallPrimitiveBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 }, { genExtPushClosureBytecode, v4BlockCodeSize, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0 }, { genPushRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreAndPopRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 } + { unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 } }; static sqInt guardPageSize; static sqInt hasYoungReferent; @@ -19348,6 +19348,12 @@ byte0 = (fetchByteofObject(pc, methodObj)) + bytecodeSetOffset; descriptor = generatorAt(byte0); if ((descriptor->isExtension)) { + if (((descriptor->opcode)) == Nop) { + + /* unknown bytecode tag; see Cogit class>>#generatorTableFrom: */ + + return EncounteredUnknownBytecode; + } loadSubsequentBytesForDescriptorat(descriptor, pc); ((descriptor->generator))(); } Modified: branches/Cog/sistasrc/vm/cogit.h =================================================================== --- branches/Cog/sistasrc/vm/cogit.h 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/sistasrc/vm/cogit.h 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ Modified: branches/Cog/sistasrc/vm/cointerp.c =================================================================== --- branches/Cog/sistasrc/vm/cointerp.c 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/sistasrc/vm/cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd from - CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -851,7 +851,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; @@ -1362,9 +1362,9 @@ _iss sqInt growHeadroom; _iss sqInt lastMethodCacheProbeWrite; _iss sqInt preemptionYields; -_iss sqInt cogCompiledCodeCompactionCalledFor; _iss usqLong nextWakeupUsecs; _iss sqInt statMarkCount; +_iss sqInt cogCompiledCodeCompactionCalledFor; _iss sqInt gcMode; _iss sqInt highestRunnableProcessPriority; _iss sqInt lastCoggableInterpretedBlockMethod; @@ -2081,7 +2081,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.909]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -14651,10 +14651,6 @@ } } } - else { - assert(GIV(cogCompiledCodeCompactionCalledFor) - || (!(methodShouldBeCogged(aMethodObj)))); - } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ @@ -36840,17 +36836,15 @@ sqInt header1; sqInt header2; sqInt header3; - sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - sqInt next; + usqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; - sqInt sz3; sqInt target; usqInt w; @@ -36861,21 +36855,7 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - /* begin objectAfter: */ - if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) { - error("no objects after the end of memory"); - } - if (((longAt(oop)) & TypeMask) == HeaderTypeFree) { - sz2 = (longAt(oop)) & AllButTypeMask; - } - else { - /* begin sizeBitsOf: */ - header3 = longAt(oop); - sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass - ? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask - : header3 & SizeMask); - } - next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]); + next = ((sqInt) (objectAfter(oop))); goto l1; } fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1; @@ -36890,7 +36870,7 @@ else { sz1 = realHeader & SizeMask; } - next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]); + next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]))); l1: /* end objectAfterWhileForwarding: */; if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) { @@ -36944,18 +36924,18 @@ } /* begin safeObjectAfter: */ if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) { - sz3 = (longAt(newFreeChunk)) & AllButTypeMask; + sz2 = (longAt(newFreeChunk)) & AllButTypeMask; } else { /* begin sizeBitsOf: */ - header4 = longAt(newFreeChunk); - sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass + header3 = longAt(newFreeChunk); + sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask - : header4 & SizeMask); + : header3 & SizeMask); } - next = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart) + next = ((((usqInt)(newFreeChunk + sz2))) >= GIV(freeStart) ? GIV(freeStart) - : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask])); + : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask])); assert((next == GIV(freeStart)) || (next == (oopFromChunk(GIV(compEnd))))); if (next == GIV(freeStart)) { @@ -38830,7 +38810,7 @@ given object or free chunk in memory. Return freeStart when enumeration is complete. This is for assertion checking only. */ -static sqInt +static usqInt safeObjectAfter(sqInt oop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt header; Modified: branches/Cog/sistasrc/vm/cointerp.h =================================================================== --- branches/Cog/sistasrc/vm/cointerp.h 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/sistasrc/vm/cointerp.h 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ Modified: branches/Cog/sistasrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd from - CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d + CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.909 uuid: 0d4fb242-44a2-408b-bc90-a737cfdd364d " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -854,7 +854,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; @@ -1365,9 +1365,9 @@ _iss sqInt growHeadroom; _iss sqInt lastMethodCacheProbeWrite; _iss sqInt preemptionYields; -_iss sqInt cogCompiledCodeCompactionCalledFor; _iss usqLong nextWakeupUsecs; _iss sqInt statMarkCount; +_iss sqInt cogCompiledCodeCompactionCalledFor; _iss sqInt gcMode; _iss sqInt highestRunnableProcessPriority; _iss sqInt lastCoggableInterpretedBlockMethod; @@ -2084,7 +2084,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.909]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -14660,10 +14660,6 @@ } } } - else { - assert(GIV(cogCompiledCodeCompactionCalledFor) - || (!(methodShouldBeCogged(aMethodObj)))); - } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ @@ -36849,17 +36845,15 @@ sqInt header1; sqInt header2; sqInt header3; - sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - sqInt next; + usqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; - sqInt sz3; sqInt target; usqInt w; @@ -36870,21 +36864,7 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - /* begin objectAfter: */ - if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) { - error("no objects after the end of memory"); - } - if (((longAt(oop)) & TypeMask) == HeaderTypeFree) { - sz2 = (longAt(oop)) & AllButTypeMask; - } - else { - /* begin sizeBitsOf: */ - header3 = longAt(oop); - sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass - ? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask - : header3 & SizeMask); - } - next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]); + next = ((sqInt) (objectAfter(oop))); goto l1; } fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1; @@ -36899,7 +36879,7 @@ else { sz1 = realHeader & SizeMask; } - next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]); + next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]))); l1: /* end objectAfterWhileForwarding: */; if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) { @@ -36953,18 +36933,18 @@ } /* begin safeObjectAfter: */ if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) { - sz3 = (longAt(newFreeChunk)) & AllButTypeMask; + sz2 = (longAt(newFreeChunk)) & AllButTypeMask; } else { /* begin sizeBitsOf: */ - header4 = longAt(newFreeChunk); - sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass + header3 = longAt(newFreeChunk); + sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask - : header4 & SizeMask); + : header3 & SizeMask); } - next = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart) + next = ((((usqInt)(newFreeChunk + sz2))) >= GIV(freeStart) ? GIV(freeStart) - : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask])); + : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask])); assert((next == GIV(freeStart)) || (next == (oopFromChunk(GIV(compEnd))))); if (next == GIV(freeStart)) { @@ -38839,7 +38819,7 @@ given object or free chunk in memory. Return freeStart when enumeration is complete. This is for assertion checking only. */ -static sqInt +static usqInt safeObjectAfter(sqInt oop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt header; Modified: branches/Cog/spursistasrc/vm/cogit.c =================================================================== --- branches/Cog/spursistasrc/vm/cogit.c 2014-10-24 12:46:01 UTC (rev 3108) +++ branches/Cog/spursistasrc/vm/cogit.c 2014-10-24 18:53:45 UTC (rev 3109) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + CCodeGenerator VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd from - SistaStackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d + SistaStackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd */ -static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.907 uuid: 1d1ad3df-9d81-4278-95fd-a11857f7a60d " __DATE__ ; +static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -1398,8 +1398,8 @@ { genReturnNil, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, { genReturnTopFromMethod, 0, needsFrameIfInBlock, -1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, { genReturnTopFromBlock, 0, needsFrameNever, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, { extendedPushBytecode, 0, needsFrameNever, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, { extendedStoreBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, { extendedStoreAndPopBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, @@ -1612,10 +1612,10 @@ { genPushConstantOneBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genExtPushPseudoVariable, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { duplicateTopBytecode, 0, needsFrameNever, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, { genReturnReceiver, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, { genReturnTrue, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, { genReturnFalse, 0, needsFrameIfInBlock, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, @@ -1745,13 +1745,13 @@ { genStoreAndPopTemporaryVariableBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreAndPopTemporaryVariableBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { genPopStackBytecode, 0, needsFrameNever, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, { extABytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { extBBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { genExtPushReceiverVariableBytecode, 0, needsFrameNever, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, @@ -1774,16 +1774,16 @@ { genExtStoreReceiverVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, { genExtStoreLiteralVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, { genLongStoreTemporaryVariableBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 2, 0, 0, 0, 0, 0, 0, 1, 0 }, { genCallPrimitiveBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 }, { genExtPushClosureBytecode, v4BlockCodeSize, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0 }, { genPushRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, { genStoreAndPopRemoteTempLongBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, - { unknownBytecode, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 } + { unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 }, + { unknownBytecode, 0, 0, 0, Nop, 3, 0, 0, 0, 0, 0, 0, 1, 0 } }; static sqInt guardPageSize; static sqInt hasYoungReferent; @@ -20838,6 +20838,12 @@ byte0 = (fetchByteofObject(pc, methodObj)) + bytecodeSetOffset; descriptor = generatorAt(byte0); if ((descriptor->isExtension)) { @@ Diff output truncated at 50000 characters. @@ |
Free forum by Nabble | Edit this page |