Revision: 3076 Author: eliot Date: 2014-09-12 13:57:39 -0700 (Fri, 12 Sep 2014) Log Message: ----------- CogVM source as per VMMaker.oscog-eem.878
Make sure that the method is set on returning from a callback. Fixes MNUs of atAddress: in exampleCqsort in the stack VMs.
Modified Paths: -------------- branches/Cog/nscogsrc/vm/cointerp.c branches/Cog/nscogsrc/vm/cointerp.h branches/Cog/nscogsrc/vm/gcc3x-cointerp.c branches/Cog/nsspursrc/vm/cointerp.c branches/Cog/nsspursrc/vm/cointerp.h branches/Cog/nsspursrc/vm/gcc3x-cointerp.c branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c branches/Cog/nsspurstacksrc/vm/interp.c branches/Cog/sistasrc/vm/cointerp.c branches/Cog/sistasrc/vm/cointerp.h branches/Cog/sistasrc/vm/gcc3x-cointerp.c branches/Cog/spursistasrc/vm/cointerp.c branches/Cog/spursistasrc/vm/cointerp.h branches/Cog/spursistasrc/vm/gcc3x-cointerp.c branches/Cog/spursrc/vm/cointerp.c branches/Cog/spursrc/vm/cointerp.h branches/Cog/spursrc/vm/gcc3x-cointerp.c branches/Cog/spurstacksrc/vm/gcc3x-interp.c branches/Cog/spurstacksrc/vm/interp.c branches/Cog/src/vm/cointerp.c branches/Cog/src/vm/cointerp.h branches/Cog/src/vm/cointerpmt.c branches/Cog/src/vm/cointerpmt.h branches/Cog/src/vm/gcc3x-cointerp.c branches/Cog/src/vm/gcc3x-cointerpmt.c branches/Cog/stacksrc/vm/gcc3x-interp.c branches/Cog/stacksrc/vm/interp.c
Property Changed: ---------------- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nscogsrc/vm/cointerp.c =================================================================== --- branches/Cog/nscogsrc/vm/cointerp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/nscogsrc/vm/cointerp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __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; @@ -2088,7 +2088,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.876"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.878"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -4883,7 +4883,6 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); - null; goto l303; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -4901,7 +4900,7 @@ /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- null; + /* return self */ l303: /* end baseFrameReturn */; goto l302; } @@ -36773,15 +36772,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;
@@ -36792,7 +36793,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; @@ -36807,7 +36822,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)) {
@@ -36861,18 +36876,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 = ((newFreeChunk + sz2) >= GIV(freeStart) + next = ((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)) { @@ -38744,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; @@ -50620,6 +50635,14 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + assert((((usqInt)(longAt((calloutMethodContext + BaseHeaderSize) + (MethodIndex << ShiftForWord))))) >= (startOfMemory())); + GIV(method) = longAt((calloutMethodContext + BaseHeaderSize) + (MethodIndex << ShiftForWord)); + assert(isOopCompiledMethod(GIV(method))); + GIV(bytecodeSetSelector) = (headerIndicatesAlternateBytecodeSet(methodHeaderOf(GIV(method))) + ? 256 + : 0); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage; @@ -54362,7 +54385,7 @@ assert(pageListIsWellFormed()); if (GIV(fullGCLock) > 0) { - (GIV(primFailCode) = PrimErrInappropriate); + GIV(primFailCode) = PrimErrInappropriate; return; } incrementalGC();
Modified: branches/Cog/nscogsrc/vm/cointerp.h =================================================================== --- branches/Cog/nscogsrc/vm/cointerp.h 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/nscogsrc/vm/cointerp.h 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */
Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __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; @@ -2091,7 +2091,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.876"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.878"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -4892,7 +4892,6 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); - null; goto l303; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -4910,7 +4909,7 @@ /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- null; + /* return self */ l303: /* end baseFrameReturn */; goto l302; } @@ -36782,15 +36781,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;
@@ -36801,7 +36802,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; @@ -36816,7 +36831,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)) {
@@ -36870,18 +36885,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 = ((newFreeChunk + sz2) >= GIV(freeStart) + next = ((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)) { @@ -38753,7 +38768,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; @@ -50629,6 +50644,14 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + assert((((usqInt)(longAt((calloutMethodContext + BaseHeaderSize) + (MethodIndex << ShiftForWord))))) >= (startOfMemory())); + GIV(method) = longAt((calloutMethodContext + BaseHeaderSize) + (MethodIndex << ShiftForWord)); + assert(isOopCompiledMethod(GIV(method))); + GIV(bytecodeSetSelector) = (headerIndicatesAlternateBytecodeSet(methodHeaderOf(GIV(method))) + ? 256 + : 0); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage; @@ -54371,7 +54394,7 @@ assert(pageListIsWellFormed()); if (GIV(fullGCLock) > 0) { - (GIV(primFailCode) = PrimErrInappropriate); + GIV(primFailCode) = PrimErrInappropriate; return; } incrementalGC();
Modified: branches/Cog/nsspursrc/vm/cointerp.c =================================================================== --- branches/Cog/nsspursrc/vm/cointerp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/nsspursrc/vm/cointerp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2324,7 +2324,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.876"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.878"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -5616,7 +5616,6 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); - null; goto l292; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -5634,7 +5633,7 @@ /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- null; + /* return self */ l292: /* end baseFrameReturn */; goto l291; } @@ -62479,6 +62478,14 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + assert((((usqInt)(longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2))))) >= (startOfMemory())); + GIV(method) = longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2)); + assert(isOopCompiledMethod(GIV(method))); + GIV(bytecodeSetSelector) = (headerIndicatesAlternateBytecodeSet(methodHeaderOf(GIV(method))) + ? 256 + : 0); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage; @@ -64770,7 +64777,7 @@
index = longAt(GIV(stackPointer)); if (!((index & 1))) { - GIV(primFailCode) = PrimErrBadArgument; + (GIV(primFailCode) = PrimErrBadArgument); return; } index = (index >> 1); @@ -64987,7 +64994,7 @@ stSize = (sp1 >> 1); l2: /* end fetchStackPointerOf: */; if (!(((index >= 1) && (index <= stSize)))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } /* begin subscript:with:format: */ @@ -65012,7 +65019,7 @@ assert((senderOop & 1)); spouseFP = pointerForOop(senderOop - 1); if (!(((index >= 1) && (index <= (stackPointerIndexForFrame(spouseFP)))))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } value = ((((usqInt)(longAt(spouseFP + FoxMethod)))) < (startOfMemory()) @@ -65075,7 +65082,7 @@ index = longAt(GIV(stackPointer) + (1 * BytesPerWord)); aContext = longAt(GIV(stackPointer) + (2 * BytesPerWord)); if (!((index & 1))) { - GIV(primFailCode) = PrimErrBadArgument; + (GIV(primFailCode) = PrimErrBadArgument); return; } hdr = long64At(aContext); @@ -65321,7 +65328,7 @@ stSize = (sp1 >> 1); l2: /* end fetchStackPointerOf: */; if (!(((index >= 1) && (index <= stSize)))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } /* begin subscript:with:storing:format: */ @@ -65377,7 +65384,7 @@ assert((senderOop & 1)); spouseFP = pointerForOop(senderOop - 1); if (!(((index >= 1) && (index <= (stackPointerIndexForFrame(spouseFP)))))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } if ((((usqInt)(longAt(spouseFP + FoxMethod)))) < (startOfMemory())) {
Modified: branches/Cog/nsspursrc/vm/cointerp.h =================================================================== --- branches/Cog/nsspursrc/vm/cointerp.h 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/nsspursrc/vm/cointerp.h 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2327,7 +2327,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.876"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.878"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -5625,7 +5625,6 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); - null; goto l292; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -5643,7 +5642,7 @@ /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- null; + /* return self */ l292: /* end baseFrameReturn */; goto l291; } @@ -62488,6 +62487,14 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + assert((((usqInt)(longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2))))) >= (startOfMemory())); + GIV(method) = longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2)); + assert(isOopCompiledMethod(GIV(method))); + GIV(bytecodeSetSelector) = (headerIndicatesAlternateBytecodeSet(methodHeaderOf(GIV(method))) + ? 256 + : 0); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage; @@ -64779,7 +64786,7 @@
index = longAt(GIV(stackPointer)); if (!((index & 1))) { - GIV(primFailCode) = PrimErrBadArgument; + (GIV(primFailCode) = PrimErrBadArgument); return; } index = (index >> 1); @@ -64996,7 +65003,7 @@ stSize = (sp1 >> 1); l2: /* end fetchStackPointerOf: */; if (!(((index >= 1) && (index <= stSize)))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } /* begin subscript:with:format: */ @@ -65021,7 +65028,7 @@ assert((senderOop & 1)); spouseFP = pointerForOop(senderOop - 1); if (!(((index >= 1) && (index <= (stackPointerIndexForFrame(spouseFP)))))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } value = ((((usqInt)(longAt(spouseFP + FoxMethod)))) < (startOfMemory()) @@ -65084,7 +65091,7 @@ index = longAt(GIV(stackPointer) + (1 * BytesPerWord)); aContext = longAt(GIV(stackPointer) + (2 * BytesPerWord)); if (!((index & 1))) { - GIV(primFailCode) = PrimErrBadArgument; + (GIV(primFailCode) = PrimErrBadArgument); return; } hdr = long64At(aContext); @@ -65330,7 +65337,7 @@ stSize = (sp1 >> 1); l2: /* end fetchStackPointerOf: */; if (!(((index >= 1) && (index <= stSize)))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } /* begin subscript:with:storing:format: */ @@ -65386,7 +65393,7 @@ assert((senderOop & 1)); spouseFP = pointerForOop(senderOop - 1); if (!(((index >= 1) && (index <= (stackPointerIndexForFrame(spouseFP)))))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } if ((((usqInt)(longAt(spouseFP + FoxMethod)))) < (startOfMemory())) {
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c =================================================================== --- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - StackInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + StackInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2073,7 +2073,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.876"; +const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.878"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -52956,6 +52956,13 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + GIV(method) = longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2)); + assert(isOopCompiledMethod(GIV(method))); + GIV(bytecodeSetSelector) = (methodUsesAlternateBytecodeSet(GIV(method)) + ? 256 + : 0); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage;
Modified: branches/Cog/nsspurstacksrc/vm/interp.c =================================================================== --- branches/Cog/nsspurstacksrc/vm/interp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/nsspurstacksrc/vm/interp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - StackInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + StackInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2070,7 +2070,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.876"; +const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.878"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -52947,6 +52947,13 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + GIV(method) = longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2)); + assert(isOopCompiledMethod(GIV(method))); + GIV(bytecodeSetSelector) = (methodUsesAlternateBytecodeSet(GIV(method)) + ? 256 + : 0); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage;
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Tue Sep 9 10:59:12 PDT 2014 + Fri Sep 12 13:56:48 PDT 2014
Modified: branches/Cog/sistasrc/vm/cointerp.c =================================================================== --- branches/Cog/sistasrc/vm/cointerp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/sistasrc/vm/cointerp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __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 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 = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.876]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.878]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -36769,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;
@@ -36788,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; @@ -36803,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)) {
@@ -36857,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 = ((newFreeChunk + sz2) >= GIV(freeStart) + next = ((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 +38756,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; @@ -50540,6 +50556,14 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + assert((((usqInt)(longAt((calloutMethodContext + BaseHeaderSize) + (MethodIndex << ShiftForWord))))) >= (startOfMemory())); + GIV(method) = longAt((calloutMethodContext + BaseHeaderSize) + (MethodIndex << ShiftForWord)); + assert(isOopCompiledMethod(GIV(method))); + GIV(bytecodeSetSelector) = (headerIndicatesAlternateBytecodeSet(methodHeaderOf(GIV(method))) + ? 256 + : 0); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage; @@ -52841,7 +52865,7 @@ index = longAt(GIV(stackPointer) + (1 * BytesPerWord)); aContext = longAt(GIV(stackPointer) + (2 * BytesPerWord)); if (!((index & 1))) { - GIV(primFailCode) = PrimErrBadArgument; + (GIV(primFailCode) = PrimErrBadArgument); return; } hdr = longAt(aContext); @@ -53025,7 +53049,7 @@ stSize = (sp1 >> 1); l2: /* end fetchStackPointerOf: */; if (!(((index >= 1) && (index <= stSize)))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } /* begin subscript:with:storing:format: */ @@ -53071,7 +53095,7 @@ assert((senderOop & 1)); spouseFP = pointerForOop(senderOop - 1); if (!(((index >= 1) && (index <= (stackPointerIndexForFrame(spouseFP)))))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } if ((((usqInt)(longAt(spouseFP + FoxMethod)))) < (startOfMemory())) {
Modified: branches/Cog/sistasrc/vm/cointerp.h =================================================================== --- branches/Cog/sistasrc/vm/cointerp.h 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/sistasrc/vm/cointerp.h 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */
Modified: branches/Cog/sistasrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __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 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 = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.876]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.878]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -36778,15 +36778,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;
@@ -36797,7 +36799,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; @@ -36812,7 +36828,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)) {
@@ -36866,18 +36882,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 = ((newFreeChunk + sz2) >= GIV(freeStart) + next = ((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)) { @@ -38749,7 +38765,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; @@ -50549,6 +50565,14 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + assert((((usqInt)(longAt((calloutMethodContext + BaseHeaderSize) + (MethodIndex << ShiftForWord))))) >= (startOfMemory())); + GIV(method) = longAt((calloutMethodContext + BaseHeaderSize) + (MethodIndex << ShiftForWord)); + assert(isOopCompiledMethod(GIV(method))); + GIV(bytecodeSetSelector) = (headerIndicatesAlternateBytecodeSet(methodHeaderOf(GIV(method))) + ? 256 + : 0); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage; @@ -52850,7 +52874,7 @@ index = longAt(GIV(stackPointer) + (1 * BytesPerWord)); aContext = longAt(GIV(stackPointer) + (2 * BytesPerWord)); if (!((index & 1))) { - GIV(primFailCode) = PrimErrBadArgument; + (GIV(primFailCode) = PrimErrBadArgument); return; } hdr = longAt(aContext); @@ -53034,7 +53058,7 @@ stSize = (sp1 >> 1); l2: /* end fetchStackPointerOf: */; if (!(((index >= 1) && (index <= stSize)))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } /* begin subscript:with:storing:format: */ @@ -53080,7 +53104,7 @@ assert((senderOop & 1)); spouseFP = pointerForOop(senderOop - 1); if (!(((index >= 1) && (index <= (stackPointerIndexForFrame(spouseFP)))))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } if ((((usqInt)(longAt(spouseFP + FoxMethod)))) < (startOfMemory())) {
Modified: branches/Cog/spursistasrc/vm/cointerp.c =================================================================== --- branches/Cog/spursistasrc/vm/cointerp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/spursistasrc/vm/cointerp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -1129,7 +1129,7 @@ sqInt removeGCRoot(sqInt *varLoc); static void runLeakCheckerForFullGCexcludeUnmarkedNewSpaceObjsclassIndicesShouldBeValid(sqInt fullGCFlag, sqInt excludeUnmarkedNewSpaceObjs, sqInt classIndicesShouldBeValid) NoDbgRegParms; static void scavengingGCTenuringIf(sqInt tenuringCriterion) NoDbgRegParms; -static sqInt shortentoIndexableSize(sqInt objOop, sqInt indexableSize) NoDbgRegParms; +static usqInt shortentoIndexableSize(sqInt objOop, sqInt indexableSize) NoDbgRegParms; void shortPrintObjectsFromto(sqInt startAddress, sqInt endAddress); sqInt shouldRemapObj(sqInt objOop); sqInt shouldRemapOop(sqInt oop); @@ -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.876]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.878]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -51748,7 +51748,7 @@ zero if no change was possible. */
-static sqInt +static usqInt shortentoIndexableSize(sqInt objOop, sqInt indexableSize) { usqInt bytesAfter; @@ -62227,6 +62227,14 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + assert((((usqInt)(longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2))))) >= (startOfMemory())); + GIV(method) = longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2)); + assert(isOopCompiledMethod(GIV(method))); + GIV(bytecodeSetSelector) = (headerIndicatesAlternateBytecodeSet(methodHeaderOf(GIV(method))) + ? 256 + : 0); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage;
Modified: branches/Cog/spursistasrc/vm/cointerp.h =================================================================== --- branches/Cog/spursistasrc/vm/cointerp.h 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/spursistasrc/vm/cointerp.h 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */
Modified: branches/Cog/spursistasrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -1132,7 +1132,7 @@ sqInt removeGCRoot(sqInt *varLoc); static void runLeakCheckerForFullGCexcludeUnmarkedNewSpaceObjsclassIndicesShouldBeValid(sqInt fullGCFlag, sqInt excludeUnmarkedNewSpaceObjs, sqInt classIndicesShouldBeValid) NoDbgRegParms; static void scavengingGCTenuringIf(sqInt tenuringCriterion) NoDbgRegParms; -static sqInt shortentoIndexableSize(sqInt objOop, sqInt indexableSize) NoDbgRegParms; +static usqInt shortentoIndexableSize(sqInt objOop, sqInt indexableSize) NoDbgRegParms; void shortPrintObjectsFromto(sqInt startAddress, sqInt endAddress); sqInt shouldRemapObj(sqInt objOop); sqInt shouldRemapOop(sqInt oop); @@ -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.876]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.878]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -51757,7 +51757,7 @@ zero if no change was possible. */
-static sqInt +static usqInt shortentoIndexableSize(sqInt objOop, sqInt indexableSize) { usqInt bytesAfter; @@ -62236,6 +62236,14 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + assert((((usqInt)(longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2))))) >= (startOfMemory())); + GIV(method) = longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2)); + assert(isOopCompiledMethod(GIV(method))); + GIV(bytecodeSetSelector) = (headerIndicatesAlternateBytecodeSet(methodHeaderOf(GIV(method))) + ? 256 + : 0); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage;
Modified: branches/Cog/spursrc/vm/cointerp.c =================================================================== --- branches/Cog/spursrc/vm/cointerp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/spursrc/vm/cointerp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2313,7 +2313,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.876]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.878]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -57191,6 +57191,11 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + assert((((usqInt)(longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2))))) >= (startOfMemory())); + GIV(method) = longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2)); + assert(isOopCompiledMethod(GIV(method))); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage; @@ -59477,7 +59482,7 @@
index = longAt(GIV(stackPointer)); if (!((index & 1))) { - GIV(primFailCode) = PrimErrBadArgument; + (GIV(primFailCode) = PrimErrBadArgument); return; } index = (index >> 1); @@ -59694,7 +59699,7 @@ stSize = (sp1 >> 1); l2: /* end fetchStackPointerOf: */; if (!(((index >= 1) && (index <= stSize)))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } /* begin subscript:with:format: */ @@ -59719,7 +59724,7 @@ assert((senderOop & 1)); spouseFP = pointerForOop(senderOop - 1); if (!(((index >= 1) && (index <= (stackPointerIndexForFrame(spouseFP)))))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } value = ((((usqInt)(longAt(spouseFP + FoxMethod)))) < (startOfMemory()) @@ -59782,7 +59787,7 @@ index = longAt(GIV(stackPointer) + (1 * BytesPerWord)); aContext = longAt(GIV(stackPointer) + (2 * BytesPerWord)); if (!((index & 1))) { - GIV(primFailCode) = PrimErrBadArgument; + (GIV(primFailCode) = PrimErrBadArgument); return; } hdr = long64At(aContext); @@ -60028,7 +60033,7 @@ stSize = (sp1 >> 1); l2: /* end fetchStackPointerOf: */; if (!(((index >= 1) && (index <= stSize)))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } /* begin subscript:with:storing:format: */ @@ -60084,7 +60089,7 @@ assert((senderOop & 1)); spouseFP = pointerForOop(senderOop - 1); if (!(((index >= 1) && (index <= (stackPointerIndexForFrame(spouseFP)))))) { - GIV(primFailCode) = PrimErrBadIndex; + (GIV(primFailCode) = PrimErrBadIndex); return; } if ((((usqInt)(longAt(spouseFP + FoxMethod)))) < (startOfMemory())) {
Modified: branches/Cog/spursrc/vm/cointerp.h =================================================================== --- branches/Cog/spursrc/vm/cointerp.h 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/spursrc/vm/cointerp.h 2014-09-12 20:57:39 UTC (rev 3076) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */
Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-09-10 21:46:44 UTC (rev 3075) +++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-09-12 20:57:39 UTC (rev 3076) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d from - CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 + CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.876 uuid: 85989927-97e3-4111-a351-b242bf444291 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.878 uuid: 4165e5c9-05a2-4795-9295-8b309fa52e2d " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -2316,7 +2316,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.876]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.878]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -57200,6 +57200,11 @@ top = longAt(GIV(stackPointer)); GIV(stackPointer) += BytesPerWord; GIV(instructionPointer) = ((sqInt) top); + /* begin setMethod: */ + assert((((usqInt)(longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2))))) >= (startOfMemory())); + GIV(method) = longAt((calloutMethodContext + (BaseHeaderSize)) + (MethodIndex << 2)); + assert(isOopCompiledMethod(GIV(method))); + /* begin setStackPageAndLimit: */ assert(thePage != 0); GIV(stackPage) = thePage; @@ -59486,7 +59491,7 @@
index = longAt(GIV(stackPointer)); if (!((index & 1))) {
@@ Diff output truncated at 50000 characters. @@
vm-dev@lists.squeakfoundation.org