[Vm-dev] [commit][3096] CogVM source as per VMMaker.oscog-eem.891
commits at squeakvm.org
commits at squeakvm.org
Sun Oct 5 21:56:56 UTC 2014
Revision: 3096
Author: eliot
Date: 2014-10-05 14:56:54 -0700 (Sun, 05 Oct 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.891
Fix compilatiom of v3 VMs (fix v3 pinObject: type).
Fix Squeak V3 checkValidInlineCacheTag: (SmallInteger 0 is a valid cache tag).
Modified Paths:
--------------
branches/Cog/nscogsrc/vm/cogit.c
branches/Cog/nscogsrc/vm/cogit.h
branches/Cog/nscogsrc/vm/cointerp.c
branches/Cog/nscogsrc/vm/cointerp.h
branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
branches/Cog/scripts/uploadvms
branches/Cog/sistasrc/vm/cogit.c
branches/Cog/sistasrc/vm/cogit.h
branches/Cog/sistasrc/vm/cointerp.c
branches/Cog/sistasrc/vm/cointerp.h
branches/Cog/sistasrc/vm/gcc3x-cointerp.c
branches/Cog/src/vm/cogit.c
branches/Cog/src/vm/cogit.h
branches/Cog/src/vm/cointerp.c
branches/Cog/src/vm/cointerp.h
branches/Cog/src/vm/cointerpmt.c
branches/Cog/src/vm/cointerpmt.h
branches/Cog/src/vm/gcc3x-cointerp.c
branches/Cog/src/vm/gcc3x-cointerpmt.c
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/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/nscogsrc/vm/cogit.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a
+ CCodeGenerator VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a
+ StackToRegisterMappingCogit VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -15477,9 +15477,10 @@
static sqInt
checkValidInlineCacheTag(sqInt cacheTag)
{
- return (((cacheTag & ((1 << ShiftForWord) - 1)) == 0)
+ return (cacheTag == ConstZero)
+ || ((((cacheTag & ((1 << ShiftForWord) - 1)) == 0)
&& (((cacheTag >= (1 << (compactClassFieldLSB()))) && (cacheTag <= ((compactClassIndexOfHeader(-1)) << (compactClassFieldLSB()))))))
- || (checkValidObjectReference(cacheTag));
+ || (checkValidObjectReference(cacheTag)));
}
static sqInt
Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/nscogsrc/vm/cogit.h 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a
+ CCodeGenerator VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/nscogsrc/vm/cointerp.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -843,7 +843,7 @@
sqInt objectAfter(sqInt oop);
static sqInt okayOop(sqInt signedOop) NoDbgRegParms;
static sqInt oopHasAcceptableClass(sqInt signedOop) NoDbgRegParms;
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
static sqInt prepareForwardingTableForBecomingwithtwoWay(sqInt array1, sqInt array2, sqInt twoWayFlag) NoDbgRegParms;
void printMemory(void);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
@@ -851,7 +851,7 @@
void printWronglySizedContexts(sqInt printContexts);
static void restoreHeadersFromtofromandtofrom(sqInt firstIn, sqInt lastIn, sqInt hdrBaseIn, sqInt firstOut, sqInt lastOut, sqInt hdrBaseOut) NoDbgRegParms;
static void runLeakCheckerForFullGC(sqInt fullGCFlag) NoDbgRegParms;
-static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
+static usqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms;
static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms;
static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms;
@@ -2084,7 +2084,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.887";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.891";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -13058,7 +13058,7 @@
if ((((((sqInt) header)) < 0
? header & (65536 << SmallIntegerShift)
: (header & 536871934) != 0))
- && (localIP == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + (BaseHeaderSize)))) {
+ && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + (BaseHeaderSize)))) {
localIP += ((((sqInt) header)) < 0
? 3
: 0);
@@ -30829,16 +30829,15 @@
}
-/* Pin or unpin the receiver, i.e. make it immobile or mobile. Answer whether
- the object was
- already pinned. N.B. pinning does *not* prevent an object from being
- garbage collected. */
+/* Pin or unpin the receiver, i.e. make it immobile or mobile, based on the
+ argument. Answer whether the object was already pinned. N.B. pinning does
+ *not* prevent
+ an object from being garbage collected. */
static void
primitivePin(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt boolean;
- sqInt failure;
sqInt obj;
char *sp;
sqInt wasPinned;
@@ -30863,10 +30862,9 @@
return;
}
wasPinned = GIV(falseObj);
- /* begin pinObject: */
- GIV(primFailCode) = PrimErrUnsupported;
- if (failure != 0) {
- (GIV(primFailCode) = failure);
+ if (((boolean == GIV(trueObj))
+ && (pinObject(obj))) == 0) {
+ (GIV(primFailCode) = PrimErrNoMemory);
return;
}
@@ -36756,17 +36754,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;
@@ -36777,21 +36773,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;
@@ -36806,7 +36788,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)) {
@@ -36860,18 +36842,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 = ((newFreeChunk + sz3) >= GIV(freeStart)
+ next = ((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)) {
@@ -38021,10 +38003,11 @@
pinning.
*/
-void
+sqInt
pinObject(sqInt objOop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
GIV(primFailCode) = PrimErrUnsupported;
+ return 0;
}
@@ -38743,7 +38726,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-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/nscogsrc/vm/cointerp.h 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
@@ -141,7 +141,7 @@
sqInt literalCountOfMethodHeader(sqInt header);
void longPrintReferencesTo(sqInt anOop);
sqInt objectAfter(sqInt oop);
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
void printReferencesTo(sqInt anOop);
void printWronglySizedContexts(sqInt printContexts);
Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -846,7 +846,7 @@
sqInt objectAfter(sqInt oop);
static sqInt okayOop(sqInt signedOop) NoDbgRegParms;
static sqInt oopHasAcceptableClass(sqInt signedOop) NoDbgRegParms;
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
static sqInt prepareForwardingTableForBecomingwithtwoWay(sqInt array1, sqInt array2, sqInt twoWayFlag) NoDbgRegParms;
void printMemory(void);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
@@ -854,7 +854,7 @@
void printWronglySizedContexts(sqInt printContexts);
static void restoreHeadersFromtofromandtofrom(sqInt firstIn, sqInt lastIn, sqInt hdrBaseIn, sqInt firstOut, sqInt lastOut, sqInt hdrBaseOut) NoDbgRegParms;
static void runLeakCheckerForFullGC(sqInt fullGCFlag) NoDbgRegParms;
-static sqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
+static usqInt safeObjectAfter(sqInt oop) NoDbgRegParms;
static sqInt safePrintStringOf(sqInt oop) NoDbgRegParms;
static sqInt shortentoIndexableSize(sqInt obj, sqInt nSlots) NoDbgRegParms;
static sqInt sizeBitsOfSafe(sqInt oop) NoDbgRegParms;
@@ -2087,7 +2087,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.887";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.891";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -13067,7 +13067,7 @@
if ((((((sqInt) header)) < 0
? header & (65536 << SmallIntegerShift)
: (header & 536871934) != 0))
- && (localIP == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + (BaseHeaderSize)))) {
+ && ((((sqInt)localIP)) == ((GIV(method) + ((LiteralStart + (literalCountOfMethodHeader(header))) * BytesPerOop)) + (BaseHeaderSize)))) {
localIP += ((((sqInt) header)) < 0
? 3
: 0);
@@ -30838,16 +30838,15 @@
}
-/* Pin or unpin the receiver, i.e. make it immobile or mobile. Answer whether
- the object was
- already pinned. N.B. pinning does *not* prevent an object from being
- garbage collected. */
+/* Pin or unpin the receiver, i.e. make it immobile or mobile, based on the
+ argument. Answer whether the object was already pinned. N.B. pinning does
+ *not* prevent
+ an object from being garbage collected. */
static void
primitivePin(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt boolean;
- sqInt failure;
sqInt obj;
char *sp;
sqInt wasPinned;
@@ -30872,10 +30871,9 @@
return;
}
wasPinned = GIV(falseObj);
- /* begin pinObject: */
- GIV(primFailCode) = PrimErrUnsupported;
- if (failure != 0) {
- (GIV(primFailCode) = failure);
+ if (((boolean == GIV(trueObj))
+ && (pinObject(obj))) == 0) {
+ (GIV(primFailCode) = PrimErrNoMemory);
return;
}
@@ -36765,17 +36763,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;
@@ -36786,21 +36782,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;
@@ -36815,7 +36797,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)) {
@@ -36869,18 +36851,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 = ((newFreeChunk + sz3) >= GIV(freeStart)
+ next = ((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)) {
@@ -38030,10 +38012,11 @@
pinning.
*/
-void
+sqInt
pinObject(sqInt objOop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
GIV(primFailCode) = PrimErrUnsupported;
+ return 0;
}
@@ -38752,7 +38735,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;
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Fri Oct 3 14:48:56 PDT 2014
+ Sun Oct 5 14:56:31 PDT 2014
Modified: branches/Cog/scripts/uploadvms
===================================================================
--- branches/Cog/scripts/uploadvms 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/scripts/uploadvms 2014-10-05 21:56:54 UTC (rev 3096)
@@ -57,6 +57,8 @@
case $1 in
-archives) JustUpload=JustUpload;;
-all) all;;
+ -spur) CheckDMG=1;CheckMSI=1;
+ LSPUR=1;MSPUR=1;WSPUR=1;LNSSPUR=1;MNSSPUR=1;WNSSPUR=1;;
-c) LCOG=1;LTCOG=1;MCOG=1;MTCOG=1;WCOG=1;WMTCOG=1;
LSPUR=1;MSPUR=1;WSPUR=1;;
-cl) LCOG=1;LTCOG=1;LSPUR=1;;
@@ -131,7 +133,7 @@
echo upload $a
done
fi
-if [ -n "$CheckDMG" -a ! -f "Newspeak Virtual Machine-$TAG.dmg" ]; then
+if [ -n "$CheckDMG" -a -n "$MNSCOG" -a ! -f "Newspeak Virtual Machine-$TAG.dmg" ]; then
NMID=../build.macos32x86/newspeak.cog.v3/installer
if [ -f "Newspeak Virtual Machine-$TAG.dmg" ]; then
true
@@ -142,7 +144,7 @@
exit 1
fi
fi
-if [ -n "$CheckDMG" -a ! -f "Newspeak Spur Virtual Machine-$TAG.dmg" ]; then
+if [ -n "$CheckDMG" -a -n "$MNSSPUR" -a ! -f "Newspeak Spur Virtual Machine-$TAG.dmg" ]; then
NMID=../build.macos32x86/newspeak.cog.spur/installer
if [ -f "Newspeak Virtual Spur Machine-$TAG.dmg" ]; then
true
@@ -153,7 +155,7 @@
exit 1
fi
fi
-if [ -n "$CheckMSI" -a ! -f nsvm-$TAG.msi ]; then
+if [ -n "$CheckMSI" -a -n "$WNSCOG" -a ! -f nsvm-$TAG.msi ]; then
NMID=../build.win32x86/newspeak.cog.v3/installer
if [ -f nsvm-$TAG.msi ]; then
true
@@ -164,7 +166,7 @@
exit 1
fi
fi
-if [ -n "$CheckMSI" -a ! -f nsvm-spur-$TAG.msi ]; then
+if [ -n "$CheckMSI" -a -n "$WNSSPUR" -a ! -f nsvm-spur-$TAG.msi ]; then
NMID=../build.win32x86/newspeak.cog.spur/installer
if [ -f nsvm-spur-$TAG.msi ]; then
true
Modified: branches/Cog/sistasrc/vm/cogit.c
===================================================================
--- branches/Cog/sistasrc/vm/cogit.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/sistasrc/vm/cogit.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a
+ CCodeGenerator VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- SistaStackToRegisterMappingCogit VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a
+ SistaStackToRegisterMappingCogit VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -15077,9 +15077,10 @@
static sqInt
checkValidInlineCacheTag(sqInt cacheTag)
{
- return (((cacheTag & ((1 << ShiftForWord) - 1)) == 0)
+ return (cacheTag == ConstZero)
+ || ((((cacheTag & ((1 << ShiftForWord) - 1)) == 0)
&& (((cacheTag >= (1 << (compactClassFieldLSB()))) && (cacheTag <= ((compactClassIndexOfHeader(-1)) << (compactClassFieldLSB()))))))
- || (checkValidObjectReference(cacheTag));
+ || (checkValidObjectReference(cacheTag)));
}
static sqInt
Modified: branches/Cog/sistasrc/vm/cogit.h
===================================================================
--- branches/Cog/sistasrc/vm/cogit.h 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/sistasrc/vm/cogit.h 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a
+ CCodeGenerator VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
Modified: branches/Cog/sistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/sistasrc/vm/cointerp.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/sistasrc/vm/cointerp.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -842,7 +842,7 @@
sqInt objectAfter(sqInt oop);
static sqInt okayOop(sqInt signedOop) NoDbgRegParms;
static sqInt oopHasAcceptableClass(sqInt signedOop) NoDbgRegParms;
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
static sqInt prepareForwardingTableForBecomingwithtwoWay(sqInt array1, sqInt array2, sqInt twoWayFlag) NoDbgRegParms;
void printMemory(void);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
@@ -2081,7 +2081,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.887]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.891]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -30900,16 +30900,15 @@
}
-/* Pin or unpin the receiver, i.e. make it immobile or mobile. Answer whether
- the object was
- already pinned. N.B. pinning does *not* prevent an object from being
- garbage collected. */
+/* Pin or unpin the receiver, i.e. make it immobile or mobile, based on the
+ argument. Answer whether the object was already pinned. N.B. pinning does
+ *not* prevent
+ an object from being garbage collected. */
static void
primitivePin(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt boolean;
- sqInt failure;
sqInt obj;
char *sp;
sqInt wasPinned;
@@ -30934,10 +30933,9 @@
return;
}
wasPinned = GIV(falseObj);
- /* begin pinObject: */
- GIV(primFailCode) = PrimErrUnsupported;
- if (failure != 0) {
- (GIV(primFailCode) = failure);
+ if (((boolean == GIV(trueObj))
+ && (pinObject(obj))) == 0) {
+ (GIV(primFailCode) = PrimErrNoMemory);
return;
}
@@ -38092,10 +38090,11 @@
pinning.
*/
-void
+sqInt
pinObject(sqInt objOop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
GIV(primFailCode) = PrimErrUnsupported;
+ return 0;
}
Modified: branches/Cog/sistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/sistasrc/vm/cointerp.h 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/sistasrc/vm/cointerp.h 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
@@ -139,7 +139,7 @@
sqInt literalCountOfMethodHeader(sqInt header);
void longPrintReferencesTo(sqInt anOop);
sqInt objectAfter(sqInt oop);
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
void printReferencesTo(sqInt anOop);
void printWronglySizedContexts(sqInt printContexts);
Modified: branches/Cog/sistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/sistasrc/vm/gcc3x-cointerp.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -845,7 +845,7 @@
sqInt objectAfter(sqInt oop);
static sqInt okayOop(sqInt signedOop) NoDbgRegParms;
static sqInt oopHasAcceptableClass(sqInt signedOop) NoDbgRegParms;
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
static sqInt prepareForwardingTableForBecomingwithtwoWay(sqInt array1, sqInt array2, sqInt twoWayFlag) NoDbgRegParms;
void printMemory(void);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
@@ -2084,7 +2084,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.887]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.891]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -30909,16 +30909,15 @@
}
-/* Pin or unpin the receiver, i.e. make it immobile or mobile. Answer whether
- the object was
- already pinned. N.B. pinning does *not* prevent an object from being
- garbage collected. */
+/* Pin or unpin the receiver, i.e. make it immobile or mobile, based on the
+ argument. Answer whether the object was already pinned. N.B. pinning does
+ *not* prevent
+ an object from being garbage collected. */
static void
primitivePin(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt boolean;
- sqInt failure;
sqInt obj;
char *sp;
sqInt wasPinned;
@@ -30943,10 +30942,9 @@
return;
}
wasPinned = GIV(falseObj);
- /* begin pinObject: */
- GIV(primFailCode) = PrimErrUnsupported;
- if (failure != 0) {
- (GIV(primFailCode) = failure);
+ if (((boolean == GIV(trueObj))
+ && (pinObject(obj))) == 0) {
+ (GIV(primFailCode) = PrimErrNoMemory);
return;
}
@@ -38101,10 +38099,11 @@
pinning.
*/
-void
+sqInt
pinObject(sqInt objOop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
GIV(primFailCode) = PrimErrUnsupported;
+ return 0;
}
Modified: branches/Cog/src/vm/cogit.c
===================================================================
--- branches/Cog/src/vm/cogit.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/src/vm/cogit.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a
+ CCodeGenerator VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a
+ StackToRegisterMappingCogit VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -14686,9 +14686,10 @@
static sqInt
checkValidInlineCacheTag(sqInt cacheTag)
{
- return (((cacheTag & ((1 << ShiftForWord) - 1)) == 0)
+ return (cacheTag == ConstZero)
+ || ((((cacheTag & ((1 << ShiftForWord) - 1)) == 0)
&& (((cacheTag >= (1 << (compactClassFieldLSB()))) && (cacheTag <= ((compactClassIndexOfHeader(-1)) << (compactClassFieldLSB()))))))
- || (checkValidObjectReference(cacheTag));
+ || (checkValidObjectReference(cacheTag)));
}
static sqInt
Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/src/vm/cogit.h 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.889 uuid: f7ca0f83-4116-4c07-8307-3c23f8f5600a
+ CCodeGenerator VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
Modified: branches/Cog/src/vm/cointerp.c
===================================================================
--- branches/Cog/src/vm/cointerp.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/src/vm/cointerp.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -835,7 +835,7 @@
sqInt objectAfter(sqInt oop);
static sqInt okayOop(sqInt signedOop) NoDbgRegParms;
static sqInt oopHasAcceptableClass(sqInt signedOop) NoDbgRegParms;
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
static sqInt prepareForwardingTableForBecomingwithtwoWay(sqInt array1, sqInt array2, sqInt twoWayFlag) NoDbgRegParms;
void printMemory(void);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
@@ -843,7 +843,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;
@@ -2073,7 +2073,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.887]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.891]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -26280,16 +26280,15 @@
}
-/* Pin or unpin the receiver, i.e. make it immobile or mobile. Answer whether
- the object was
- already pinned. N.B. pinning does *not* prevent an object from being
- garbage collected. */
+/* Pin or unpin the receiver, i.e. make it immobile or mobile, based on the
+ argument. Answer whether the object was already pinned. N.B. pinning does
+ *not* prevent
+ an object from being garbage collected. */
static void
primitivePin(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt boolean;
- sqInt failure;
sqInt obj;
char *sp;
sqInt wasPinned;
@@ -26314,10 +26313,9 @@
return;
}
wasPinned = GIV(falseObj);
- /* begin pinObject: */
- GIV(primFailCode) = PrimErrUnsupported;
- if (failure != 0) {
- (GIV(primFailCode) = failure);
+ if (((boolean == GIV(trueObj))
+ && (pinObject(obj))) == 0) {
+ (GIV(primFailCode) = PrimErrNoMemory);
return;
}
@@ -32202,17 +32200,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;
@@ -32223,21 +32219,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;
@@ -32252,7 +32234,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)) {
@@ -32306,18 +32288,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 = ((newFreeChunk + sz3) >= GIV(freeStart)
+ next = ((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)) {
@@ -33467,10 +33449,11 @@
pinning.
*/
-void
+sqInt
pinObject(sqInt objOop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
GIV(primFailCode) = PrimErrUnsupported;
+ return 0;
}
@@ -34189,7 +34172,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/src/vm/cointerp.h
===================================================================
--- branches/Cog/src/vm/cointerp.h 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/src/vm/cointerp.h 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
@@ -137,7 +137,7 @@
sqInt literalCountOfMethodHeader(sqInt header);
void longPrintReferencesTo(sqInt anOop);
sqInt objectAfter(sqInt oop);
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
void printReferencesTo(sqInt anOop);
void printWronglySizedContexts(sqInt printContexts);
Modified: branches/Cog/src/vm/cointerpmt.c
===================================================================
--- branches/Cog/src/vm/cointerpmt.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/src/vm/cointerpmt.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- CoInterpreterMT VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CoInterpreterMT VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -921,7 +921,7 @@
sqInt objectAfter(sqInt oop);
static sqInt okayOop(sqInt signedOop) NoDbgRegParms;
static sqInt oopHasAcceptableClass(sqInt signedOop) NoDbgRegParms;
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
static sqInt prepareForwardingTableForBecomingwithtwoWay(sqInt array1, sqInt array2, sqInt twoWayFlag) NoDbgRegParms;
void printMemory(void);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
@@ -2170,7 +2170,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.887]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.891]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
sqInt willNotThreadWarnCount;
@@ -28644,16 +28644,15 @@
}
-/* Pin or unpin the receiver, i.e. make it immobile or mobile. Answer whether
- the object was
- already pinned. N.B. pinning does *not* prevent an object from being
- garbage collected. */
+/* Pin or unpin the receiver, i.e. make it immobile or mobile, based on the
+ argument. Answer whether the object was already pinned. N.B. pinning does
+ *not* prevent
+ an object from being garbage collected. */
static void
primitivePin(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt boolean;
- sqInt failure;
sqInt obj;
char *sp;
sqInt wasPinned;
@@ -28678,10 +28677,9 @@
return;
}
wasPinned = GIV(falseObj);
- /* begin pinObject: */
- GIV(primFailCode) = PrimErrUnsupported;
- if (failure != 0) {
- (GIV(primFailCode) = failure);
+ if (((boolean == GIV(trueObj))
+ && (pinObject(obj))) == 0) {
+ (GIV(primFailCode) = PrimErrNoMemory);
return;
}
@@ -35784,10 +35782,11 @@
pinning.
*/
-void
+sqInt
pinObject(sqInt objOop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
GIV(primFailCode) = PrimErrUnsupported;
+ return 0;
}
Modified: branches/Cog/src/vm/cointerpmt.h
===================================================================
--- branches/Cog/src/vm/cointerpmt.h 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/src/vm/cointerpmt.h 2014-10-05 21:56:54 UTC (rev 3096)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
@@ -141,7 +141,7 @@
sqInt literalCountOfMethodHeader(sqInt header);
void longPrintReferencesTo(sqInt anOop);
sqInt objectAfter(sqInt oop);
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
void printReferencesTo(sqInt anOop);
void printWronglySizedContexts(sqInt printContexts);
Modified: branches/Cog/src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/src/vm/gcc3x-cointerp.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/src/vm/gcc3x-cointerp.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -838,7 +838,7 @@
sqInt objectAfter(sqInt oop);
static sqInt okayOop(sqInt signedOop) NoDbgRegParms;
static sqInt oopHasAcceptableClass(sqInt signedOop) NoDbgRegParms;
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
static sqInt prepareForwardingTableForBecomingwithtwoWay(sqInt array1, sqInt array2, sqInt twoWayFlag) NoDbgRegParms;
void printMemory(void);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
@@ -846,7 +846,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;
@@ -2076,7 +2076,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.887]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.891]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -26289,16 +26289,15 @@
}
-/* Pin or unpin the receiver, i.e. make it immobile or mobile. Answer whether
- the object was
- already pinned. N.B. pinning does *not* prevent an object from being
- garbage collected. */
+/* Pin or unpin the receiver, i.e. make it immobile or mobile, based on the
+ argument. Answer whether the object was already pinned. N.B. pinning does
+ *not* prevent
+ an object from being garbage collected. */
static void
primitivePin(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt boolean;
- sqInt failure;
sqInt obj;
char *sp;
sqInt wasPinned;
@@ -26323,10 +26322,9 @@
return;
}
wasPinned = GIV(falseObj);
- /* begin pinObject: */
- GIV(primFailCode) = PrimErrUnsupported;
- if (failure != 0) {
- (GIV(primFailCode) = failure);
+ if (((boolean == GIV(trueObj))
+ && (pinObject(obj))) == 0) {
+ (GIV(primFailCode) = PrimErrNoMemory);
return;
}
@@ -32211,17 +32209,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;
@@ -32232,21 +32228,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;
@@ -32261,7 +32243,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)) {
@@ -32315,18 +32297,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 = ((newFreeChunk + sz3) >= GIV(freeStart)
+ next = ((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)) {
@@ -33476,10 +33458,11 @@
pinning.
*/
-void
+sqInt
pinObject(sqInt objOop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
GIV(primFailCode) = PrimErrUnsupported;
+ return 0;
}
@@ -34198,7 +34181,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/src/vm/gcc3x-cointerpmt.c
===================================================================
--- branches/Cog/src/vm/gcc3x-cointerpmt.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/src/vm/gcc3x-cointerpmt.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- CoInterpreterMT VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CoInterpreterMT VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -924,7 +924,7 @@
sqInt objectAfter(sqInt oop);
static sqInt okayOop(sqInt signedOop) NoDbgRegParms;
static sqInt oopHasAcceptableClass(sqInt signedOop) NoDbgRegParms;
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
static sqInt prepareForwardingTableForBecomingwithtwoWay(sqInt array1, sqInt array2, sqInt twoWayFlag) NoDbgRegParms;
void printMemory(void);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
@@ -2173,7 +2173,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.887]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.891]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
sqInt willNotThreadWarnCount;
@@ -28653,16 +28653,15 @@
}
-/* Pin or unpin the receiver, i.e. make it immobile or mobile. Answer whether
- the object was
- already pinned. N.B. pinning does *not* prevent an object from being
- garbage collected. */
+/* Pin or unpin the receiver, i.e. make it immobile or mobile, based on the
+ argument. Answer whether the object was already pinned. N.B. pinning does
+ *not* prevent
+ an object from being garbage collected. */
static void
primitivePin(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt boolean;
- sqInt failure;
sqInt obj;
char *sp;
sqInt wasPinned;
@@ -28687,10 +28686,9 @@
return;
}
wasPinned = GIV(falseObj);
- /* begin pinObject: */
- GIV(primFailCode) = PrimErrUnsupported;
- if (failure != 0) {
- (GIV(primFailCode) = failure);
+ if (((boolean == GIV(trueObj))
+ && (pinObject(obj))) == 0) {
+ (GIV(primFailCode) = PrimErrNoMemory);
return;
}
@@ -35793,10 +35791,11 @@
pinning.
*/
-void
+sqInt
pinObject(sqInt objOop)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
GIV(primFailCode) = PrimErrUnsupported;
+ return 0;
}
Modified: branches/Cog/stacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/stacksrc/vm/gcc3x-interp.c 2014-10-03 21:49:26 UTC (rev 3095)
+++ branches/Cog/stacksrc/vm/gcc3x-interp.c 2014-10-05 21:56:54 UTC (rev 3096)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
from
- StackInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81
+ StackInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.887 uuid: f980d45a-5622-46f6-95d9-ac8d00a34e81 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.891 uuid: 2b1ec85c-bd1d-4299-938a-80aef455e476 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -597,7 +597,7 @@
sqInt objectAfter(sqInt oop);
static sqInt okayOop(sqInt signedOop) NoDbgRegParms;
static sqInt oopHasAcceptableClass(sqInt signedOop) NoDbgRegParms;
-void pinObject(sqInt objOop);
+sqInt pinObject(sqInt objOop);
static sqInt prepareForwardingTableForBecomingwithtwoWay(sqInt array1, sqInt array2, sqInt twoWayFlag) NoDbgRegParms;
void printMemory(void);
void printObjectsFromto(sqInt startAddress, sqInt endAddress);
@@ -1858,7 +1858,7 @@
0 };
char * breakSelector;
sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.887]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.891]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -16359,16 +16359,15 @@
}
-/* Pin or unpin the receiver, i.e. make it immobile or mobile. Answer whether
- the object was
- already pinned. N.B. pinning does *not* prevent an object from being
- garbage collected. */
+/* Pin or unpin the receiver, i.e. make it immobile or mobile, based on the
+ argument. Answer whether the object was already pinned. N.B. pinning does
+ *not* prevent
+ an object from being garbage collected. */
static void
primitivePin(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt boolean;
- sqInt failure;
sqInt obj;
char *sp;
sqInt wasPinned;
@@ -16393,10 +16392,9 @@
return;
}
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list