[Vm-dev] [commit][2875] CogVM source as per VMMaker.oscog-eem.636
commits at squeakvm.org
commits at squeakvm.org
Mon Mar 10 20:26:26 UTC 2014
Revision: 2875
Author: eliot
Date: 2014-03-10 13:26:23 -0700 (Mon, 10 Mar 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.636
Fix byteFormatForNumBytes: and hence fix the new version of
positive64BitIntegerFor:.
Spur: Make sure expungeDuplicateAndUnmarkedClasses: resets
classTableIndex for nil entries.
Modified Paths:
--------------
branches/Cog/nscogsrc/vm/cointerp.c
branches/Cog/nscogsrc/vm/cointerp.h
branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
branches/Cog/nscogsrc/vm/interp.h
branches/Cog/nscogsrc/vm/vmCallback.h
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/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
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/src/vm/interp.h
branches/Cog/src/vm/vmCallback.h
branches/Cog/stacksrc/vm/gcc3x-interp.c
branches/Cog/stacksrc/vm/interp.c
branches/Cog/stacksrc/vm/interp.h
branches/Cog/stacksrc/vm/vmCallback.h
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nscogsrc/vm/cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1146,7 +1146,7 @@
static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
static sqInt roomToPushNArgs(sqInt n);
static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static sqInt safeObjectAfter(sqInt oop);
+static usqInt safeObjectAfter(sqInt oop);
static sqInt safePrintStringOf(sqInt oop);
usqInt scavengeThresholdAddress(void);
EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -2033,7 +2033,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.636";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -4827,7 +4827,6 @@
GIV(framePointer) = localFP;
ceEnterCogCodePopReceiverReg();
- null;
goto l307;
}
localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
@@ -4845,7 +4844,7 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- null;
+ /* return self */
l307: /* end baseFrameReturn */;
goto l304;
}
@@ -23735,17 +23734,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;
@@ -23756,21 +23753,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;
@@ -23785,7 +23768,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)) {
@@ -23839,18 +23822,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)) {
@@ -29803,7 +29786,7 @@
&& ((integerValue ^ (integerValue << 1)) >= 0)) {
return ((integerValue << 1) | 1);
}
- newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + (4 & 3), 1);
+ newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + ((4 - 4) & 3), 1);
byteAtput((newLargeInteger + BaseHeaderSize) + 3, (((usqInt) integerValue) >> 24) & 0xFF);
byteAtput((newLargeInteger + BaseHeaderSize) + 2, (((usqInt) integerValue) >> 16) & 0xFF);
byteAtput((newLargeInteger + BaseHeaderSize) + 1, (((usqInt) integerValue) >> 8) & 0xFF);
@@ -29889,7 +29872,7 @@
if (!(((highWord = ((usqInt) highWord) >> 8)) == 0)) {
sz += 1;
}
- newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + (sz & 3), ((sqInt) 8 >> 2));
+ newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + ((4 - sz) & 3), ((sqInt) 8 >> 2));
byteAtput((newLargeInteger + BaseHeaderSize) + 7, (((unsigned sqLong)integerValue) >> 56) & 0xFF);
byteAtput((newLargeInteger + BaseHeaderSize) + 6, (((unsigned sqLong)integerValue) >> 48) & 0xFF);
byteAtput((newLargeInteger + BaseHeaderSize) + 5, (((unsigned sqLong)integerValue) >> 40) & 0xFF);
@@ -50265,7 +50248,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-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nscogsrc/vm/cointerp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1149,7 +1149,7 @@
static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
static sqInt roomToPushNArgs(sqInt n);
static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static sqInt safeObjectAfter(sqInt oop);
+static usqInt safeObjectAfter(sqInt oop);
static sqInt safePrintStringOf(sqInt oop);
usqInt scavengeThresholdAddress(void);
EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -2036,7 +2036,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.636";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -4836,7 +4836,6 @@
GIV(framePointer) = localFP;
ceEnterCogCodePopReceiverReg();
- null;
goto l307;
}
localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
@@ -4854,7 +4853,7 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- null;
+ /* return self */
l307: /* end baseFrameReturn */;
goto l304;
}
@@ -23744,17 +23743,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;
@@ -23765,21 +23762,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;
@@ -23794,7 +23777,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)) {
@@ -23848,18 +23831,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)) {
@@ -29812,7 +29795,7 @@
&& ((integerValue ^ (integerValue << 1)) >= 0)) {
return ((integerValue << 1) | 1);
}
- newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + (4 & 3), 1);
+ newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + ((4 - 4) & 3), 1);
byteAtput((newLargeInteger + BaseHeaderSize) + 3, (((usqInt) integerValue) >> 24) & 0xFF);
byteAtput((newLargeInteger + BaseHeaderSize) + 2, (((usqInt) integerValue) >> 16) & 0xFF);
byteAtput((newLargeInteger + BaseHeaderSize) + 1, (((usqInt) integerValue) >> 8) & 0xFF);
@@ -29898,7 +29881,7 @@
if (!(((highWord = ((usqInt) highWord) >> 8)) == 0)) {
sz += 1;
}
- newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + (sz & 3), ((sqInt) 8 >> 2));
+ newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + ((4 - sz) & 3), ((sqInt) 8 >> 2));
byteAtput((newLargeInteger + BaseHeaderSize) + 7, (((unsigned sqLong)integerValue) >> 56) & 0xFF);
byteAtput((newLargeInteger + BaseHeaderSize) + 6, (((unsigned sqLong)integerValue) >> 48) & 0xFF);
byteAtput((newLargeInteger + BaseHeaderSize) + 5, (((unsigned sqLong)integerValue) >> 40) & 0xFF);
@@ -50274,7 +50257,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/interp.h
===================================================================
--- branches/Cog/nscogsrc/vm/interp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nscogsrc/vm/interp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/nscogsrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nscogsrc/vm/vmCallback.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nscogsrc/vm/vmCallback.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
#define VM_CALLBACK_INC 1
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1476,6 +1476,7 @@
_iss usqInt freeOldSpaceStart;
_iss sqInt longRunningPrimitiveCheckMethod;
_iss sqInt profileMethod;
+_iss sqInt classTableIndex;
_iss sqInt ephemeronQueue;
_iss sqInt lastMethodCacheProbeWrite;
_iss sqInt lkupClass;
@@ -1483,7 +1484,6 @@
_iss sqInt metaclassNumSlots;
_iss usqLong nextWakeupUsecs;
_iss sqInt preemptionYields;
-_iss sqInt classTableIndex;
_iss sqInt cogCompiledCodeCompactionCalledFor;
_iss sqInt growHeadroom;
_iss sqInt highestRunnableProcessPriority;
@@ -2191,7 +2191,7 @@
/* 575 */ (void (*)(void))0,
0 };
usqInt heapBase;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.636";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -25712,20 +25712,26 @@
assert((classAtIndex(classIndex)) == classOrNil);
assert((classOrNil == GIV(nilObj))
|| (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
if (classIndex < GIV(classTableIndex)) {
GIV(classTableIndex) = classIndex;
}
}
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
}
}
}
@@ -37865,7 +37871,7 @@
return ((integerValue << 1) | 1);
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
assert((1 >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
@@ -37985,7 +37991,7 @@
sz += 1;
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
assert(((((sqInt) 8 >> 2)) >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1479,6 +1479,7 @@
_iss usqInt freeOldSpaceStart;
_iss sqInt longRunningPrimitiveCheckMethod;
_iss sqInt profileMethod;
+_iss sqInt classTableIndex;
_iss sqInt ephemeronQueue;
_iss sqInt lastMethodCacheProbeWrite;
_iss sqInt lkupClass;
@@ -1486,7 +1487,6 @@
_iss sqInt metaclassNumSlots;
_iss usqLong nextWakeupUsecs;
_iss sqInt preemptionYields;
-_iss sqInt classTableIndex;
_iss sqInt cogCompiledCodeCompactionCalledFor;
_iss sqInt growHeadroom;
_iss sqInt highestRunnableProcessPriority;
@@ -2194,7 +2194,7 @@
/* 575 */ (void (*)(void))0,
0 };
usqInt heapBase;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.636";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -25721,20 +25721,26 @@
assert((classAtIndex(classIndex)) == classOrNil);
assert((classOrNil == GIV(nilObj))
|| (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
if (classIndex < GIV(classTableIndex)) {
GIV(classTableIndex) = classIndex;
}
}
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
}
}
}
@@ -37874,7 +37880,7 @@
return ((integerValue << 1) | 1);
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
assert((1 >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
@@ -37994,7 +38000,7 @@
sz += 1;
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
assert(((((sqInt) 8 >> 2)) >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
Modified: branches/Cog/nsspursrc/vm/interp.h
===================================================================
--- branches/Cog/nsspursrc/vm/interp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspursrc/vm/interp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/nsspursrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nsspursrc/vm/vmCallback.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspursrc/vm/vmCallback.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
#define VM_CALLBACK_INC 1
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
from
- StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1286,6 +1286,7 @@
_iss sqInt longRunningPrimitiveCheckMethod;
_iss sqInt longRunningPrimitiveCheckSemaphore;
_iss sqInt profileMethod;
+_iss sqInt classTableIndex;
_iss sqInt ephemeronQueue;
_iss sqInt lastMethodCacheProbeWrite;
_iss sqInt growHeadroom;
@@ -1293,7 +1294,6 @@
_iss usqLong nextWakeupUsecs;
_iss sqInt preemptionYields;
_iss sqInt profileSemaphore;
-_iss sqInt classTableIndex;
_iss sqInt highestRunnableProcessPriority;
_iss usqLong longRunningPrimitiveStartUsecs;
_iss usqLong longRunningPrimitiveStopUsecs;
@@ -1981,7 +1981,7 @@
0 };
char * breakSelector;
sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.636";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -21944,20 +21944,26 @@
assert((classAtIndex(classIndex)) == classOrNil);
assert((classOrNil == GIV(nilObj))
|| (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
if (classIndex < GIV(classTableIndex)) {
GIV(classTableIndex) = classIndex;
}
}
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
}
}
}
@@ -32360,7 +32366,7 @@
return ((integerValue << 1) | 1);
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
assert((1 >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
@@ -32480,7 +32486,7 @@
sz += 1;
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
assert(((((sqInt) 8 >> 2)) >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspurstacksrc/vm/interp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
from
- StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1283,6 +1283,7 @@
_iss sqInt longRunningPrimitiveCheckMethod;
_iss sqInt longRunningPrimitiveCheckSemaphore;
_iss sqInt profileMethod;
+_iss sqInt classTableIndex;
_iss sqInt ephemeronQueue;
_iss sqInt lastMethodCacheProbeWrite;
_iss sqInt growHeadroom;
@@ -1290,7 +1291,6 @@
_iss usqLong nextWakeupUsecs;
_iss sqInt preemptionYields;
_iss sqInt profileSemaphore;
-_iss sqInt classTableIndex;
_iss sqInt highestRunnableProcessPriority;
_iss usqLong longRunningPrimitiveStartUsecs;
_iss usqLong longRunningPrimitiveStopUsecs;
@@ -1978,7 +1978,7 @@
0 };
char * breakSelector;
sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.636";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -21935,20 +21935,26 @@
assert((classAtIndex(classIndex)) == classOrNil);
assert((classOrNil == GIV(nilObj))
|| (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
if (classIndex < GIV(classTableIndex)) {
GIV(classTableIndex) = classIndex;
}
}
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
}
}
}
@@ -32351,7 +32357,7 @@
return ((integerValue << 1) | 1);
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
assert((1 >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
@@ -32471,7 +32477,7 @@
sz += 1;
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
assert(((((sqInt) 8 >> 2)) >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
Modified: branches/Cog/nsspurstacksrc/vm/interp.h
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspurstacksrc/vm/interp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/nsspurstacksrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nsspurstacksrc/vm/vmCallback.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspurstacksrc/vm/vmCallback.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
#define VM_CALLBACK_INC 1
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Sun Mar 9 12:14:16 PDT 2014
+ Mon Mar 10 13:25:38 PDT 2014
Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spursrc/vm/cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1466,13 +1466,13 @@
_iss usqInt freeOldSpaceStart;
_iss sqInt longRunningPrimitiveCheckMethod;
_iss sqInt profileMethod;
+_iss sqInt classTableIndex;
_iss sqInt ephemeronQueue;
_iss sqInt lastMethodCacheProbeWrite;
_iss sqInt lkupClass;
_iss sqInt metaclassNumSlots;
_iss usqLong nextWakeupUsecs;
_iss sqInt preemptionYields;
-_iss sqInt classTableIndex;
_iss sqInt cogCompiledCodeCompactionCalledFor;
_iss sqInt growHeadroom;
_iss sqInt highestRunnableProcessPriority;
@@ -2181,7 +2181,7 @@
/* 575 */ (void (*)(void))0,
0 };
usqInt heapBase;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.635]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.636]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -6397,7 +6397,6 @@
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), longAt((rcvr1 + (BaseHeaderSize)) + (byte3 << 2)));
}
- null;
goto l4;
}
if (opType == 3) {
@@ -6407,7 +6406,6 @@
assert(GIV(method) == (iframeMethod(localFP)));
object = longAt((GIV(method) + (BaseHeaderSize)) + ((byte3 + LiteralStart) << 2));
longAtPointerput((localSP -= BytesPerOop), object);
- null;
goto l4;
}
if (opType == 4) {
@@ -6435,7 +6433,6 @@
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), longAt((litVar1 + (BaseHeaderSize)) + (ValueIndex << 2)));
- null;
goto l4;
}
top = longAtPointer(localSP);
@@ -20790,20 +20787,26 @@
assert((classAtIndex(classIndex)) == classOrNil);
assert((classOrNil == GIV(nilObj))
|| (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
if (classIndex < GIV(classTableIndex)) {
GIV(classTableIndex) = classIndex;
}
}
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
}
}
}
@@ -32506,7 +32509,7 @@
return ((integerValue << 1) | 1);
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
assert((1 >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
@@ -32626,7 +32629,7 @@
sz += 1;
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
assert(((((sqInt) 8 >> 2)) >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spursrc/vm/cointerp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1469,13 +1469,13 @@
_iss usqInt freeOldSpaceStart;
_iss sqInt longRunningPrimitiveCheckMethod;
_iss sqInt profileMethod;
+_iss sqInt classTableIndex;
_iss sqInt ephemeronQueue;
_iss sqInt lastMethodCacheProbeWrite;
_iss sqInt lkupClass;
_iss sqInt metaclassNumSlots;
_iss usqLong nextWakeupUsecs;
_iss sqInt preemptionYields;
-_iss sqInt classTableIndex;
_iss sqInt cogCompiledCodeCompactionCalledFor;
_iss sqInt growHeadroom;
_iss sqInt highestRunnableProcessPriority;
@@ -2184,7 +2184,7 @@
/* 575 */ (void (*)(void))0,
0 };
usqInt heapBase;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.635]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.636]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -6406,7 +6406,6 @@
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), longAt((rcvr1 + (BaseHeaderSize)) + (byte3 << 2)));
}
- null;
goto l4;
}
if (opType == 3) {
@@ -6416,7 +6415,6 @@
assert(GIV(method) == (iframeMethod(localFP)));
object = longAt((GIV(method) + (BaseHeaderSize)) + ((byte3 + LiteralStart) << 2));
longAtPointerput((localSP -= BytesPerOop), object);
- null;
goto l4;
}
if (opType == 4) {
@@ -6444,7 +6442,6 @@
/* begin internalPush: */
longAtPointerput((localSP -= BytesPerOop), longAt((litVar1 + (BaseHeaderSize)) + (ValueIndex << 2)));
- null;
goto l4;
}
top = longAtPointer(localSP);
@@ -20799,20 +20796,26 @@
assert((classAtIndex(classIndex)) == classOrNil);
assert((classOrNil == GIV(nilObj))
|| (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
if (classIndex < GIV(classTableIndex)) {
GIV(classTableIndex) = classIndex;
}
}
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
}
}
}
@@ -32515,7 +32518,7 @@
return ((integerValue << 1) | 1);
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
assert((1 >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
@@ -32635,7 +32638,7 @@
sz += 1;
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
assert(((((sqInt) 8 >> 2)) >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
Modified: branches/Cog/spursrc/vm/interp.h
===================================================================
--- branches/Cog/spursrc/vm/interp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spursrc/vm/interp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
#define VM_PROXY_MAJOR 1
Modified: branches/Cog/spursrc/vm/vmCallback.h
===================================================================
--- branches/Cog/spursrc/vm/vmCallback.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spursrc/vm/vmCallback.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
#define VM_CALLBACK_INC 1
Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
from
- StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1279,6 +1279,7 @@
_iss sqInt longRunningPrimitiveCheckMethod;
_iss sqInt longRunningPrimitiveCheckSemaphore;
_iss sqInt profileMethod;
+_iss sqInt classTableIndex;
_iss sqInt ephemeronQueue;
_iss sqInt lastMethodCacheProbeWrite;
_iss sqInt growHeadroom;
@@ -1286,7 +1287,6 @@
_iss usqLong nextWakeupUsecs;
_iss sqInt preemptionYields;
_iss sqInt profileSemaphore;
-_iss sqInt classTableIndex;
_iss sqInt highestRunnableProcessPriority;
_iss usqLong longRunningPrimitiveStartUsecs;
_iss usqLong longRunningPrimitiveStopUsecs;
@@ -1974,7 +1974,7 @@
0 };
char * breakSelector;
sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.635]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.636]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -17367,20 +17367,26 @@
assert((classAtIndex(classIndex)) == classOrNil);
assert((classOrNil == GIV(nilObj))
|| (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
if (classIndex < GIV(classTableIndex)) {
GIV(classTableIndex) = classIndex;
}
}
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
}
}
}
@@ -27372,7 +27378,7 @@
return ((integerValue << 1) | 1);
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
assert((1 >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
@@ -27492,7 +27498,7 @@
sz += 1;
}
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
assert(((((sqInt) 8 >> 2)) >= 0)
&& (ClassLargePositiveIntegerCompactIndex != 0));
assert(((objFormat < (firstByteFormat())
Modified: branches/Cog/spurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spurstacksrc/vm/interp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
from
- StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1276,6 +1276,7 @@
_iss sqInt longRunningPrimitiveCheckMethod;
_iss sqInt longRunningPrimitiveCheckSemaphore;
_iss sqInt profileMethod;
+_iss sqInt classTableIndex;
_iss sqInt ephemeronQueue;
_iss sqInt lastMethodCacheProbeWrite;
_iss sqInt growHeadroom;
@@ -1283,7 +1284,6 @@
_iss usqLong nextWakeupUsecs;
_iss sqInt preemptionYields;
_iss sqInt profileSemaphore;
-_iss sqInt classTableIndex;
_iss sqInt highestRunnableProcessPriority;
_iss usqLong longRunningPrimitiveStartUsecs;
_iss usqLong longRunningPrimitiveStopUsecs;
@@ -1971,7 +1971,7 @@
0 };
char * breakSelector;
sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.635]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.636]";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -17358,20 +17358,26 @@
assert((classAtIndex(classIndex)) == classOrNil);
assert((classOrNil == GIV(nilObj))
|| (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list