[Vm-dev] [commit][2987] CogVM source as per VMMaker.oscog-eem.769
commits at squeakvm.org
commits at squeakvm.org
Wed Jun 11 21:26:18 UTC 2014
Revision: 2987
Author: eliot
Date: 2014-06-11 14:26:16 -0700 (Wed, 11 Jun 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.769
Spur: checkTraversableSortedFreeList needs to be called through assert; it is
expensive. And fix signed comparison in loop in checkTraversableSortedFreeList.
Modified Paths:
--------------
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspursrc/vm/interp.h
branches/Cog/nsspursrc/vm/vmCallback.h
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/nsspurstacksrc/vm/interp.h
branches/Cog/nsspurstacksrc/vm/vmCallback.h
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursistasrc/vm/interp.h
branches/Cog/spursistasrc/vm/vmCallback.h
branches/Cog/spursrc/vm/cointerp.c
branches/Cog/spursrc/vm/cointerp.h
branches/Cog/spursrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/interp.h
branches/Cog/spursrc/vm/vmCallback.h
branches/Cog/spurstacksrc/vm/gcc3x-interp.c
branches/Cog/spurstacksrc/vm/interp.c
branches/Cog/spurstacksrc/vm/interp.h
branches/Cog/spurstacksrc/vm/vmCallback.h
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
from
- CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -494,7 +494,7 @@
static void checkProfileTick(sqInt aPrimitiveMethod) NoDbgRegParms;
static void checkSegments(void);
static sqInt checkStackIntegrity(void);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAlien(void);
sqInt classArray(void);
sqInt classAtIndex(sqInt classIndex);
@@ -2238,7 +2238,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.767";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.769";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -22007,10 +22007,11 @@
return ok;
}
-void
+sqInt
checkTraversableSortedFreeList(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt freeChunk;
+ sqInt limit;
sqInt next;
sqInt o;
sqInt objOop;
@@ -22031,12 +22032,15 @@
assert((long64At(objOop1)) != 0);
if (((longAt(objOop1)) & 0x3FFFFF) == 0) {
assert(objOop1 == freeChunk);
+ next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
/* coInterpreter transcript cr; print: freeChunk; tab; print: o; tab; print: prevFree; nextPutAll: '<->'; print: next; flush. */
- next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
+ limit = (next == 0
+ ? GIV(endOfMemory)
+ : next);
objOop = freeChunk;
- while (((objOop = objectAfter(objOop))) < next) {
+ while (oopisLessThan((objOop = objectAfter(objOop)), limit)) {
assert(!(isFreeObject(objOop)));
}
prevFree = freeChunk;
@@ -22051,6 +22055,7 @@
assert(prevFree == GIV(lastFreeChunk));
assert(freeChunk == 0);
+ return 1;
}
sqInt
@@ -22834,7 +22839,7 @@
free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
}
}
- null;
+ assert(checkTraversableSortedFreeList());
l1: /* end pigCompact */;
eliminateAndFreeForwardersForPigCompact();
}
@@ -24675,7 +24680,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
assert((numberOfForwarders()) == 0);
}
@@ -29120,7 +29125,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
}
@@ -60964,7 +60969,7 @@
sqInt prevPrevFree;
sqInt start;
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
GIV(totalFreeOldSpace) = 0;
/* begin sortedFreeListDo: */
free = GIV(firstFreeChunk);
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
@@ -66,7 +66,7 @@
sqInt checkOkayInterpreterObjects(sqInt writeBack);
sqInt checkOkayOop(usqInt oop);
sqInt checkOopHasOkayClass(usqInt obj);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAtIndex(sqInt classIndex);
sqInt classFloatCompactIndex(void);
sqInt classIndexMask(void);
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-06-11 21:26:16 UTC (rev 2987)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
from
- CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -497,7 +497,7 @@
static void checkProfileTick(sqInt aPrimitiveMethod) NoDbgRegParms;
static void checkSegments(void);
static sqInt checkStackIntegrity(void);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAlien(void);
sqInt classArray(void);
sqInt classAtIndex(sqInt classIndex);
@@ -2241,7 +2241,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.767";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.769";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -22016,10 +22016,11 @@
return ok;
}
-void
+sqInt
checkTraversableSortedFreeList(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt freeChunk;
+ sqInt limit;
sqInt next;
sqInt o;
sqInt objOop;
@@ -22040,12 +22041,15 @@
assert((long64At(objOop1)) != 0);
if (((longAt(objOop1)) & 0x3FFFFF) == 0) {
assert(objOop1 == freeChunk);
+ next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
/* coInterpreter transcript cr; print: freeChunk; tab; print: o; tab; print: prevFree; nextPutAll: '<->'; print: next; flush. */
- next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
+ limit = (next == 0
+ ? GIV(endOfMemory)
+ : next);
objOop = freeChunk;
- while (((objOop = objectAfter(objOop))) < next) {
+ while (oopisLessThan((objOop = objectAfter(objOop)), limit)) {
assert(!(isFreeObject(objOop)));
}
prevFree = freeChunk;
@@ -22060,6 +22064,7 @@
assert(prevFree == GIV(lastFreeChunk));
assert(freeChunk == 0);
+ return 1;
}
sqInt
@@ -22843,7 +22848,7 @@
free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
}
}
- null;
+ assert(checkTraversableSortedFreeList());
l1: /* end pigCompact */;
eliminateAndFreeForwardersForPigCompact();
}
@@ -24684,7 +24689,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
assert((numberOfForwarders()) == 0);
}
@@ -29129,7 +29134,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
}
@@ -60973,7 +60978,7 @@
sqInt prevPrevFree;
sqInt start;
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
GIV(totalFreeOldSpace) = 0;
/* begin sortedFreeListDo: */
free = GIV(firstFreeChunk);
Modified: branches/Cog/nsspursrc/vm/interp.h
===================================================================
--- branches/Cog/nsspursrc/vm/interp.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/nsspursrc/vm/interp.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/nsspursrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nsspursrc/vm/vmCallback.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/nsspursrc/vm/vmCallback.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
#define VM_CALLBACK_INC 1
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-06-11 21:26:16 UTC (rev 2987)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
from
- StackInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ StackInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -410,7 +410,7 @@
static void checkProfileTick(sqInt aPrimitiveMethod) NoDbgRegParms;
static void checkSegments(void);
static sqInt checkStackIntegrity(void);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAlien(void);
sqInt classArray(void);
sqInt classAtIndex(sqInt classIndex);
@@ -2024,7 +2024,7 @@
0 };
char * breakSelector;
sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.767";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.769";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -19002,10 +19002,11 @@
return ok;
}
-void
+sqInt
checkTraversableSortedFreeList(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt freeChunk;
+ sqInt limit;
sqInt next;
sqInt o;
sqInt objOop;
@@ -19026,12 +19027,15 @@
assert((long64At(objOop1)) != 0);
if (((longAt(objOop1)) & 0x3FFFFF) == 0) {
assert(objOop1 == freeChunk);
+ next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
/* coInterpreter transcript cr; print: freeChunk; tab; print: o; tab; print: prevFree; nextPutAll: '<->'; print: next; flush. */
- next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
+ limit = (next == 0
+ ? GIV(endOfMemory)
+ : next);
objOop = freeChunk;
- while (((objOop = objectAfter(objOop))) < next) {
+ while (oopisLessThan((objOop = objectAfter(objOop)), limit)) {
assert(!(isFreeObject(objOop)));
}
prevFree = freeChunk;
@@ -19046,6 +19050,7 @@
assert(prevFree == GIV(lastFreeChunk));
assert(freeChunk == 0);
+ return 1;
}
sqInt
@@ -19730,7 +19735,7 @@
free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
}
}
- null;
+ assert(checkTraversableSortedFreeList());
l1: /* end pigCompact */;
eliminateAndFreeForwardersForPigCompact();
}
@@ -21270,7 +21275,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
assert((numberOfForwarders()) == 0);
}
@@ -24931,7 +24936,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
}
@@ -54340,7 +54345,7 @@
sqInt prevPrevFree;
sqInt start;
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
GIV(totalFreeOldSpace) = 0;
/* begin sortedFreeListDo: */
free = GIV(firstFreeChunk);
Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/nsspurstacksrc/vm/interp.c 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
from
- StackInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ StackInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -407,7 +407,7 @@
static void checkProfileTick(sqInt aPrimitiveMethod) NoDbgRegParms;
static void checkSegments(void);
static sqInt checkStackIntegrity(void);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAlien(void);
sqInt classArray(void);
sqInt classAtIndex(sqInt classIndex);
@@ -2021,7 +2021,7 @@
0 };
char * breakSelector;
sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.767";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.769";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -18993,10 +18993,11 @@
return ok;
}
-void
+sqInt
checkTraversableSortedFreeList(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt freeChunk;
+ sqInt limit;
sqInt next;
sqInt o;
sqInt objOop;
@@ -19017,12 +19018,15 @@
assert((long64At(objOop1)) != 0);
if (((longAt(objOop1)) & 0x3FFFFF) == 0) {
assert(objOop1 == freeChunk);
+ next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
/* coInterpreter transcript cr; print: freeChunk; tab; print: o; tab; print: prevFree; nextPutAll: '<->'; print: next; flush. */
- next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
+ limit = (next == 0
+ ? GIV(endOfMemory)
+ : next);
objOop = freeChunk;
- while (((objOop = objectAfter(objOop))) < next) {
+ while (oopisLessThan((objOop = objectAfter(objOop)), limit)) {
assert(!(isFreeObject(objOop)));
}
prevFree = freeChunk;
@@ -19037,6 +19041,7 @@
assert(prevFree == GIV(lastFreeChunk));
assert(freeChunk == 0);
+ return 1;
}
sqInt
@@ -19721,7 +19726,7 @@
free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
}
}
- null;
+ assert(checkTraversableSortedFreeList());
l1: /* end pigCompact */;
eliminateAndFreeForwardersForPigCompact();
}
@@ -21261,7 +21266,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
assert((numberOfForwarders()) == 0);
}
@@ -24922,7 +24927,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
}
@@ -54331,7 +54336,7 @@
sqInt prevPrevFree;
sqInt start;
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
GIV(totalFreeOldSpace) = 0;
/* begin sortedFreeListDo: */
free = GIV(firstFreeChunk);
Modified: branches/Cog/nsspurstacksrc/vm/interp.h
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/nsspurstacksrc/vm/interp.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/nsspurstacksrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nsspurstacksrc/vm/vmCallback.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/nsspurstacksrc/vm/vmCallback.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
#define VM_CALLBACK_INC 1
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Wed Jun 11 08:24:08 PDT 2014
+ Wed Jun 11 14:25:26 PDT 2014
Modified: branches/Cog/spursistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.c 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spursistasrc/vm/cointerp.c 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
from
- CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -491,7 +491,7 @@
static void checkProfileTick(sqInt aPrimitiveMethod) NoDbgRegParms;
static void checkSegments(void);
static sqInt checkStackIntegrity(void);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAlien(void);
sqInt classArray(void);
sqInt classAtIndex(sqInt classIndex);
@@ -1334,7 +1334,7 @@
static void setSignalLowSpaceFlagAndSaveProcess(void);
static void setTraceFlagOnContextsFramesPageIfNeeded(sqInt aContext) NoDbgRegParms;
sqInt shiftForWord(void);
-static usqInt shortentoIndexableSize(sqInt objOop, sqInt indexableSize) NoDbgRegParms;
+static sqInt shortentoIndexableSize(sqInt objOop, sqInt indexableSize) NoDbgRegParms;
static sqInt shortPrintContext(sqInt aContext) NoDbgRegParms;
static sqInt shortPrintFrameAndCallers(char *theFP) NoDbgRegParms;
EXPORT(void) shortPrintFramesInPage(StackPage *thePage);
@@ -2233,7 +2233,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.767]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.769]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -17345,10 +17345,11 @@
return ok;
}
-void
+sqInt
checkTraversableSortedFreeList(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt freeChunk;
+ sqInt limit;
sqInt next;
sqInt o;
sqInt objOop;
@@ -17369,12 +17370,15 @@
assert((long64At(objOop1)) != 0);
if (((longAt(objOop1)) & 0x3FFFFF) == 0) {
assert(objOop1 == freeChunk);
+ next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
/* coInterpreter transcript cr; print: freeChunk; tab; print: o; tab; print: prevFree; nextPutAll: '<->'; print: next; flush. */
- next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
+ limit = (next == 0
+ ? GIV(endOfMemory)
+ : next);
objOop = freeChunk;
- while (((objOop = objectAfter(objOop))) < next) {
+ while (oopisLessThan((objOop = objectAfter(objOop)), limit)) {
assert(!(isFreeObject(objOop)));
}
prevFree = freeChunk;
@@ -17389,6 +17393,7 @@
assert(prevFree == GIV(lastFreeChunk));
assert(freeChunk == 0);
+ return 1;
}
sqInt
@@ -18172,7 +18177,7 @@
free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
}
}
- null;
+ assert(checkTraversableSortedFreeList());
l1: /* end pigCompact */;
eliminateAndFreeForwardersForPigCompact();
}
@@ -20006,7 +20011,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
assert((numberOfForwarders()) == 0);
}
@@ -24342,7 +24347,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
}
@@ -55738,7 +55743,7 @@
sqInt prevPrevFree;
sqInt start;
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
GIV(totalFreeOldSpace) = 0;
/* begin sortedFreeListDo: */
free = GIV(firstFreeChunk);
@@ -57637,7 +57642,7 @@
zero if no change
was possible. */
-static usqInt
+static sqInt
shortentoIndexableSize(sqInt objOop, sqInt indexableSize)
{
usqInt bytesAfter;
Modified: branches/Cog/spursistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spursistasrc/vm/cointerp.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
@@ -65,7 +65,7 @@
sqInt checkOkayInterpreterObjects(sqInt writeBack);
sqInt checkOkayOop(usqInt oop);
sqInt checkOopHasOkayClass(usqInt obj);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAtIndex(sqInt classIndex);
sqInt classFloatCompactIndex(void);
sqInt classIndexMask(void);
Modified: branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2014-06-11 21:26:16 UTC (rev 2987)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
from
- CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -494,7 +494,7 @@
static void checkProfileTick(sqInt aPrimitiveMethod) NoDbgRegParms;
static void checkSegments(void);
static sqInt checkStackIntegrity(void);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAlien(void);
sqInt classArray(void);
sqInt classAtIndex(sqInt classIndex);
@@ -1337,7 +1337,7 @@
static void setSignalLowSpaceFlagAndSaveProcess(void);
static void setTraceFlagOnContextsFramesPageIfNeeded(sqInt aContext) NoDbgRegParms;
sqInt shiftForWord(void);
-static usqInt shortentoIndexableSize(sqInt objOop, sqInt indexableSize) NoDbgRegParms;
+static sqInt shortentoIndexableSize(sqInt objOop, sqInt indexableSize) NoDbgRegParms;
static sqInt shortPrintContext(sqInt aContext) NoDbgRegParms;
static sqInt shortPrintFrameAndCallers(char *theFP) NoDbgRegParms;
EXPORT(void) shortPrintFramesInPage(StackPage *thePage);
@@ -2236,7 +2236,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.767]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.769]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -17354,10 +17354,11 @@
return ok;
}
-void
+sqInt
checkTraversableSortedFreeList(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt freeChunk;
+ sqInt limit;
sqInt next;
sqInt o;
sqInt objOop;
@@ -17378,12 +17379,15 @@
assert((long64At(objOop1)) != 0);
if (((longAt(objOop1)) & 0x3FFFFF) == 0) {
assert(objOop1 == freeChunk);
+ next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
/* coInterpreter transcript cr; print: freeChunk; tab; print: o; tab; print: prevFree; nextPutAll: '<->'; print: next; flush. */
- next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
+ limit = (next == 0
+ ? GIV(endOfMemory)
+ : next);
objOop = freeChunk;
- while (((objOop = objectAfter(objOop))) < next) {
+ while (oopisLessThan((objOop = objectAfter(objOop)), limit)) {
assert(!(isFreeObject(objOop)));
}
prevFree = freeChunk;
@@ -17398,6 +17402,7 @@
assert(prevFree == GIV(lastFreeChunk));
assert(freeChunk == 0);
+ return 1;
}
sqInt
@@ -18181,7 +18186,7 @@
free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
}
}
- null;
+ assert(checkTraversableSortedFreeList());
l1: /* end pigCompact */;
eliminateAndFreeForwardersForPigCompact();
}
@@ -20015,7 +20020,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
assert((numberOfForwarders()) == 0);
}
@@ -24351,7 +24356,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
}
@@ -55747,7 +55752,7 @@
sqInt prevPrevFree;
sqInt start;
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
GIV(totalFreeOldSpace) = 0;
/* begin sortedFreeListDo: */
free = GIV(firstFreeChunk);
@@ -57646,7 +57651,7 @@
zero if no change
was possible. */
-static usqInt
+static sqInt
shortentoIndexableSize(sqInt objOop, sqInt indexableSize)
{
usqInt bytesAfter;
Modified: branches/Cog/spursistasrc/vm/interp.h
===================================================================
--- branches/Cog/spursistasrc/vm/interp.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spursistasrc/vm/interp.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/spursistasrc/vm/vmCallback.h
===================================================================
--- branches/Cog/spursistasrc/vm/vmCallback.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spursistasrc/vm/vmCallback.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
#define VM_CALLBACK_INC 1
Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spursrc/vm/cointerp.c 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
from
- CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -489,7 +489,7 @@
static void checkProfileTick(sqInt aPrimitiveMethod) NoDbgRegParms;
static void checkSegments(void);
static sqInt checkStackIntegrity(void);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAlien(void);
sqInt classArray(void);
sqInt classAtIndex(sqInt classIndex);
@@ -2228,7 +2228,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.767]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.769]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -5419,6 +5419,7 @@
GIV(framePointer) = localFP;
ceEnterCogCodePopReceiverReg();
+ null;
goto l148;
}
localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
@@ -5433,7 +5434,7 @@
/* begin fetchNextBytecode */
currentBytecode = byteAtPointer(++localIP);
- /* return self */
+ null;
l148: /* end baseFrameReturn */;
goto l145;
}
@@ -17206,10 +17207,11 @@
return ok;
}
-void
+sqInt
checkTraversableSortedFreeList(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt freeChunk;
+ sqInt limit;
sqInt next;
sqInt o;
sqInt objOop;
@@ -17230,12 +17232,15 @@
assert((long64At(objOop1)) != 0);
if (((longAt(objOop1)) & 0x3FFFFF) == 0) {
assert(objOop1 == freeChunk);
+ next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
/* coInterpreter transcript cr; print: freeChunk; tab; print: o; tab; print: prevFree; nextPutAll: '<->'; print: next; flush. */
- next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
+ limit = (next == 0
+ ? GIV(endOfMemory)
+ : next);
objOop = freeChunk;
- while (((objOop = objectAfter(objOop))) < next) {
+ while (oopisLessThan((objOop = objectAfter(objOop)), limit)) {
assert(!(isFreeObject(objOop)));
}
prevFree = freeChunk;
@@ -17250,6 +17255,7 @@
assert(prevFree == GIV(lastFreeChunk));
assert(freeChunk == 0);
+ return 1;
}
sqInt
@@ -18033,7 +18039,7 @@
free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
}
}
- null;
+ assert(checkTraversableSortedFreeList());
l1: /* end pigCompact */;
eliminateAndFreeForwardersForPigCompact();
}
@@ -19867,7 +19873,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
assert((numberOfForwarders()) == 0);
}
@@ -24203,7 +24209,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
}
@@ -55535,7 +55541,7 @@
sqInt prevPrevFree;
sqInt start;
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
GIV(totalFreeOldSpace) = 0;
/* begin sortedFreeListDo: */
free = GIV(firstFreeChunk);
Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spursrc/vm/cointerp.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
@@ -64,7 +64,7 @@
sqInt checkOkayInterpreterObjects(sqInt writeBack);
sqInt checkOkayOop(usqInt oop);
sqInt checkOopHasOkayClass(usqInt obj);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAtIndex(sqInt classIndex);
sqInt classFloatCompactIndex(void);
sqInt classIndexMask(void);
Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-06-11 21:26:16 UTC (rev 2987)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
from
- CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -492,7 +492,7 @@
static void checkProfileTick(sqInt aPrimitiveMethod) NoDbgRegParms;
static void checkSegments(void);
static sqInt checkStackIntegrity(void);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAlien(void);
sqInt classArray(void);
sqInt classAtIndex(sqInt classIndex);
@@ -2231,7 +2231,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.767]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.769]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -5428,6 +5428,7 @@
GIV(framePointer) = localFP;
ceEnterCogCodePopReceiverReg();
+ null;
goto l148;
}
localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
@@ -5442,7 +5443,7 @@
/* begin fetchNextBytecode */
currentBytecode = byteAtPointer(++localIP);
- /* return self */
+ null;
l148: /* end baseFrameReturn */;
goto l145;
}
@@ -17215,10 +17216,11 @@
return ok;
}
-void
+sqInt
checkTraversableSortedFreeList(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt freeChunk;
+ sqInt limit;
sqInt next;
sqInt o;
sqInt objOop;
@@ -17239,12 +17241,15 @@
assert((long64At(objOop1)) != 0);
if (((longAt(objOop1)) & 0x3FFFFF) == 0) {
assert(objOop1 == freeChunk);
+ next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
/* coInterpreter transcript cr; print: freeChunk; tab; print: o; tab; print: prevFree; nextPutAll: '<->'; print: next; flush. */
- next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
+ limit = (next == 0
+ ? GIV(endOfMemory)
+ : next);
objOop = freeChunk;
- while (((objOop = objectAfter(objOop))) < next) {
+ while (oopisLessThan((objOop = objectAfter(objOop)), limit)) {
assert(!(isFreeObject(objOop)));
}
prevFree = freeChunk;
@@ -17259,6 +17264,7 @@
assert(prevFree == GIV(lastFreeChunk));
assert(freeChunk == 0);
+ return 1;
}
sqInt
@@ -18042,7 +18048,7 @@
free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
}
}
- null;
+ assert(checkTraversableSortedFreeList());
l1: /* end pigCompact */;
eliminateAndFreeForwardersForPigCompact();
}
@@ -19876,7 +19882,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
assert((numberOfForwarders()) == 0);
}
@@ -24212,7 +24218,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
}
@@ -55544,7 +55550,7 @@
sqInt prevPrevFree;
sqInt start;
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
GIV(totalFreeOldSpace) = 0;
/* begin sortedFreeListDo: */
free = GIV(firstFreeChunk);
Modified: branches/Cog/spursrc/vm/interp.h
===================================================================
--- branches/Cog/spursrc/vm/interp.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spursrc/vm/interp.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/spursrc/vm/vmCallback.h
===================================================================
--- branches/Cog/spursrc/vm/vmCallback.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spursrc/vm/vmCallback.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
#define VM_CALLBACK_INC 1
Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2014-06-11 21:26:16 UTC (rev 2987)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
from
- StackInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ StackInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -407,7 +407,7 @@
static void checkProfileTick(sqInt aPrimitiveMethod) NoDbgRegParms;
static void checkSegments(void);
static sqInt checkStackIntegrity(void);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAlien(void);
sqInt classArray(void);
sqInt classAtIndex(sqInt classIndex);
@@ -2017,7 +2017,7 @@
0 };
char * breakSelector;
sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.767]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.769]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -14542,10 +14542,11 @@
return ok;
}
-void
+sqInt
checkTraversableSortedFreeList(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt freeChunk;
+ sqInt limit;
sqInt next;
sqInt o;
sqInt objOop;
@@ -14566,12 +14567,15 @@
assert((long64At(objOop1)) != 0);
if (((longAt(objOop1)) & 0x3FFFFF) == 0) {
assert(objOop1 == freeChunk);
+ next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
/* coInterpreter transcript cr; print: freeChunk; tab; print: o; tab; print: prevFree; nextPutAll: '<->'; print: next; flush. */
- next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
+ limit = (next == 0
+ ? GIV(endOfMemory)
+ : next);
objOop = freeChunk;
- while (((objOop = objectAfter(objOop))) < next) {
+ while (oopisLessThan((objOop = objectAfter(objOop)), limit)) {
assert(!(isFreeObject(objOop)));
}
prevFree = freeChunk;
@@ -14586,6 +14590,7 @@
assert(prevFree == GIV(lastFreeChunk));
assert(freeChunk == 0);
+ return 1;
}
sqInt
@@ -15270,7 +15275,7 @@
free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
}
}
- null;
+ assert(checkTraversableSortedFreeList());
l1: /* end pigCompact */;
eliminateAndFreeForwardersForPigCompact();
}
@@ -16803,7 +16808,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
assert((numberOfForwarders()) == 0);
}
@@ -20352,7 +20357,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
}
@@ -49211,7 +49216,7 @@
sqInt prevPrevFree;
sqInt start;
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
GIV(totalFreeOldSpace) = 0;
/* begin sortedFreeListDo: */
free = GIV(firstFreeChunk);
Modified: branches/Cog/spurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.c 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spurstacksrc/vm/interp.c 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
from
- StackInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ StackInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -404,7 +404,7 @@
static void checkProfileTick(sqInt aPrimitiveMethod) NoDbgRegParms;
static void checkSegments(void);
static sqInt checkStackIntegrity(void);
-void checkTraversableSortedFreeList(void);
+sqInt checkTraversableSortedFreeList(void);
sqInt classAlien(void);
sqInt classArray(void);
sqInt classAtIndex(sqInt classIndex);
@@ -2014,7 +2014,7 @@
0 };
char * breakSelector;
sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.767]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.769]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -14533,10 +14533,11 @@
return ok;
}
-void
+sqInt
checkTraversableSortedFreeList(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt freeChunk;
+ sqInt limit;
sqInt next;
sqInt o;
sqInt objOop;
@@ -14557,12 +14558,15 @@
assert((long64At(objOop1)) != 0);
if (((longAt(objOop1)) & 0x3FFFFF) == 0) {
assert(objOop1 == freeChunk);
+ next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
/* coInterpreter transcript cr; print: freeChunk; tab; print: o; tab; print: prevFree; nextPutAll: '<->'; print: next; flush. */
- next = (longAt((freeChunk + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
+ limit = (next == 0
+ ? GIV(endOfMemory)
+ : next);
objOop = freeChunk;
- while (((objOop = objectAfter(objOop))) < next) {
+ while (oopisLessThan((objOop = objectAfter(objOop)), limit)) {
assert(!(isFreeObject(objOop)));
}
prevFree = freeChunk;
@@ -14577,6 +14581,7 @@
assert(prevFree == GIV(lastFreeChunk));
assert(freeChunk == 0);
+ return 1;
}
sqInt
@@ -15261,7 +15266,7 @@
free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
}
}
- null;
+ assert(checkTraversableSortedFreeList());
l1: /* end pigCompact */;
eliminateAndFreeForwardersForPigCompact();
}
@@ -16794,7 +16799,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
assert((numberOfForwarders()) == 0);
}
@@ -20343,7 +20348,7 @@
assert(isFreeObject(GIV(lastFreeChunk)));
longAtput((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2), prevPrevFree ^ 0);
}
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
}
@@ -49202,7 +49207,7 @@
sqInt prevPrevFree;
sqInt start;
- checkTraversableSortedFreeList();
+ assert(checkTraversableSortedFreeList());
GIV(totalFreeOldSpace) = 0;
/* begin sortedFreeListDo: */
free = GIV(firstFreeChunk);
Modified: branches/Cog/spurstacksrc/vm/interp.h
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spurstacksrc/vm/interp.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/spurstacksrc/vm/vmCallback.h
===================================================================
--- branches/Cog/spurstacksrc/vm/vmCallback.h 2014-06-11 20:12:30 UTC (rev 2986)
+++ branches/Cog/spurstacksrc/vm/vmCallback.h 2014-06-11 21:26:16 UTC (rev 2987)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.767 uuid: b11544fd-09a4-4469-8ce4-3f2339f08d05
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
*/
#define VM_CALLBACK_INC 1
More information about the Vm-dev
mailing list