Revision: 3121 Author: eliot Date: 2014-11-02 18:55:09 -0800 (Sun, 02 Nov 2014) Log Message: ----------- CogVM source as per VMMaker.oscog-eem.918
Fix bad bug in callPrimitiveBytecode. Old code skipped past next bytecode. This broke code depending on ContextPart>>restart, such as Exception>>retry.
And include wchar.h in the interpreter for wint_t (Spur immediate character printing), since stddef doesn't always define it (on linux of course; elsewhere it seems to be present).
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-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/nscogsrc/vm/cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -21,6 +21,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sq.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -852,7 +853,7 @@ void printWronglySizedContexts(sqInt printContexts); static void restoreHeadersFromtofromandtofrom(sqInt firstIn, sqInt lastIn, sqInt hdrBaseIn, sqInt firstOut, sqInt lastOut, sqInt hdrBaseOut) NoDbgRegParms; static void runLeakCheckerForFullGC(sqInt fullGCFlag) NoDbgRegParms; -static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms; +static usqInt safeObjectAfter(sqInt oop) NoDbgRegParms; static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms; static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms; static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms; @@ -2087,7 +2088,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.916"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.918"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -12958,9 +12959,9 @@ ? header & (65536 << SmallIntegerShift) : (header & 536871934) != 0)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += ((((sqInt) header)) < 0 - ? 3 - : 0); + localIP = (localIP + (((((sqInt) header)) < 0 + ? 3 + : 0))) - 1; /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
@@ -36627,17 +36628,15 @@ sqInt header1; sqInt header2; sqInt header3; - sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - sqInt next; + usqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; - sqInt sz3; sqInt target; usqInt w;
@@ -36648,21 +36647,7 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - /* begin objectAfter: */ - if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) { - error("no objects after the end of memory"); - } - if (((longAt(oop)) & TypeMask) == HeaderTypeFree) { - sz2 = (longAt(oop)) & AllButTypeMask; - } - else { - /* begin sizeBitsOf: */ - header3 = longAt(oop); - sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass - ? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask - : header3 & SizeMask); - } - next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]); + next = ((sqInt) (objectAfter(oop))); goto l1; } fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1; @@ -36677,7 +36662,7 @@ else { sz1 = realHeader & SizeMask; } - next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]); + next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]))); l1: /* end objectAfterWhileForwarding: */; if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
@@ -36731,18 +36716,18 @@ } /* begin safeObjectAfter: */ if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) { - sz3 = (longAt(newFreeChunk)) & AllButTypeMask; + sz2 = (longAt(newFreeChunk)) & AllButTypeMask; } else { /* begin sizeBitsOf: */ - header4 = longAt(newFreeChunk); - sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass + header3 = longAt(newFreeChunk); + sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask - : header4 & SizeMask); + : header3 & SizeMask); } - next = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart) + next = ((((usqInt)(newFreeChunk + sz2))) >= GIV(freeStart) ? GIV(freeStart) - : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask])); + : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask])); assert((next == GIV(freeStart)) || (next == (oopFromChunk(GIV(compEnd))))); if (next == GIV(freeStart)) { @@ -38618,7 +38603,7 @@ given object or free chunk in memory. Return freeStart when enumeration is complete. This is for assertion checking only. */
-static sqInt +static usqInt safeObjectAfter(sqInt oop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt header;
Modified: branches/Cog/nscogsrc/vm/cointerp.h =================================================================== --- branches/Cog/nscogsrc/vm/cointerp.h 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/nscogsrc/vm/cointerp.h 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */
Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -24,6 +24,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sqGnu.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -855,7 +856,7 @@ void printWronglySizedContexts(sqInt printContexts); static void restoreHeadersFromtofromandtofrom(sqInt firstIn, sqInt lastIn, sqInt hdrBaseIn, sqInt firstOut, sqInt lastOut, sqInt hdrBaseOut) NoDbgRegParms; static void runLeakCheckerForFullGC(sqInt fullGCFlag) NoDbgRegParms; -static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms; +static usqInt safeObjectAfter(sqInt oop) NoDbgRegParms; static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms; static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms; static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms; @@ -2090,7 +2091,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.916"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.918"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -12967,9 +12968,9 @@ ? header & (65536 << SmallIntegerShift) : (header & 536871934) != 0)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += ((((sqInt) header)) < 0 - ? 3 - : 0); + localIP = (localIP + (((((sqInt) header)) < 0 + ? 3 + : 0))) - 1; /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
@@ -36636,17 +36637,15 @@ sqInt header1; sqInt header2; sqInt header3; - sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - sqInt next; + usqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; - sqInt sz3; sqInt target; usqInt w;
@@ -36657,21 +36656,7 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - /* begin objectAfter: */ - if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) { - error("no objects after the end of memory"); - } - if (((longAt(oop)) & TypeMask) == HeaderTypeFree) { - sz2 = (longAt(oop)) & AllButTypeMask; - } - else { - /* begin sizeBitsOf: */ - header3 = longAt(oop); - sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass - ? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask - : header3 & SizeMask); - } - next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]); + next = ((sqInt) (objectAfter(oop))); goto l1; } fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1; @@ -36686,7 +36671,7 @@ else { sz1 = realHeader & SizeMask; } - next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]); + next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]))); l1: /* end objectAfterWhileForwarding: */; if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
@@ -36740,18 +36725,18 @@ } /* begin safeObjectAfter: */ if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) { - sz3 = (longAt(newFreeChunk)) & AllButTypeMask; + sz2 = (longAt(newFreeChunk)) & AllButTypeMask; } else { /* begin sizeBitsOf: */ - header4 = longAt(newFreeChunk); - sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass + header3 = longAt(newFreeChunk); + sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask - : header4 & SizeMask); + : header3 & SizeMask); } - next = ((((usqInt)(newFreeChunk + sz3))) >= GIV(freeStart) + next = ((((usqInt)(newFreeChunk + sz2))) >= GIV(freeStart) ? GIV(freeStart) - : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask])); + : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask])); assert((next == GIV(freeStart)) || (next == (oopFromChunk(GIV(compEnd))))); if (next == GIV(freeStart)) { @@ -38627,7 +38612,7 @@ given object or free chunk in memory. Return freeStart when enumeration is complete. This is for assertion checking only. */
-static sqInt +static usqInt safeObjectAfter(sqInt oop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt header;
Modified: branches/Cog/nsspursrc/vm/cointerp.c =================================================================== --- branches/Cog/nsspursrc/vm/cointerp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/nsspursrc/vm/cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -21,6 +21,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sq.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2337,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.916"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.918"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -7018,7 +7019,7 @@ ((((CogMethod *) header2))->methodHeader))); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
@@ -14755,7 +14756,7 @@ ((((CogMethod *) header2))->methodHeader))); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
Modified: branches/Cog/nsspursrc/vm/cointerp.h =================================================================== --- branches/Cog/nsspursrc/vm/cointerp.h 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/nsspursrc/vm/cointerp.h 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -24,6 +24,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sqGnu.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2340,7 +2341,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.916"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.918"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -7027,7 +7028,7 @@ ((((CogMethod *) header2))->methodHeader))); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
@@ -14764,7 +14765,7 @@ ((((CogMethod *) header2))->methodHeader))); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c =================================================================== --- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - StackInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + StackInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -24,6 +24,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sqGnu.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2086,7 +2087,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.916"; +const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.918"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -6445,7 +6446,7 @@ header = longAt((GIV(method) + BaseHeaderSize) + (HeaderIndex << 2)); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
@@ -13992,7 +13993,7 @@ header = longAt((GIV(method) + BaseHeaderSize) + (HeaderIndex << 2)); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
Modified: branches/Cog/nsspurstacksrc/vm/interp.c =================================================================== --- branches/Cog/nsspurstacksrc/vm/interp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/nsspurstacksrc/vm/interp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - StackInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + StackInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -21,6 +21,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sq.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2083,7 +2084,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.916"; +const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.918"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -6436,7 +6437,7 @@ header = longAt((GIV(method) + BaseHeaderSize) + (HeaderIndex << 2)); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
@@ -13983,7 +13984,7 @@ header = longAt((GIV(method) + BaseHeaderSize) + (HeaderIndex << 2)); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Fri Oct 31 12:12:06 PDT 2014 + Sun Nov 2 18:53:51 PST 2014
Modified: branches/Cog/sistasrc/vm/cointerp.c =================================================================== --- branches/Cog/sistasrc/vm/cointerp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/sistasrc/vm/cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -21,6 +21,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sq.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -851,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; @@ -2083,7 +2084,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.916]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.918]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -4884,6 +4885,7 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); + null; goto l301; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -4901,7 +4903,7 @@ /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- /* return self */ + null; l301: /* end baseFrameReturn */; goto l300; } @@ -36706,15 +36708,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;
@@ -36725,7 +36729,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; @@ -36740,7 +36758,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)) {
@@ -36794,18 +36812,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)) { @@ -38681,7 +38699,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/sistasrc/vm/cointerp.h =================================================================== --- branches/Cog/sistasrc/vm/cointerp.h 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/sistasrc/vm/cointerp.h 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */
Modified: branches/Cog/sistasrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -24,6 +24,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sqGnu.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -854,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; @@ -2086,7 +2087,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.916]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.918]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -4893,6 +4894,7 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); + null; goto l301; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -4910,7 +4912,7 @@ /* begin fetchNextBytecode */ currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- /* return self */ + null; l301: /* end baseFrameReturn */; goto l300; } @@ -36715,15 +36717,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;
@@ -36734,7 +36738,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; @@ -36749,7 +36767,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)) {
@@ -36803,18 +36821,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)) { @@ -38690,7 +38708,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/spursistasrc/vm/cointerp.c =================================================================== --- branches/Cog/spursistasrc/vm/cointerp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/spursistasrc/vm/cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -21,6 +21,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sq.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2332,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.916]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.918]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
Modified: branches/Cog/spursistasrc/vm/cointerp.h =================================================================== --- branches/Cog/spursistasrc/vm/cointerp.h 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/spursistasrc/vm/cointerp.h 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */
Modified: branches/Cog/spursistasrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -24,6 +24,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sqGnu.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2335,7 +2336,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.916]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.918]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
Modified: branches/Cog/spursrc/vm/cointerp.c =================================================================== --- branches/Cog/spursrc/vm/cointerp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/spursrc/vm/cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -21,6 +21,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sq.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2324,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.916]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.918]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -6868,7 +6869,7 @@ ((((CogMethod *) header2))->methodHeader))); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = byteAtPointer(++localIP);
Modified: branches/Cog/spursrc/vm/cointerp.h =================================================================== --- branches/Cog/spursrc/vm/cointerp.h 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/spursrc/vm/cointerp.h 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */
Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -24,6 +24,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sqGnu.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2327,7 +2328,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.916]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.918]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
@@ -6877,7 +6878,7 @@ ((((CogMethod *) header2))->methodHeader))); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = byteAtPointer(++localIP);
Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c =================================================================== --- branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -2,11 +2,11 @@
/* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - StackInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + StackInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -24,6 +24,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sqGnu.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2076,7 +2077,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.916]"; +const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.918]"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -6295,7 +6296,7 @@ header = longAt((GIV(method) + BaseHeaderSize) + (HeaderIndex << 2)); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = byteAtPointer(++localIP);
Modified: branches/Cog/spurstacksrc/vm/interp.c =================================================================== --- branches/Cog/spurstacksrc/vm/interp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/spurstacksrc/vm/interp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - StackInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + StackInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -21,6 +21,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sq.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2073,7 +2074,7 @@ 0 }; char * breakSelector; sqInt breakSelectorLength = -1; -const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.916]"; +const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.918]"; volatile int sendTrace; sqInt suppressHeartbeatFlag;
@@ -6286,7 +6287,7 @@ header = longAt((GIV(method) + BaseHeaderSize) + (HeaderIndex << 2)); if ((header & (65536 << SmallIntegerShift)) && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + BaseHeaderSize))) { - localIP += 3; + localIP = (localIP + (3)) - 1; /* begin fetchNextBytecode */ currentBytecode = byteAtPointer(++localIP);
Modified: branches/Cog/src/vm/cointerp.c =================================================================== --- branches/Cog/src/vm/cointerp.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/src/vm/cointerp.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -21,6 +21,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sq.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -2075,7 +2076,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.916]"; +const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.918]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace;
Modified: branches/Cog/src/vm/cointerp.h =================================================================== --- branches/Cog/src/vm/cointerp.h 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/src/vm/cointerp.h 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */
Modified: branches/Cog/src/vm/cointerpmt.c =================================================================== --- branches/Cog/src/vm/cointerpmt.c 2014-10-31 19:13:28 UTC (rev 3120) +++ branches/Cog/src/vm/cointerpmt.c 2014-11-03 02:55:09 UTC (rev 3121) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 from - CoInterpreterMT VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae + CoInterpreterMT VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 */ -static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.916 uuid: 79925bdf-769f-446f-8532-f04f0e2f11ae " __DATE__ ; +static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.918 uuid: 17402dc7-cd8d-4656-8ec9-a74c22c85ac8 " __DATE__ ; char *__interpBuildInfo = __buildInfo;
@@ -21,6 +21,7 @@
#include <stddef.h> /* for e.g. alloca */ #include <setjmp.h> +#include <wchar.h> /* for wint_t */ #include "sq.h" #include "vmCallback.h" #include "sqMemoryFence.h" @@ -930,7 +931,7 @@ void printWronglySizedContexts(sqInt printContexts); static void restoreHeadersFromtofromandtofrom(sqInt firstIn, sqInt lastIn, sqInt hdrBaseIn, sqInt firstOut, sqInt lastOut, sqInt hdrBaseOut) NoDbgRegParms; static void runLeakCheckerForFullGC(sqInt fullGCFlag) NoDbgRegParms; -static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms; +static usqInt safeObjectAfter(sqInt oop) NoDbgRegParms; static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms; static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms; static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms; @@ -2172,7 +2173,7 @@ /* 574 */ (void (*)(void))0, /* 575 */ (void (*)(void))0, 0 }; -const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.916]"; +const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.918]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; sqInt willNotThreadWarnCount; @@ -4867,7 +4868,6 @@ GIV(framePointer) = localFP; ceEnterCogCodePopReceiverReg(); - null; goto l154; } localIP = pointerForOop(longAt(localFP + FoxIFSavedIP)); @@ -4882,7 +4882,7 @@ /* begin fetchNextBytecode */ currentBytecode = byteAtPointer(++localIP);
- null; + /* return self */ l154: /* end baseFrameReturn */; goto l153; } @@ -34477,17 +34477,15 @@ sqInt header1; sqInt header2; sqInt header3; - sqInt header4; usqInt lastWord; sqInt newFreeChunk; sqInt newOop; - sqInt next; + usqInt next; sqInt oop; sqInt realHeader; sqInt sz; sqInt sz1; sqInt sz2; - sqInt sz3; sqInt target; usqInt w;
@@ -34498,21 +34496,7 @@ /* begin objectAfterWhileForwarding: */ header2 = longAt(oop); if ((header2 & MarkBit) == 0) { - /* begin objectAfter: */ - if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) { - error("no objects after the end of memory"); - }
@@ Diff output truncated at 50000 characters. @@
vm-dev@lists.squeakfoundation.org