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. @@