Revision: 3110 Author: eliot Date: 2014-10-24 13:43:48 -0700 (Fri, 24 Oct 2014) Log Message: ----------- CogVM source as per VMMaker.oscog-eem.912 Fix another assert fail case in ceInterpretMethodFromPIC:receiver: 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/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/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/cointerp.c =================================================================== --- branches/Cog/nscogsrc/vm/cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/nscogsrc/vm/cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __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 usqInt safeObjectAfter(sqInt oop) NoDbgRegParms; +static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms; static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms; static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms; static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms; @@ -2085,7 +2085,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.911"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.912"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -14400,18 +14400,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ @@ -36757,15 +36760,17 @@ sqInt header1; sqInt header2; sqInt header3; + sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - usqInt next; + sqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; + sqInt sz3; sqInt target; usqInt w; @@ -36776,7 +36781,21 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - next = ((sqInt) (objectAfter(oop))); + /* 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]); goto l1; } fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1; @@ -36791,7 +36810,7 @@ else { sz1 = realHeader & SizeMask; } - next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]))); + next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]); l1: /* end objectAfterWhileForwarding: */; if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) { @@ -36845,18 +36864,18 @@ } /* begin safeObjectAfter: */ if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) { - sz2 = (longAt(newFreeChunk)) & AllButTypeMask; + sz3 = (longAt(newFreeChunk)) & AllButTypeMask; } else { /* begin sizeBitsOf: */ - header3 = longAt(newFreeChunk); - sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass + header4 = longAt(newFreeChunk); + sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask - : header3 & SizeMask); + : header4 & SizeMask); } - next = ((((usqInt)(newFreeChunk + sz2))) >= GIV(freeStart) + next = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart) ? GIV(freeStart) - : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask])); + : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask])); assert((next == GIV(freeStart)) || (next == (oopFromChunk(GIV(compEnd))))); if (next == GIV(freeStart)) { @@ -38731,7 +38750,7 @@ given object or free chunk in memory. Return freeStart when enumeration is complete. This is for assertion checking only. */ -static usqInt +static sqInt 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 18:53:45 UTC (rev 3109) +++ branches/Cog/nscogsrc/vm/cointerp.h 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __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 usqInt safeObjectAfter(sqInt oop) NoDbgRegParms; +static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms; static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms; static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms; static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms; @@ -2088,7 +2088,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.911"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.912"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -14409,18 +14409,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ @@ -36766,15 +36769,17 @@ sqInt header1; sqInt header2; sqInt header3; + sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - usqInt next; + sqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; + sqInt sz3; sqInt target; usqInt w; @@ -36785,7 +36790,21 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - next = ((sqInt) (objectAfter(oop))); + /* 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]); goto l1; } fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1; @@ -36800,7 +36819,7 @@ else { sz1 = realHeader & SizeMask; } - next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]))); + next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]); l1: /* end objectAfterWhileForwarding: */; if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) { @@ -36854,18 +36873,18 @@ } /* begin safeObjectAfter: */ if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) { - sz2 = (longAt(newFreeChunk)) & AllButTypeMask; + sz3 = (longAt(newFreeChunk)) & AllButTypeMask; } else { /* begin sizeBitsOf: */ - header3 = longAt(newFreeChunk); - sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass + header4 = longAt(newFreeChunk); + sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask - : header3 & SizeMask); + : header4 & SizeMask); } - next = ((((usqInt)(newFreeChunk + sz2))) >= GIV(freeStart) + next = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart) ? GIV(freeStart) - : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask])); + : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask])); assert((next == GIV(freeStart)) || (next == (oopFromChunk(GIV(compEnd))))); if (next == GIV(freeStart)) { @@ -38740,7 +38759,7 @@ given object or free chunk in memory. Return freeStart when enumeration is complete. This is for assertion checking only. */ -static usqInt +static sqInt safeObjectAfter(sqInt oop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt header; Modified: branches/Cog/nsspursrc/vm/cointerp.c =================================================================== --- branches/Cog/nsspursrc/vm/cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/nsspursrc/vm/cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -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.911"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.912"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -16289,18 +16289,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } 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 18:53:45 UTC (rev 3109) +++ branches/Cog/nsspursrc/vm/cointerp.h 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -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.911"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.912"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -16298,18 +16298,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Fri Oct 24 11:52:39 PDT 2014 + Fri Oct 24 13:43:54 PDT 2014 Modified: branches/Cog/sistasrc/vm/cointerp.c =================================================================== --- branches/Cog/sistasrc/vm/cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/sistasrc/vm/cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2081,7 +2081,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.912]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -14639,18 +14639,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Modified: branches/Cog/sistasrc/vm/cointerp.h =================================================================== --- branches/Cog/sistasrc/vm/cointerp.h 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/sistasrc/vm/cointerp.h 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ Modified: branches/Cog/sistasrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2084,7 +2084,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.912]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -14648,18 +14648,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Modified: branches/Cog/spursistasrc/vm/cointerp.c =================================================================== --- branches/Cog/spursistasrc/vm/cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/spursistasrc/vm/cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2330,7 +2330,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 = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.912]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -5629,6 +5629,7 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); + null; goto l296; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -5646,7 +5647,7 @@ /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector); - /* return self */ + null; l296: /* end baseFrameReturn */; goto l295; } @@ -16906,18 +16907,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Modified: branches/Cog/spursistasrc/vm/cointerp.h =================================================================== --- branches/Cog/spursistasrc/vm/cointerp.h 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/spursistasrc/vm/cointerp.h 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ Modified: branches/Cog/spursistasrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2333,7 +2333,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 = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.912]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -5638,6 +5638,7 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); + null; goto l296; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -5655,7 +5656,7 @@ /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector); - /* return self */ + null; l296: /* end baseFrameReturn */; goto l295; } @@ -16915,18 +16916,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Modified: branches/Cog/spursrc/vm/cointerp.c =================================================================== --- branches/Cog/spursrc/vm/cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/spursrc/vm/cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2322,7 +2322,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 = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.912]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -11548,18 +11548,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Modified: branches/Cog/spursrc/vm/cointerp.h =================================================================== --- branches/Cog/spursrc/vm/cointerp.h 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/spursrc/vm/cointerp.h 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2325,7 +2325,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 = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.912]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -11557,18 +11557,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Modified: branches/Cog/src/vm/cointerp.c =================================================================== --- branches/Cog/src/vm/cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/src/vm/cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2073,7 +2073,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.912]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -10202,18 +10202,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Modified: branches/Cog/src/vm/cointerp.h =================================================================== --- branches/Cog/src/vm/cointerp.h 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/src/vm/cointerp.h 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ Modified: branches/Cog/src/vm/cointerpmt.c =================================================================== --- branches/Cog/src/vm/cointerpmt.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/src/vm/cointerpmt.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreterMT VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreterMT VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2170,7 +2170,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.911]"; +const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.912]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; sqInt willNotThreadWarnCount; @@ -10654,18 +10654,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Modified: branches/Cog/src/vm/cointerpmt.h =================================================================== --- branches/Cog/src/vm/cointerpmt.h 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/src/vm/cointerpmt.h 2014-10-24 20:43:48 UTC (rev 3110) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ Modified: branches/Cog/src/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/src/vm/gcc3x-cointerp.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/src/vm/gcc3x-cointerp.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2076,7 +2076,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.911]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.912]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -10211,18 +10211,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ Modified: branches/Cog/src/vm/gcc3x-cointerpmt.c =================================================================== --- branches/Cog/src/vm/gcc3x-cointerpmt.c 2014-10-24 18:53:45 UTC (rev 3109) +++ branches/Cog/src/vm/gcc3x-cointerpmt.c 2014-10-24 20:43:48 UTC (rev 3110) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c from - CoInterpreterMT VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd + CoInterpreterMT VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c */ -static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.911 uuid: 39c7bff8-ff88-43a5-88bc-cbbdb206cbcd " __DATE__ ; +static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.912 uuid: d8b9d04a-adc6-44f8-b460-225d5ab73f6c " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2173,7 +2173,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.911]"; +const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.912]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; sqInt willNotThreadWarnCount; @@ -10663,18 +10663,21 @@ sqInt primitiveIndex; sqInt top; - assert(!(methodHasCogMethod(aMethodObj))); + + /* pop off inner return and locate open or closed PIC */ + pic = ((CogMethod *) ((popStack()) - (interpretOffset()))); assert((((pic->cmType)) == CMOpenPIC) || (((pic->cmType)) == CMClosedPIC)); if (((pic->cmType)) == CMOpenPIC) { + assert(!(methodHasCogMethod(aMethodObj))); if (methodShouldBeCogged(aMethodObj)) { cogselector(aMethodObj, (pic->selector)); - if (methodHasCogMethod(aMethodObj)) { - executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); - } } } + if (methodHasCogMethod(aMethodObj)) { + executeCogMethodfromUnlinkedSendWithReceiver(cogMethodOf(aMethodObj), rcvr); + } GIV(messageSelector) = (pic->selector); GIV(newMethod) = aMethodObj; /* begin primitiveIndexOfMethod:header: */ |
Free forum by Nabble | Edit this page |