[Vm-dev] [commit][3289] CogVM source as per VMMaker.oscog-eem.1119
commits at squeakvm.org
commits at squeakvm.org
Wed Mar 25 20:25:29 UTC 2015
Revision: 3289
Author: eliot
Date: 2015-03-25 13:25:29 -0700 (Wed, 25 Mar 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1119
Rescue Spur Cog compilations by removing the bogus <api> pragma from
headerForSlots:hash:format:classIndex:. Now that
headerForSlots:hash:format:classIndex: exists, move identityHashFullWordShift
up to SpurMemoryManager.
Modified Paths:
--------------
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/cointerp.c
branches/Cog/spursrc/vm/cointerp.h
branches/Cog/spursrc/vm/gcc3x-cointerp.c
branches/Cog/spurstack64src/vm/gcc3x-interp.c
branches/Cog/spurstack64src/vm/interp.c
branches/Cog/spurstacksrc/vm/gcc3x-interp.c
branches/Cog/spurstacksrc/vm/interp.c
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
from
- CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1002,7 +1002,6 @@
static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
static sqInt hiddenRootSlots(void);
sqInt identityHashHalfWordMask(void);
static sqInt imageSegmentVersion(void);
@@ -2366,7 +2365,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1118";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1119";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -14209,7 +14208,7 @@
CogMethod *cogMethod;
sqInt methodField;
sqInt methodField1;
- sqInt theIP;
+ usqInt theIP;
assertl(GIV(stackPage) == (mostRecentlyUsedPage()), ln);
assertl(addressIsInPage(GIV(stackPage), lifp), ln);
@@ -22095,7 +22094,7 @@
int index;
sqInt methodField;
usqInt numArgs;
- sqInt numTemps;
+ usqInt numTemps;
char *rcvrAddress;
sqInt rcvrOrClosure;
sqInt theMethod;
@@ -22128,7 +22127,7 @@
numArgs = (cogMethod->cmNumArgs);
/* begin temporaryCountOfMethodHeader: */
header = (homeMethod->methodHeader);
- numTemps = (((usqInt) header) >> MethodHeaderTempCountShift) & 0x3F;
+ numTemps = ((sqInt) ((((usqInt) header) >> MethodHeaderTempCountShift) & 0x3F));
}
else {
theMethod = ((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
@@ -22148,7 +22147,7 @@
assert((((((CogMethod *) header2))->objectHeader)) == (nullHeaderForMachineCodeMethod()));
header1 = ((((CogMethod *) header2))->methodHeader);
}
- numTemps = (((usqInt) header1) >> MethodHeaderTempCountShift) & 0x3F;
+ numTemps = ((sqInt) ((((usqInt) header1) >> MethodHeaderTempCountShift) & 0x3F));
}
if (((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
? ((longAt(theFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
@@ -28395,8 +28394,8 @@
sqInt totalLength1;
sqInt value;
sqInt value1;
- usqInt valueToStore;
- usqInt valueToStore1;
+ sqInt valueToStore;
+ sqInt valueToStore1;
/* begin commonAtPut: */
value = longAt(GIV(stackPointer));
@@ -31014,7 +31013,7 @@
sqInt arg;
sqInt fmt;
sqInt i;
- sqInt length;
+ usqInt length;
usqInt numBytes;
usqInt numSlots;
usqInt numSlots1;
@@ -31055,18 +31054,18 @@
/* bytes (the common case), including CompiledMethod */
- length = numBytes - (fmt & 7);
+ length = ((sqInt) (numBytes - (fmt & 7)));
goto l1;
}
if (fmt <= 9) {
- length = numBytes;
+ length = ((sqInt) numBytes);
goto l1;
}
if (fmt >= 12) {
- length = numBytes - ((fmt & 3) << 1);
+ length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
goto l1;
}
- length = numBytes - ((fmt & 1) << 2);
+ length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
l1: /* end numBytesOf: */;
if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
&& (length == (numBytesOf(arg))))) {
@@ -31084,9 +31083,9 @@
flag("endianness");
assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
numSlots1 = byteAt(rcvr + 7);
- length = ((usqInt) ((numSlots1 == 0xFF
- ? longAt(rcvr - BaseHeaderSize)
- : numSlots1)));
+ length = (numSlots1 == 0xFF
+ ? longAt(rcvr - BaseHeaderSize)
+ : numSlots1);
if (!((isAppropriateForCopyObject(arg))
&& (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
(GIV(primFailCode) = PrimErrBadArgument);
@@ -38411,8 +38410,8 @@
sqInt totalLength1;
sqInt value;
sqInt value1;
- usqInt valueToStore;
- usqInt valueToStore1;
+ sqInt valueToStore;
+ sqInt valueToStore1;
/* begin commonAtPut: */
value = longAt(GIV(stackPointer));
@@ -42918,7 +42917,7 @@
sqInt ptr2;
sqInt slotBytes;
usqInt smallObj;
- sqInt start;
+ usqInt start;
classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
if (classIndex == 0) {
@@ -45852,7 +45851,7 @@
sqInt fmt;
sqInt hasYoung;
sqInt i;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
usqInt numSlots;
@@ -45895,7 +45894,7 @@
GIV(needGCFlag) = 1;
forceInterruptCheck();
}
- newObj = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, fmt, classIndex)));
+ newObj = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, fmt, classIndex);
goto l1;
}
if (numSlots >= 0xFF) {
@@ -48487,36 +48486,6 @@
}
-/* The header format in LSB is
- MSB: | 8: numSlots | (on a byte boundary)
- | 2 bits | (msb,lsb = {isMarked,?})
- | 22: identityHash | (on a word boundary)
- | 3 bits | (msb <-> lsb = {isGrey,isPinned,isRemembered}
- | 5: format | (on a byte boundary)
- | 2 bits | (msb,lsb = {isImmutable,?})
- | 22: classIndex | (on a word boundary) : LSB
- The remaining bits (7) are used for
- isImmutable (bit 23)
- isRemembered (bit 29)
- isPinned (bit 30)
- isGrey (bit 31)
- isMarked (bit 55)
- leaving 2 unused bits, each next to a 22-bit field, allowing those fields
- to be
- expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
- } is for bits that are never set in young objects. This allows the
- remembered table to be pruned when full by using these bits as a reference
- count of
- newSpace objects from the remembered table. Objects with a high count
- should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
- return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
/* Answer the number of extra root slots in the root of the hidden root
object.
*/
@@ -61344,7 +61313,7 @@
bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
{
sqInt bridgeSpan;
- sqInt clifton;
+ usqInt clifton;
usqInt segEnd;
segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -73180,7 +73149,7 @@
sqInt sp1;
sqInt stSize;
sqInt totalLength;
- usqInt valueToStore;
+ sqInt valueToStore;
hdr = long64At(array);
fmt = (((unsigned sqLong)hdr) >> 24) & 0x1F;
@@ -74443,8 +74412,8 @@
sqInt totalLength;
sqInt totalLength1;
sqInt value;
- usqInt valueToStore;
- usqInt valueToStore1;
+ sqInt valueToStore;
+ sqInt valueToStore1;
value = longAt(GIV(stackPointer));
index = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -76216,7 +76185,7 @@
sqInt rcvr;
char *sp;
sqInt totalLength;
- usqInt valueToStore;
+ sqInt valueToStore;
newValue = longAt(GIV(stackPointer));
/* begin stackIntegerValue: */
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
@@ -178,7 +178,6 @@
sqInt formatShift(void);
sqInt freeObject(sqInt objOop);
usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
sqInt identityHashHalfWordMask(void);
sqInt indexablePointersFormat(void);
void inOrderPrintFreeTreeprintList(sqInt freeChunk, sqInt printNextList);
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2015-03-25 20:25:29 UTC (rev 3289)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
from
- CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1005,7 +1005,6 @@
static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
static sqInt hiddenRootSlots(void);
sqInt identityHashHalfWordMask(void);
static sqInt imageSegmentVersion(void);
@@ -2369,7 +2368,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1118";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1119";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -14218,7 +14217,7 @@
CogMethod *cogMethod;
sqInt methodField;
sqInt methodField1;
- sqInt theIP;
+ usqInt theIP;
assertl(GIV(stackPage) == (mostRecentlyUsedPage()), ln);
assertl(addressIsInPage(GIV(stackPage), lifp), ln);
@@ -22104,7 +22103,7 @@
int index;
sqInt methodField;
usqInt numArgs;
- sqInt numTemps;
+ usqInt numTemps;
char *rcvrAddress;
sqInt rcvrOrClosure;
sqInt theMethod;
@@ -22137,7 +22136,7 @@
numArgs = (cogMethod->cmNumArgs);
/* begin temporaryCountOfMethodHeader: */
header = (homeMethod->methodHeader);
- numTemps = (((usqInt) header) >> MethodHeaderTempCountShift) & 0x3F;
+ numTemps = ((sqInt) ((((usqInt) header) >> MethodHeaderTempCountShift) & 0x3F));
}
else {
theMethod = ((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
@@ -22157,7 +22156,7 @@
assert((((((CogMethod *) header2))->objectHeader)) == (nullHeaderForMachineCodeMethod()));
header1 = ((((CogMethod *) header2))->methodHeader);
}
- numTemps = (((usqInt) header1) >> MethodHeaderTempCountShift) & 0x3F;
+ numTemps = ((sqInt) ((((usqInt) header1) >> MethodHeaderTempCountShift) & 0x3F));
}
if (((((usqInt)(longAt(theFP + FoxMethod)))) < (startOfMemory())
? ((longAt(theFP + FoxMethod)) & MFMethodFlagIsBlockFlag) != 0
@@ -28404,8 +28403,8 @@
sqInt totalLength1;
sqInt value;
sqInt value1;
- usqInt valueToStore;
- usqInt valueToStore1;
+ sqInt valueToStore;
+ sqInt valueToStore1;
/* begin commonAtPut: */
value = longAt(GIV(stackPointer));
@@ -31023,7 +31022,7 @@
sqInt arg;
sqInt fmt;
sqInt i;
- sqInt length;
+ usqInt length;
usqInt numBytes;
usqInt numSlots;
usqInt numSlots1;
@@ -31064,18 +31063,18 @@
/* bytes (the common case), including CompiledMethod */
- length = numBytes - (fmt & 7);
+ length = ((sqInt) (numBytes - (fmt & 7)));
goto l1;
}
if (fmt <= 9) {
- length = numBytes;
+ length = ((sqInt) numBytes);
goto l1;
}
if (fmt >= 12) {
- length = numBytes - ((fmt & 3) << 1);
+ length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
goto l1;
}
- length = numBytes - ((fmt & 1) << 2);
+ length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
l1: /* end numBytesOf: */;
if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
&& (length == (numBytesOf(arg))))) {
@@ -31093,9 +31092,9 @@
flag("endianness");
assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
numSlots1 = byteAt(rcvr + 7);
- length = ((usqInt) ((numSlots1 == 0xFF
- ? longAt(rcvr - BaseHeaderSize)
- : numSlots1)));
+ length = (numSlots1 == 0xFF
+ ? longAt(rcvr - BaseHeaderSize)
+ : numSlots1);
if (!((isAppropriateForCopyObject(arg))
&& (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
(GIV(primFailCode) = PrimErrBadArgument);
@@ -38420,8 +38419,8 @@
sqInt totalLength1;
sqInt value;
sqInt value1;
- usqInt valueToStore;
- usqInt valueToStore1;
+ sqInt valueToStore;
+ sqInt valueToStore1;
/* begin commonAtPut: */
value = longAt(GIV(stackPointer));
@@ -42927,7 +42926,7 @@
sqInt ptr2;
sqInt slotBytes;
usqInt smallObj;
- sqInt start;
+ usqInt start;
classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
if (classIndex == 0) {
@@ -45861,7 +45860,7 @@
sqInt fmt;
sqInt hasYoung;
sqInt i;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
usqInt numSlots;
@@ -45904,7 +45903,7 @@
GIV(needGCFlag) = 1;
forceInterruptCheck();
}
- newObj = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, fmt, classIndex)));
+ newObj = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, fmt, classIndex);
goto l1;
}
if (numSlots >= 0xFF) {
@@ -48496,36 +48495,6 @@
}
-/* The header format in LSB is
- MSB: | 8: numSlots | (on a byte boundary)
- | 2 bits | (msb,lsb = {isMarked,?})
- | 22: identityHash | (on a word boundary)
- | 3 bits | (msb <-> lsb = {isGrey,isPinned,isRemembered}
- | 5: format | (on a byte boundary)
- | 2 bits | (msb,lsb = {isImmutable,?})
- | 22: classIndex | (on a word boundary) : LSB
- The remaining bits (7) are used for
- isImmutable (bit 23)
- isRemembered (bit 29)
- isPinned (bit 30)
- isGrey (bit 31)
- isMarked (bit 55)
- leaving 2 unused bits, each next to a 22-bit field, allowing those fields
- to be
- expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
- } is for bits that are never set in young objects. This allows the
- remembered table to be pruned when full by using these bits as a reference
- count of
- newSpace objects from the remembered table. Objects with a high count
- should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
- return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
/* Answer the number of extra root slots in the root of the hidden root
object.
*/
@@ -61353,7 +61322,7 @@
bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
{
sqInt bridgeSpan;
- sqInt clifton;
+ usqInt clifton;
usqInt segEnd;
segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -73189,7 +73158,7 @@
sqInt sp1;
sqInt stSize;
sqInt totalLength;
- usqInt valueToStore;
+ sqInt valueToStore;
hdr = long64At(array);
fmt = (((unsigned sqLong)hdr) >> 24) & 0x1F;
@@ -74452,8 +74421,8 @@
sqInt totalLength;
sqInt totalLength1;
sqInt value;
- usqInt valueToStore;
- usqInt valueToStore1;
+ sqInt valueToStore;
+ sqInt valueToStore1;
value = longAt(GIV(stackPointer));
index = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -76225,7 +76194,7 @@
sqInt rcvr;
char *sp;
sqInt totalLength;
- usqInt valueToStore;
+ sqInt valueToStore;
newValue = longAt(GIV(stackPointer));
/* begin stackIntegerValue: */
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2015-03-25 20:25:29 UTC (rev 3289)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
from
- StackInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ StackInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -753,7 +753,6 @@
static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
static sqInt hiddenRootSlots(void);
sqInt identityHashHalfWordMask(void);
static sqInt imageSegmentVersion(void);
@@ -2115,7 +2114,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1118";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1119";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -34863,36 +34862,6 @@
}
-/* The header format in LSB is
- MSB: | 8: numSlots | (on a byte boundary)
- | 2 bits | (msb,lsb = {isMarked,?})
- | 22: identityHash | (on a word boundary)
- | 3 bits | (msb <-> lsb = {isGrey,isPinned,isRemembered}
- | 5: format | (on a byte boundary)
- | 2 bits | (msb,lsb = {isImmutable,?})
- | 22: classIndex | (on a word boundary) : LSB
- The remaining bits (7) are used for
- isImmutable (bit 23)
- isRemembered (bit 29)
- isPinned (bit 30)
- isGrey (bit 31)
- isMarked (bit 55)
- leaving 2 unused bits, each next to a 22-bit field, allowing those fields
- to be
- expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
- } is for bits that are never set in young objects. This allows the
- remembered table to be pruned when full by using these bits as a reference
- count of
- newSpace objects from the remembered table. Objects with a high count
- should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
- return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
/* Answer the number of extra root slots in the root of the hidden root
object.
*/
Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/nsspurstacksrc/vm/interp.c 2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
from
- StackInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ StackInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -750,7 +750,6 @@
static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
static sqInt hiddenRootSlots(void);
sqInt identityHashHalfWordMask(void);
static sqInt imageSegmentVersion(void);
@@ -2112,7 +2111,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1118";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1119";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -34854,36 +34853,6 @@
}
-/* The header format in LSB is
- MSB: | 8: numSlots | (on a byte boundary)
- | 2 bits | (msb,lsb = {isMarked,?})
- | 22: identityHash | (on a word boundary)
- | 3 bits | (msb <-> lsb = {isGrey,isPinned,isRemembered}
- | 5: format | (on a byte boundary)
- | 2 bits | (msb,lsb = {isImmutable,?})
- | 22: classIndex | (on a word boundary) : LSB
- The remaining bits (7) are used for
- isImmutable (bit 23)
- isRemembered (bit 29)
- isPinned (bit 30)
- isGrey (bit 31)
- isMarked (bit 55)
- leaving 2 unused bits, each next to a 22-bit field, allowing those fields
- to be
- expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
- } is for bits that are never set in young objects. This allows the
- remembered table to be pruned when full by using these bits as a reference
- count of
- newSpace objects from the remembered table. Objects with a high count
- should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
- return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
/* Answer the number of extra root slots in the root of the hidden root
object.
*/
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Wed Mar 25 12:49:58 PDT 2015
+ Wed Mar 25 13:25:04 PDT 2015
Modified: branches/Cog/spursistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.c 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursistasrc/vm/cointerp.c 2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
from
- CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1003,7 +1003,6 @@
static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
static sqInt hiddenRootSlots(void);
sqInt identityHashHalfWordMask(void);
static sqInt imageSegmentVersion(void);
@@ -1174,7 +1173,7 @@
static sqInt storeImageSegmentIntooutPointersroots(sqInt segmentWordArray, sqInt outPointerArray, sqInt arrayOfRoots) NoDbgRegParms;
sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
sqInt storePointerofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-sqInt stringForCString(const char *aCString);
+usqInt stringForCString(const char *aCString);
static sqInt sufficientSpaceAfterGC(sqInt numBytes) NoDbgRegParms;
static sqInt swizzleObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
void tenuringIncrementalGC(void);
@@ -2366,7 +2365,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1118]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1119]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -14818,7 +14817,7 @@
CogMethod *cogMethod;
sqInt methodField;
sqInt methodField1;
- usqInt theIP;
+ sqInt theIP;
assertl(GIV(stackPage) == (mostRecentlyUsedPage()), ln);
assertl(addressIsInPage(GIV(stackPage), lifp), ln);
@@ -21678,7 +21677,7 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt currentClass;
sqInt dictionary;
- sqInt hash;
+ usqInt hash;
sqInt index;
usqInt length;
usqInt mask;
@@ -30139,7 +30138,7 @@
GIV(needGCFlag) = 1;
forceInterruptCheck();
}
- s = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex);
+ s = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex)));
goto l1;
}
if (numSlots >= 0xFF) {
@@ -31455,7 +31454,7 @@
sqInt arg;
sqInt fmt;
sqInt i;
- usqInt length;
+ sqInt length;
usqInt numBytes;
usqInt numSlots;
usqInt numSlots1;
@@ -31496,18 +31495,18 @@
/* bytes (the common case), including CompiledMethod */
- length = ((sqInt) (numBytes - (fmt & 7)));
+ length = numBytes - (fmt & 7);
goto l1;
}
if (fmt <= 9) {
- length = ((sqInt) numBytes);
+ length = numBytes;
goto l1;
}
if (fmt >= 12) {
- length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
+ length = numBytes - ((fmt & 3) << 1);
goto l1;
}
- length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
+ length = numBytes - ((fmt & 1) << 2);
l1: /* end numBytesOf: */;
if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
&& (length == (numBytesOf(arg))))) {
@@ -31525,9 +31524,9 @@
flag("endianness");
assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
numSlots1 = byteAt(rcvr + 7);
- length = (numSlots1 == 0xFF
- ? longAt(rcvr - BaseHeaderSize)
- : numSlots1);
+ length = ((usqInt) ((numSlots1 == 0xFF
+ ? longAt(rcvr - BaseHeaderSize)
+ : numSlots1)));
if (!((isAppropriateForCopyObject(arg))
&& (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
(GIV(primFailCode) = PrimErrBadArgument);
@@ -34018,7 +34017,7 @@
static void
primitiveIdentityHash(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt hash;
+ usqInt hash;
sqInt integerVal;
char *sp;
sqInt thisReceiver;
@@ -35519,7 +35518,7 @@
sqInt err;
sqInt hash;
sqInt instSpec;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
sqInt numSlots;
@@ -35634,7 +35633,7 @@
sqInt i;
sqInt instSpec;
sqInt literalCount;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
sqInt numSlots;
@@ -37683,9 +37682,9 @@
primitiveSetIdentityHash(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt hash;
- sqInt hash1;
+ usqInt hash1;
sqInt integerPointer;
- sqInt oldHash;
+ usqInt oldHash;
sqInt oop;
char *sp;
sqInt thisReceiver;
@@ -41416,7 +41415,7 @@
sqInt fillValue;
sqInt hash;
sqInt instSpec;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
usqInt numSlots;
@@ -43309,7 +43308,7 @@
sqInt entry;
sqInt expectedIndex;
sqInt expectedIndex1;
- sqInt freeChunk;
+ usqInt freeChunk;
sqInt i;
sqInt i1;
sqInt index;
@@ -43348,8 +43347,8 @@
sqInt ptr1;
sqInt ptr2;
sqInt slotBytes;
- sqInt smallObj;
- sqInt start;
+ usqInt smallObj;
+ usqInt start;
classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
if (classIndex == 0) {
@@ -46283,7 +46282,7 @@
sqInt fmt;
sqInt hasYoung;
sqInt i;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
usqInt numSlots;
@@ -48925,36 +48924,6 @@
}
-/* The header format in LSB is
- MSB: | 8: numSlots | (on a byte boundary)
- | 2 bits | (msb,lsb = {isMarked,?})
- | 22: identityHash | (on a word boundary)
- | 3 bits | (msb <-> lsb = {isGrey,isPinned,isRemembered}
- | 5: format | (on a byte boundary)
- | 2 bits | (msb,lsb = {isImmutable,?})
- | 22: classIndex | (on a word boundary) : LSB
- The remaining bits (7) are used for
- isImmutable (bit 23)
- isRemembered (bit 29)
- isPinned (bit 30)
- isGrey (bit 31)
- isMarked (bit 55)
- leaving 2 unused bits, each next to a 22-bit field, allowing those fields
- to be
- expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
- } is for bits that are never set in young objects. This allows the
- remembered table to be pruned when full by using these bits as a reference
- count of
- newSpace objects from the remembered table. Objects with a high count
- should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
- return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
/* Answer the number of extra root slots in the root of the hidden root
object.
*/
@@ -57446,13 +57415,13 @@
sqInt obj21;
sqInt pigBytes;
usqInt prevFree;
- usqInt prevFreeChunk;
+ sqInt prevFreeChunk;
usqInt prevPrevFree;
- usqInt prevPrevFreeChunk;
+ sqInt prevPrevFreeChunk;
sqInt slotBytes;
sqInt slotBytes1;
usqInt there;
- usqInt thisFreeChunk;
+ sqInt thisFreeChunk;
sqInt usedChunk;
sqInt valuePointer;
sqInt valuePointer1;
@@ -60617,8 +60586,8 @@
sqInt prevPrevObj;
sqInt prevPrevObj1;
sqInt ptr;
- sqInt savedInHashes;
- sqInt savedOutHashes;
+ usqInt savedInHashes;
+ usqInt savedOutHashes;
sqInt segAddr;
sqInt segStart;
sqInt slotBytes;
@@ -61085,13 +61054,13 @@
/* Answer a new String copied from a null-terminated C string,
or nil if out of memory. */
-sqInt
+usqInt
stringForCString(const char *aCString)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt formatField;
sqInt len;
usqInt newObj;
- sqInt newString;
+ usqInt newString;
usqInt numBytes;
sqInt numSlots;
@@ -62007,7 +61976,7 @@
sqInt largeChild;
sqInt newEndOfMemory;
sqInt next;
- sqInt node;
+ usqInt node;
SpurSegmentInfo *seg;
sqInt smallChild;
sqInt treeNode;
@@ -62318,7 +62287,7 @@
usqLong firstSavedBridgeWord;
sqInt nWritten;
usqInt pier1;
- sqInt pier2;
+ usqInt pier2;
usqLong secondSavedBridgeWord;
pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);
@@ -67000,7 +66969,7 @@
sqInt currentClass;
sqInt dictionary;
sqInt found;
- sqInt hash;
+ usqInt hash;
sqInt index;
usqInt length;
usqInt mask;
@@ -67176,7 +67145,7 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt currentClass;
sqInt dictionary;
- sqInt hash;
+ usqInt hash;
sqInt index;
sqInt index1;
usqInt length;
@@ -67343,7 +67312,7 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt currentClass;
sqInt dictionary;
- sqInt hash;
+ usqInt hash;
sqInt index;
usqInt length;
usqInt mask;
Modified: branches/Cog/spursistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.h 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursistasrc/vm/cointerp.h 2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
@@ -176,7 +176,6 @@
sqInt formatShift(void);
sqInt freeObject(sqInt objOop);
usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
sqInt identityHashHalfWordMask(void);
sqInt indexablePointersFormat(void);
void inOrderPrintFreeTreeprintList(sqInt freeChunk, sqInt printNextList);
@@ -252,7 +251,7 @@
sqInt splObj(sqInt index);
usqInt storeCheckBoundary(void);
sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-sqInt stringForCString(const char *aCString);
+usqInt stringForCString(const char *aCString);
void tenuringIncrementalGC(void);
sqInt topRemappableOop(void);
sqInt validFreeTree(void);
Modified: branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursistasrc/vm/gcc3x-cointerp.c 2015-03-25 20:25:29 UTC (rev 3289)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
from
- CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1006,7 +1006,6 @@
static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
static sqInt hiddenRootSlots(void);
sqInt identityHashHalfWordMask(void);
static sqInt imageSegmentVersion(void);
@@ -1177,7 +1176,7 @@
static sqInt storeImageSegmentIntooutPointersroots(sqInt segmentWordArray, sqInt outPointerArray, sqInt arrayOfRoots) NoDbgRegParms;
sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
sqInt storePointerofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-sqInt stringForCString(const char *aCString);
+usqInt stringForCString(const char *aCString);
static sqInt sufficientSpaceAfterGC(sqInt numBytes) NoDbgRegParms;
static sqInt swizzleObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
void tenuringIncrementalGC(void);
@@ -2369,7 +2368,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1118]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1119]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -14827,7 +14826,7 @@
CogMethod *cogMethod;
sqInt methodField;
sqInt methodField1;
- usqInt theIP;
+ sqInt theIP;
assertl(GIV(stackPage) == (mostRecentlyUsedPage()), ln);
assertl(addressIsInPage(GIV(stackPage), lifp), ln);
@@ -21687,7 +21686,7 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt currentClass;
sqInt dictionary;
- sqInt hash;
+ usqInt hash;
sqInt index;
usqInt length;
usqInt mask;
@@ -30148,7 +30147,7 @@
GIV(needGCFlag) = 1;
forceInterruptCheck();
}
- s = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex);
+ s = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex)));
goto l1;
}
if (numSlots >= 0xFF) {
@@ -31464,7 +31463,7 @@
sqInt arg;
sqInt fmt;
sqInt i;
- usqInt length;
+ sqInt length;
usqInt numBytes;
usqInt numSlots;
usqInt numSlots1;
@@ -31505,18 +31504,18 @@
/* bytes (the common case), including CompiledMethod */
- length = ((sqInt) (numBytes - (fmt & 7)));
+ length = numBytes - (fmt & 7);
goto l1;
}
if (fmt <= 9) {
- length = ((sqInt) numBytes);
+ length = numBytes;
goto l1;
}
if (fmt >= 12) {
- length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
+ length = numBytes - ((fmt & 3) << 1);
goto l1;
}
- length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
+ length = numBytes - ((fmt & 1) << 2);
l1: /* end numBytesOf: */;
if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
&& (length == (numBytesOf(arg))))) {
@@ -31534,9 +31533,9 @@
flag("endianness");
assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
numSlots1 = byteAt(rcvr + 7);
- length = (numSlots1 == 0xFF
- ? longAt(rcvr - BaseHeaderSize)
- : numSlots1);
+ length = ((usqInt) ((numSlots1 == 0xFF
+ ? longAt(rcvr - BaseHeaderSize)
+ : numSlots1)));
if (!((isAppropriateForCopyObject(arg))
&& (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
(GIV(primFailCode) = PrimErrBadArgument);
@@ -34027,7 +34026,7 @@
static void
primitiveIdentityHash(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- sqInt hash;
+ usqInt hash;
sqInt integerVal;
char *sp;
sqInt thisReceiver;
@@ -35528,7 +35527,7 @@
sqInt err;
sqInt hash;
sqInt instSpec;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
sqInt numSlots;
@@ -35643,7 +35642,7 @@
sqInt i;
sqInt instSpec;
sqInt literalCount;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
sqInt numSlots;
@@ -37692,9 +37691,9 @@
primitiveSetIdentityHash(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt hash;
- sqInt hash1;
+ usqInt hash1;
sqInt integerPointer;
- sqInt oldHash;
+ usqInt oldHash;
sqInt oop;
char *sp;
sqInt thisReceiver;
@@ -41425,7 +41424,7 @@
sqInt fillValue;
sqInt hash;
sqInt instSpec;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
usqInt numSlots;
@@ -43318,7 +43317,7 @@
sqInt entry;
sqInt expectedIndex;
sqInt expectedIndex1;
- sqInt freeChunk;
+ usqInt freeChunk;
sqInt i;
sqInt i1;
sqInt index;
@@ -43357,8 +43356,8 @@
sqInt ptr1;
sqInt ptr2;
sqInt slotBytes;
- sqInt smallObj;
- sqInt start;
+ usqInt smallObj;
+ usqInt start;
classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
if (classIndex == 0) {
@@ -46292,7 +46291,7 @@
sqInt fmt;
sqInt hasYoung;
sqInt i;
- sqInt newObj;
+ usqInt newObj;
usqInt newObj1;
usqInt numBytes;
usqInt numSlots;
@@ -48934,36 +48933,6 @@
}
-/* The header format in LSB is
- MSB: | 8: numSlots | (on a byte boundary)
- | 2 bits | (msb,lsb = {isMarked,?})
- | 22: identityHash | (on a word boundary)
- | 3 bits | (msb <-> lsb = {isGrey,isPinned,isRemembered}
- | 5: format | (on a byte boundary)
- | 2 bits | (msb,lsb = {isImmutable,?})
- | 22: classIndex | (on a word boundary) : LSB
- The remaining bits (7) are used for
- isImmutable (bit 23)
- isRemembered (bit 29)
- isPinned (bit 30)
- isGrey (bit 31)
- isMarked (bit 55)
- leaving 2 unused bits, each next to a 22-bit field, allowing those fields
- to be
- expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
- } is for bits that are never set in young objects. This allows the
- remembered table to be pruned when full by using these bits as a reference
- count of
- newSpace objects from the remembered table. Objects with a high count
- should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
- return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
/* Answer the number of extra root slots in the root of the hidden root
object.
*/
@@ -57455,13 +57424,13 @@
sqInt obj21;
sqInt pigBytes;
usqInt prevFree;
- usqInt prevFreeChunk;
+ sqInt prevFreeChunk;
usqInt prevPrevFree;
- usqInt prevPrevFreeChunk;
+ sqInt prevPrevFreeChunk;
sqInt slotBytes;
sqInt slotBytes1;
usqInt there;
- usqInt thisFreeChunk;
+ sqInt thisFreeChunk;
sqInt usedChunk;
sqInt valuePointer;
sqInt valuePointer1;
@@ -60626,8 +60595,8 @@
sqInt prevPrevObj;
sqInt prevPrevObj1;
sqInt ptr;
- sqInt savedInHashes;
- sqInt savedOutHashes;
+ usqInt savedInHashes;
+ usqInt savedOutHashes;
sqInt segAddr;
sqInt segStart;
sqInt slotBytes;
@@ -61094,13 +61063,13 @@
/* Answer a new String copied from a null-terminated C string,
or nil if out of memory. */
-sqInt
+usqInt
stringForCString(const char *aCString)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt formatField;
sqInt len;
usqInt newObj;
- sqInt newString;
+ usqInt newString;
usqInt numBytes;
sqInt numSlots;
@@ -62016,7 +61985,7 @@
sqInt largeChild;
sqInt newEndOfMemory;
sqInt next;
- sqInt node;
+ usqInt node;
SpurSegmentInfo *seg;
sqInt smallChild;
sqInt treeNode;
@@ -62327,7 +62296,7 @@
usqLong firstSavedBridgeWord;
sqInt nWritten;
usqInt pier1;
- sqInt pier2;
+ usqInt pier2;
usqLong secondSavedBridgeWord;
pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);
@@ -67009,7 +66978,7 @@
sqInt currentClass;
sqInt dictionary;
sqInt found;
- sqInt hash;
+ usqInt hash;
sqInt index;
usqInt length;
usqInt mask;
@@ -67185,7 +67154,7 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt currentClass;
sqInt dictionary;
- sqInt hash;
+ usqInt hash;
sqInt index;
sqInt index1;
usqInt length;
@@ -67352,7 +67321,7 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt currentClass;
sqInt dictionary;
- sqInt hash;
+ usqInt hash;
sqInt index;
usqInt length;
usqInt mask;
Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursrc/vm/cointerp.c 2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
from
- CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -995,7 +995,6 @@
static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
static sqInt hiddenRootSlots(void);
sqInt identityHashHalfWordMask(void);
static sqInt imageSegmentVersion(void);
@@ -2355,7 +2354,7 @@
/*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
};
char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1118]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1119]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -24034,8 +24033,8 @@
sqInt totalLength1;
sqInt value;
sqInt value1;
- sqInt valueToStore;
- sqInt valueToStore1;
+ usqInt valueToStore;
+ usqInt valueToStore1;
/* begin commonAtPut: */
value = longAt(GIV(stackPointer));
@@ -34031,8 +34030,8 @@
sqInt totalLength1;
sqInt value;
sqInt value1;
- sqInt valueToStore;
- sqInt valueToStore1;
+ usqInt valueToStore;
+ usqInt valueToStore1;
/* begin commonAtPut: */
value = longAt(GIV(stackPointer));
@@ -44107,36 +44106,6 @@
}
-/* The header format in LSB is
- MSB: | 8: numSlots | (on a byte boundary)
- | 2 bits | (msb,lsb = {isMarked,?})
- | 22: identityHash | (on a word boundary)
- | 3 bits | (msb <-> lsb = {isGrey,isPinned,isRemembered}
- | 5: format | (on a byte boundary)
- | 2 bits | (msb,lsb = {isImmutable,?})
- | 22: classIndex | (on a word boundary) : LSB
- The remaining bits (7) are used for
- isImmutable (bit 23)
- isRemembered (bit 29)
- isPinned (bit 30)
- isGrey (bit 31)
- isMarked (bit 55)
- leaving 2 unused bits, each next to a 22-bit field, allowing those fields
- to be
- expanded to 23 bits.. The three bit field { isGrey, isPinned, isRemembered
- } is for bits that are never set in young objects. This allows the
- remembered table to be pruned when full by using these bits as a reference
- count of
- newSpace objects from the remembered table. Objects with a high count
- should be tenured to prune the remembered table. */
-
-usqLong
-headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex)
-{
- return ((((((usqLong) numSlots)) << 56) + ((((usqLong) hash)) << (identityHashFullWordShift()))) + (formatField << 24)) + classIndex;
-}
-
-
/* Answer the number of extra root slots in the root of the hidden root
object.
*/
@@ -57491,7 +57460,7 @@
usqLong firstSavedBridgeWord;
sqInt nWritten;
usqInt pier1;
- sqInt pier2;
+ usqInt pier2;
usqLong secondSavedBridgeWord;
pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);
@@ -68694,7 +68663,7 @@
sqInt sp1;
sqInt stSize;
sqInt totalLength;
- sqInt valueToStore;
+ usqInt valueToStore;
hdr = long64At(array);
fmt = (((unsigned sqLong)hdr) >> 24) & 0x1F;
@@ -69957,8 +69926,8 @@
sqInt totalLength;
sqInt totalLength1;
sqInt value;
- sqInt valueToStore;
- sqInt valueToStore1;
+ usqInt valueToStore;
+ usqInt valueToStore1;
value = longAt(GIV(stackPointer));
index = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -71730,7 +71699,7 @@
sqInt rcvr;
char *sp;
sqInt totalLength;
- sqInt valueToStore;
+ usqInt valueToStore;
newValue = longAt(GIV(stackPointer));
/* begin stackIntegerValue: */
@@ -71965,7 +71934,7 @@
sqInt header1;
sqInt i;
sqInt methodHeader;
- usqInt numSlots;
+ sqInt numSlots;
usqInt numSlots1;
sqInt rcvr;
char *sp;
@@ -72021,9 +71990,9 @@
flag("endianness");
assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
numSlots1 = byteAt(rcvr + 7);
- numSlots = (numSlots1 == 0xFF
- ? longAt(rcvr - BaseHeaderSize)
- : numSlots1);
+ numSlots = ((usqInt) ((numSlots1 == 0xFF
+ ? longAt(rcvr - BaseHeaderSize)
+ : numSlots1)));
}
}
else {
Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursrc/vm/cointerp.h 2015-03-25 20:25:29 UTC (rev 3289)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
@@ -174,7 +174,6 @@
sqInt formatShift(void);
sqInt freeObject(sqInt objOop);
usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
-usqLong headerForSlotshashformatclassIndex(sqInt numSlots, sqInt hash, sqInt formatField, sqInt classIndex);
sqInt identityHashHalfWordMask(void);
sqInt indexablePointersFormat(void);
void inOrderPrintFreeTreeprintList(sqInt freeChunk, sqInt printNextList);
Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2015-03-25 19:52:47 UTC (rev 3288)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2015-03-25 20:25:29 UTC (rev 3289)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
from
- CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12
+ CoInterpreter VMMaker.oscog-eem.1119 uuid: 0d6a1369-da4c-4ba3-a388-5100190dc256
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1118 uuid: b055db97-d17b-4dfd-b281-57e8df3faf12 " __DATE__ ;
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list