[Vm-dev] [commit][3642] CogVM source as per VMMaker.oscog-eem.1718
commits at squeakvm.org
commits at squeakvm.org
Wed Mar 9 09:00:34 UTC 2016
Revision: 3642
Author: eliot
Date: 2016-03-09 01:00:31 -0800 (Wed, 09 Mar 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1718
Spur:
Fix the bug in markAndTraceClassOf: that causes the first class table page to
become a visible array. Add a hack fix on initialization. Since we /can/ fix
the image manually this hack isn't necessary, but the manual fix won't work
until the markAndTraceClassOf: bug is fixed. Sigh...
Ensure purgeDuplicateClassTableEntriesFor: will not destroy class pun entries.
Plugins:
Fix primitiveFFIIntegerAt for signed 4-byte results. Wuth the support for
64-bit results, signed 4-byte results must be sign-extended to 64-bits.
Don't use cCode: pointer aliasing for storing/fetching float/double in FFI
primitives.
Replace with a call to mem:cp:y:
- the first one is dangerous with modern C compilers
- while the second is optimized away (no call to memcpy)
Fix a missing guard in SmartSyntaxPlugin like explained at
http://forum.world.st/VM-safety-missing-failing-guards-in-SmartSyntaxPlugin-td4816518.html
Fix two missing guards in VM profiling primitives: one should not use the result
of stackObjectValue: before checking for success, otherwise a null pointer
exception will occur in case of failure.
Make the MacMenubarPlugin 64bits aware: the menuHandle does not necessarily fit
in a 32bits int.
Slang:
The size of [unsigned] long long was not infered...
3 minor fixes for type inference:
1) remove unecessary block argument assignment
2) infer type of allMask:
3) infer type of rem: instead of mod: (mod: does not exist)
Modified Paths:
--------------
branches/Cog/nsspur64src/vm/cogit.h
branches/Cog/nsspur64src/vm/cointerp.c
branches/Cog/nsspur64src/vm/cointerp.h
branches/Cog/nsspur64src/vm/gcc3x-cointerp.c
branches/Cog/nsspursrc/vm/cogit.h
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
branches/Cog/nsspurstack64src/vm/interp.c
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/spur64src/vm/cogit.h
branches/Cog/spur64src/vm/cointerp.c
branches/Cog/spur64src/vm/cointerp.h
branches/Cog/spur64src/vm/gcc3x-cointerp.c
branches/Cog/spursistasrc/vm/cogit.h
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/cogit.h
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
branches/Cog/src/plugins/AsynchFilePlugin/AsynchFilePlugin.c
branches/Cog/src/plugins/BitBltPlugin/BitBltPlugin.c
branches/Cog/src/plugins/GeniePlugin/GeniePlugin.c
branches/Cog/src/plugins/HostWindowPlugin/HostWindowPlugin.c
branches/Cog/src/plugins/IA32ABI/IA32ABI.c
branches/Cog/src/plugins/ImmX11Plugin/ImmX11Plugin.c
branches/Cog/src/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c
branches/Cog/src/plugins/JoystickTabletPlugin/JoystickTabletPlugin.c
branches/Cog/src/plugins/LargeIntegers/LargeIntegers.c
branches/Cog/src/plugins/LocalePlugin/LocalePlugin.c
branches/Cog/src/plugins/MIDIPlugin/MIDIPlugin.c
branches/Cog/src/plugins/MacMenubarPlugin/MacMenubarPlugin.c
branches/Cog/src/plugins/Mpeg3Plugin/Mpeg3Plugin.c
branches/Cog/src/plugins/QuicktimePlugin/QuicktimePlugin.c
branches/Cog/src/plugins/SerialPlugin/SerialPlugin.c
branches/Cog/src/plugins/SocketPlugin/SocketPlugin.c
branches/Cog/src/plugins/SoundPlugin/SoundPlugin.c
branches/Cog/src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c
branches/Cog/src/plugins/SqueakFFIPrims/IA32FFIPlugin.c
branches/Cog/src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c
branches/Cog/src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c
branches/Cog/src/vm/cogit.h
branches/Cog/src/vm/cointerp.c
branches/Cog/src/vm/cointerp.h
branches/Cog/src/vm/cointerpmt.c
branches/Cog/src/vm/cointerpmt.h
branches/Cog/src/vm/gcc3x-cointerp.c
branches/Cog/src/vm/gcc3x-cointerpmt.c
branches/Cog/stacksrc/vm/gcc3x-interp.c
branches/Cog/stacksrc/vm/interp.c
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspur64src/vm/cogit.h
===================================================================
--- branches/Cog/nsspur64src/vm/cogit.h 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspur64src/vm/cogit.h 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGenerator VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
Modified: branches/Cog/nsspur64src/vm/cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.c 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspur64src/vm/cointerp.c 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
from
- CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2441,7 +2441,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.1709";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1716";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -41748,6 +41748,8 @@
}
sampleBuffer = oop;
l1: /* end stackObjectValue: */;
+ }
+ if (!GIV(primFailCode)) {
/* begin assertClassOf:is: */
ok = (sampleBuffer & (tagMask())) == 0;
if (ok) {
@@ -46015,7 +46017,8 @@
if (classOrNil != GIV(nilObj)) {
index = (((long)i1) << (classTableMajorIndexShift())) + j;
if ((classOrNil == aClass)
- && (index != expectedIndex1)) {
+ && ((index != expectedIndex1)
+ && (index > 0x1F))) {
classAtIndexput(index, GIV(nilObj));
if (index < GIV(classTableIndex)) {
GIV(classTableIndex) = index;
@@ -52764,10 +52767,16 @@
assert(validClassTableRootPages());
GIV(classTableFirstPage) = longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (0LL << (shiftForWord())));
assert(((numSlotsOf(GIV(classTableFirstPage))) - 1) == (classTableMinorIndexMask()));
+ flag("remove at some stage");
+ if (((longAt(GIV(classTableFirstPage))) & (classIndexMask())) != 16) {
+ /* begin setClassIndexOf:to: */
+ assert(((16 >= 0) && (16 <= (classIndexMask()))));
+ longAtput(GIV(classTableFirstPage), ((longAt(GIV(classTableFirstPage))) & (~(classIndexMask()))) + 16);
+ }
GIV(numClassTablePages) = 1LL << (22 - (classTableMajorIndexShift()));
- for (i = 2; i < GIV(numClassTablePages); i += 1) {
- if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i) << (shiftForWord())))) == GIV(nilObj)) {
- GIV(numClassTablePages) = i;
+ for (i1 = 2; i1 < GIV(numClassTablePages); i1 += 1) {
+ if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i1) << (shiftForWord())))) == GIV(nilObj)) {
+ GIV(numClassTablePages) = i1;
GIV(classTableIndex) = ((long)((((GIV(numClassTablePages) - 1) < 1) ? 1 : (GIV(numClassTablePages) - 1)))) << (classTableMajorIndexShift());
goto l1;
}
@@ -52785,10 +52794,10 @@
assert((formatOf(freeListObj)) == (wordIndexableFormat()));
GIV(freeLists) = firstIndexableField(freeListObj);
GIV(freeListsMask) = 0;
- for (i1 = 0, iLimiT = (64 - 1); i1 <= iLimiT; i1 += 1) {
- if ((GIV(freeLists)[i1]) != 0) {
- GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i1);
- GIV(freeLists)[i1] = (swizzleObj(GIV(freeLists)[i1]));
+ for (i = 0, iLimiT = (64 - 1); i <= iLimiT; i += 1) {
+ if ((GIV(freeLists)[i]) != 0) {
+ GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i);
+ GIV(freeLists)[i] = (swizzleObj(GIV(freeLists)[i]));
}
}
collapseSegmentsPostSwizzle();
@@ -55286,7 +55295,8 @@
l1: /* end classOrNilAtIndex: */;
assert(objCouldBeClassObj(classObj));
realClassIndex = (long32At(classObj + 4)) & (identityHashHalfWordMask());
- if (classIndex != realClassIndex) {
+ if ((classIndex != realClassIndex)
+ && (realClassIndex > 0x1F)) {
/* begin setClassIndexOf:to: */
assert(((realClassIndex >= 0) && (realClassIndex <= (classIndexMask()))));
longAtput(objOop, ((longAt(objOop)) & (~(classIndexMask()))) + realClassIndex);
@@ -66997,7 +67007,7 @@
sqInt limit;
sqInt newEndOfMemory;
sqInt next;
- usqInt node;
+ sqInt node;
usqInt numSlots;
usqInt numSlots1;
SpurSegmentInfo *seg;
@@ -67126,7 +67136,7 @@
static sqInt NoDbgRegParms
readHeapFromImageFiledataBytes(sqImageFile f, sqInt numBytes)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- usqInt bridge;
+ sqInt bridge;
usqInt bridgehead;
usqLong bridgeSpan;
sqInt bytesRead;
Modified: branches/Cog/nsspur64src/vm/cointerp.h
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.h 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspur64src/vm/cointerp.h 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
Modified: branches/Cog/nsspur64src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/gcc3x-cointerp.c 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspur64src/vm/gcc3x-cointerp.c 2016-03-09 09:00:31 UTC (rev 3642)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
from
- CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2444,7 +2444,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.1709";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1716";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -41757,6 +41757,8 @@
}
sampleBuffer = oop;
l1: /* end stackObjectValue: */;
+ }
+ if (!GIV(primFailCode)) {
/* begin assertClassOf:is: */
ok = (sampleBuffer & (tagMask())) == 0;
if (ok) {
@@ -46024,7 +46026,8 @@
if (classOrNil != GIV(nilObj)) {
index = (((long)i1) << (classTableMajorIndexShift())) + j;
if ((classOrNil == aClass)
- && (index != expectedIndex1)) {
+ && ((index != expectedIndex1)
+ && (index > 0x1F))) {
classAtIndexput(index, GIV(nilObj));
if (index < GIV(classTableIndex)) {
GIV(classTableIndex) = index;
@@ -52773,10 +52776,16 @@
assert(validClassTableRootPages());
GIV(classTableFirstPage) = longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (0LL << (shiftForWord())));
assert(((numSlotsOf(GIV(classTableFirstPage))) - 1) == (classTableMinorIndexMask()));
+ flag("remove at some stage");
+ if (((longAt(GIV(classTableFirstPage))) & (classIndexMask())) != 16) {
+ /* begin setClassIndexOf:to: */
+ assert(((16 >= 0) && (16 <= (classIndexMask()))));
+ longAtput(GIV(classTableFirstPage), ((longAt(GIV(classTableFirstPage))) & (~(classIndexMask()))) + 16);
+ }
GIV(numClassTablePages) = 1LL << (22 - (classTableMajorIndexShift()));
- for (i = 2; i < GIV(numClassTablePages); i += 1) {
- if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i) << (shiftForWord())))) == GIV(nilObj)) {
- GIV(numClassTablePages) = i;
+ for (i1 = 2; i1 < GIV(numClassTablePages); i1 += 1) {
+ if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i1) << (shiftForWord())))) == GIV(nilObj)) {
+ GIV(numClassTablePages) = i1;
GIV(classTableIndex) = ((long)((((GIV(numClassTablePages) - 1) < 1) ? 1 : (GIV(numClassTablePages) - 1)))) << (classTableMajorIndexShift());
goto l1;
}
@@ -52794,10 +52803,10 @@
assert((formatOf(freeListObj)) == (wordIndexableFormat()));
GIV(freeLists) = firstIndexableField(freeListObj);
GIV(freeListsMask) = 0;
- for (i1 = 0, iLimiT = (64 - 1); i1 <= iLimiT; i1 += 1) {
- if ((GIV(freeLists)[i1]) != 0) {
- GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i1);
- GIV(freeLists)[i1] = (swizzleObj(GIV(freeLists)[i1]));
+ for (i = 0, iLimiT = (64 - 1); i <= iLimiT; i += 1) {
+ if ((GIV(freeLists)[i]) != 0) {
+ GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i);
+ GIV(freeLists)[i] = (swizzleObj(GIV(freeLists)[i]));
}
}
collapseSegmentsPostSwizzle();
@@ -55295,7 +55304,8 @@
l1: /* end classOrNilAtIndex: */;
assert(objCouldBeClassObj(classObj));
realClassIndex = (long32At(classObj + 4)) & (identityHashHalfWordMask());
- if (classIndex != realClassIndex) {
+ if ((classIndex != realClassIndex)
+ && (realClassIndex > 0x1F)) {
/* begin setClassIndexOf:to: */
assert(((realClassIndex >= 0) && (realClassIndex <= (classIndexMask()))));
longAtput(objOop, ((longAt(objOop)) & (~(classIndexMask()))) + realClassIndex);
@@ -67006,7 +67016,7 @@
sqInt limit;
sqInt newEndOfMemory;
sqInt next;
- usqInt node;
+ sqInt node;
usqInt numSlots;
usqInt numSlots1;
SpurSegmentInfo *seg;
@@ -67135,7 +67145,7 @@
static sqInt NoDbgRegParms
readHeapFromImageFiledataBytes(sqImageFile f, sqInt numBytes)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- usqInt bridge;
+ sqInt bridge;
usqInt bridgehead;
usqLong bridgeSpan;
sqInt bytesRead;
Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspursrc/vm/cogit.h 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGenerator VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
from
- CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1608,8 +1608,8 @@
_iss sqInt bytesPerPage;
_iss sqInt numSegments;
_iss sqInt localAbsentReceiver;
+_iss sqInt classTableFirstPage;
_iss sqInt traceLogIndex;
-_iss sqInt classTableFirstPage;
_iss sqInt * freeLists;
_iss char * stackLimit;
_iss sqInt lkupClass;
@@ -2410,7 +2410,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.1709";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1716";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -41102,6 +41102,8 @@
}
sampleBuffer = oop;
l1: /* end stackObjectValue: */;
+ }
+ if (!GIV(primFailCode)) {
/* begin assertClassOf:is: */
ok = (sampleBuffer & (tagMask())) == 0;
if (ok) {
@@ -45304,7 +45306,8 @@
if (classOrNil != GIV(nilObj)) {
index = (i1 << (classTableMajorIndexShift())) + j;
if ((classOrNil == aClass)
- && (index != expectedIndex1)) {
+ && ((index != expectedIndex1)
+ && (index > 0x1F))) {
classAtIndexput(index, GIV(nilObj));
if (index < GIV(classTableIndex)) {
GIV(classTableIndex) = index;
@@ -52030,10 +52033,17 @@
assert(validClassTableRootPages());
GIV(classTableFirstPage) = longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (0L << (shiftForWord())));
assert(((numSlotsOf(GIV(classTableFirstPage))) - 1) == (classTableMinorIndexMask()));
+ flag("remove at some stage");
+ if (((longAt(GIV(classTableFirstPage))) & (classIndexMask())) != 16) {
+ /* begin setClassIndexOf:to: */
+ assert(((16 >= 0) && (16 <= (classIndexMask()))));
+ flag("endianness");
+ longAtput(GIV(classTableFirstPage), ((longAt(GIV(classTableFirstPage))) & ((unsigned int)~(classIndexMask()))) + 16);
+ }
GIV(numClassTablePages) = 1L << (22 - (classTableMajorIndexShift()));
- for (i = 2; i < GIV(numClassTablePages); i += 1) {
- if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (i << (shiftForWord())))) == GIV(nilObj)) {
- GIV(numClassTablePages) = i;
+ for (i1 = 2; i1 < GIV(numClassTablePages); i1 += 1) {
+ if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (i1 << (shiftForWord())))) == GIV(nilObj)) {
+ GIV(numClassTablePages) = i1;
GIV(classTableIndex) = ((((GIV(numClassTablePages) - 1) < 1) ? 1 : (GIV(numClassTablePages) - 1))) << (classTableMajorIndexShift());
goto l1;
}
@@ -52051,10 +52061,10 @@
assert((formatOf(freeListObj)) == (wordIndexableFormat()));
GIV(freeLists) = firstIndexableField(freeListObj);
GIV(freeListsMask) = 0;
- for (i1 = 0, iLimiT = (32 - 1); i1 <= iLimiT; i1 += 1) {
- if ((GIV(freeLists)[i1]) != 0) {
- GIV(freeListsMask) = GIV(freeListsMask) | (1L << i1);
- GIV(freeLists)[i1] = (swizzleObj(GIV(freeLists)[i1]));
+ for (i = 0, iLimiT = (32 - 1); i <= iLimiT; i += 1) {
+ if ((GIV(freeLists)[i]) != 0) {
+ GIV(freeListsMask) = GIV(freeListsMask) | (1L << i);
+ GIV(freeLists)[i] = (swizzleObj(GIV(freeLists)[i]));
}
}
collapseSegmentsPostSwizzle();
@@ -54548,7 +54558,8 @@
l1: /* end classOrNilAtIndex: */;
assert(objCouldBeClassObj(classObj));
realClassIndex = (long32At(classObj + 4)) & (identityHashHalfWordMask());
- if (classIndex != realClassIndex) {
+ if ((classIndex != realClassIndex)
+ && (realClassIndex > 0x1F)) {
/* begin setClassIndexOf:to: */
assert(((realClassIndex >= 0) && (realClassIndex <= (classIndexMask()))));
flag("endianness");
@@ -66087,7 +66098,7 @@
sqInt limit;
sqInt newEndOfMemory;
sqInt next;
- usqInt node;
+ sqInt node;
usqInt numSlots;
usqInt numSlots1;
SpurSegmentInfo *seg;
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2016-03-09 09:00:31 UTC (rev 3642)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
from
- CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1611,8 +1611,8 @@
_iss sqInt bytesPerPage;
_iss sqInt numSegments;
_iss sqInt localAbsentReceiver;
+_iss sqInt classTableFirstPage;
_iss sqInt traceLogIndex;
-_iss sqInt classTableFirstPage;
_iss sqInt * freeLists;
_iss char * stackLimit;
_iss sqInt lkupClass;
@@ -2413,7 +2413,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.1709";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1716";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -41111,6 +41111,8 @@
}
sampleBuffer = oop;
l1: /* end stackObjectValue: */;
+ }
+ if (!GIV(primFailCode)) {
/* begin assertClassOf:is: */
ok = (sampleBuffer & (tagMask())) == 0;
if (ok) {
@@ -45313,7 +45315,8 @@
if (classOrNil != GIV(nilObj)) {
index = (i1 << (classTableMajorIndexShift())) + j;
if ((classOrNil == aClass)
- && (index != expectedIndex1)) {
+ && ((index != expectedIndex1)
+ && (index > 0x1F))) {
classAtIndexput(index, GIV(nilObj));
if (index < GIV(classTableIndex)) {
GIV(classTableIndex) = index;
@@ -52039,10 +52042,17 @@
assert(validClassTableRootPages());
GIV(classTableFirstPage) = longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (0L << (shiftForWord())));
assert(((numSlotsOf(GIV(classTableFirstPage))) - 1) == (classTableMinorIndexMask()));
+ flag("remove at some stage");
+ if (((longAt(GIV(classTableFirstPage))) & (classIndexMask())) != 16) {
+ /* begin setClassIndexOf:to: */
+ assert(((16 >= 0) && (16 <= (classIndexMask()))));
+ flag("endianness");
+ longAtput(GIV(classTableFirstPage), ((longAt(GIV(classTableFirstPage))) & ((unsigned int)~(classIndexMask()))) + 16);
+ }
GIV(numClassTablePages) = 1L << (22 - (classTableMajorIndexShift()));
- for (i = 2; i < GIV(numClassTablePages); i += 1) {
- if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (i << (shiftForWord())))) == GIV(nilObj)) {
- GIV(numClassTablePages) = i;
+ for (i1 = 2; i1 < GIV(numClassTablePages); i1 += 1) {
+ if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (i1 << (shiftForWord())))) == GIV(nilObj)) {
+ GIV(numClassTablePages) = i1;
GIV(classTableIndex) = ((((GIV(numClassTablePages) - 1) < 1) ? 1 : (GIV(numClassTablePages) - 1))) << (classTableMajorIndexShift());
goto l1;
}
@@ -52060,10 +52070,10 @@
assert((formatOf(freeListObj)) == (wordIndexableFormat()));
GIV(freeLists) = firstIndexableField(freeListObj);
GIV(freeListsMask) = 0;
- for (i1 = 0, iLimiT = (32 - 1); i1 <= iLimiT; i1 += 1) {
- if ((GIV(freeLists)[i1]) != 0) {
- GIV(freeListsMask) = GIV(freeListsMask) | (1L << i1);
- GIV(freeLists)[i1] = (swizzleObj(GIV(freeLists)[i1]));
+ for (i = 0, iLimiT = (32 - 1); i <= iLimiT; i += 1) {
+ if ((GIV(freeLists)[i]) != 0) {
+ GIV(freeListsMask) = GIV(freeListsMask) | (1L << i);
+ GIV(freeLists)[i] = (swizzleObj(GIV(freeLists)[i]));
}
}
collapseSegmentsPostSwizzle();
@@ -54557,7 +54567,8 @@
l1: /* end classOrNilAtIndex: */;
assert(objCouldBeClassObj(classObj));
realClassIndex = (long32At(classObj + 4)) & (identityHashHalfWordMask());
- if (classIndex != realClassIndex) {
+ if ((classIndex != realClassIndex)
+ && (realClassIndex > 0x1F)) {
/* begin setClassIndexOf:to: */
assert(((realClassIndex >= 0) && (realClassIndex <= (classIndexMask()))));
flag("endianness");
@@ -66096,7 +66107,7 @@
sqInt limit;
sqInt newEndOfMemory;
sqInt next;
- usqInt node;
+ sqInt node;
usqInt numSlots;
usqInt numSlots1;
SpurSegmentInfo *seg;
Modified: branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/gcc3x-interp.c 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspurstack64src/vm/gcc3x-interp.c 2016-03-09 09:00:31 UTC (rev 3642)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
from
- StackInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ StackInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2185,7 +2185,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1709";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1716";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -28470,6 +28470,8 @@
}
sampleBuffer = oop;
l1: /* end stackObjectValue: */;
+ }
+ if (!GIV(primFailCode)) {
/* begin assertClassOf:is: */
ok = (sampleBuffer & (tagMask())) == 0;
if (ok) {
@@ -32582,7 +32584,8 @@
if (classOrNil != GIV(nilObj)) {
index = (((long)i1) << (classTableMajorIndexShift())) + j;
if ((classOrNil == aClass)
- && (index != expectedIndex1)) {
+ && ((index != expectedIndex1)
+ && (index > 0x1F))) {
classAtIndexput(index, GIV(nilObj));
if (index < GIV(classTableIndex)) {
GIV(classTableIndex) = index;
@@ -39443,10 +39446,16 @@
assert(validClassTableRootPages());
GIV(classTableFirstPage) = longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (0LL << (shiftForWord())));
assert(((numSlotsOf(GIV(classTableFirstPage))) - 1) == (classTableMinorIndexMask()));
+ flag("remove at some stage");
+ if (((longAt(GIV(classTableFirstPage))) & (classIndexMask())) != 16) {
+ /* begin setClassIndexOf:to: */
+ assert(((16 >= 0) && (16 <= (classIndexMask()))));
+ longAtput(GIV(classTableFirstPage), ((longAt(GIV(classTableFirstPage))) & (~(classIndexMask()))) + 16);
+ }
GIV(numClassTablePages) = 1LL << (22 - (classTableMajorIndexShift()));
- for (i = 2; i < GIV(numClassTablePages); i += 1) {
- if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i) << (shiftForWord())))) == GIV(nilObj)) {
- GIV(numClassTablePages) = i;
+ for (i1 = 2; i1 < GIV(numClassTablePages); i1 += 1) {
+ if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i1) << (shiftForWord())))) == GIV(nilObj)) {
+ GIV(numClassTablePages) = i1;
GIV(classTableIndex) = ((long)((((GIV(numClassTablePages) - 1) < 1) ? 1 : (GIV(numClassTablePages) - 1)))) << (classTableMajorIndexShift());
goto l1;
}
@@ -39464,10 +39473,10 @@
assert((formatOf(freeListObj)) == (wordIndexableFormat()));
GIV(freeLists) = firstIndexableField(freeListObj);
GIV(freeListsMask) = 0;
- for (i1 = 0, iLimiT = (64 - 1); i1 <= iLimiT; i1 += 1) {
- if ((GIV(freeLists)[i1]) != 0) {
- GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i1);
- GIV(freeLists)[i1] = (swizzleObj(GIV(freeLists)[i1]));
+ for (i = 0, iLimiT = (64 - 1); i <= iLimiT; i += 1) {
+ if ((GIV(freeLists)[i]) != 0) {
+ GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i);
+ GIV(freeLists)[i] = (swizzleObj(GIV(freeLists)[i]));
}
}
collapseSegmentsPostSwizzle();
@@ -41940,7 +41949,8 @@
l1: /* end classOrNilAtIndex: */;
assert(objCouldBeClassObj(classObj));
realClassIndex = (long32At(classObj + 4)) & (identityHashHalfWordMask());
- if (classIndex != realClassIndex) {
+ if ((classIndex != realClassIndex)
+ && (realClassIndex > 0x1F)) {
/* begin setClassIndexOf:to: */
assert(((realClassIndex >= 0) && (realClassIndex <= (classIndexMask()))));
longAtput(objOop, ((longAt(objOop)) & (~(classIndexMask()))) + realClassIndex);
Modified: branches/Cog/nsspurstack64src/vm/interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/interp.c 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspurstack64src/vm/interp.c 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
from
- StackInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ StackInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -2182,7 +2182,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1709";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1716";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -28461,6 +28461,8 @@
}
sampleBuffer = oop;
l1: /* end stackObjectValue: */;
+ }
+ if (!GIV(primFailCode)) {
/* begin assertClassOf:is: */
ok = (sampleBuffer & (tagMask())) == 0;
if (ok) {
@@ -32573,7 +32575,8 @@
if (classOrNil != GIV(nilObj)) {
index = (((long)i1) << (classTableMajorIndexShift())) + j;
if ((classOrNil == aClass)
- && (index != expectedIndex1)) {
+ && ((index != expectedIndex1)
+ && (index > 0x1F))) {
classAtIndexput(index, GIV(nilObj));
if (index < GIV(classTableIndex)) {
GIV(classTableIndex) = index;
@@ -39434,10 +39437,16 @@
assert(validClassTableRootPages());
GIV(classTableFirstPage) = longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (0LL << (shiftForWord())));
assert(((numSlotsOf(GIV(classTableFirstPage))) - 1) == (classTableMinorIndexMask()));
+ flag("remove at some stage");
+ if (((longAt(GIV(classTableFirstPage))) & (classIndexMask())) != 16) {
+ /* begin setClassIndexOf:to: */
+ assert(((16 >= 0) && (16 <= (classIndexMask()))));
+ longAtput(GIV(classTableFirstPage), ((longAt(GIV(classTableFirstPage))) & (~(classIndexMask()))) + 16);
+ }
GIV(numClassTablePages) = 1LL << (22 - (classTableMajorIndexShift()));
- for (i = 2; i < GIV(numClassTablePages); i += 1) {
- if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i) << (shiftForWord())))) == GIV(nilObj)) {
- GIV(numClassTablePages) = i;
+ for (i1 = 2; i1 < GIV(numClassTablePages); i1 += 1) {
+ if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i1) << (shiftForWord())))) == GIV(nilObj)) {
+ GIV(numClassTablePages) = i1;
GIV(classTableIndex) = ((long)((((GIV(numClassTablePages) - 1) < 1) ? 1 : (GIV(numClassTablePages) - 1)))) << (classTableMajorIndexShift());
goto l1;
}
@@ -39455,10 +39464,10 @@
assert((formatOf(freeListObj)) == (wordIndexableFormat()));
GIV(freeLists) = firstIndexableField(freeListObj);
GIV(freeListsMask) = 0;
- for (i1 = 0, iLimiT = (64 - 1); i1 <= iLimiT; i1 += 1) {
- if ((GIV(freeLists)[i1]) != 0) {
- GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i1);
- GIV(freeLists)[i1] = (swizzleObj(GIV(freeLists)[i1]));
+ for (i = 0, iLimiT = (64 - 1); i <= iLimiT; i += 1) {
+ if ((GIV(freeLists)[i]) != 0) {
+ GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i);
+ GIV(freeLists)[i] = (swizzleObj(GIV(freeLists)[i]));
}
}
collapseSegmentsPostSwizzle();
@@ -41931,7 +41940,8 @@
l1: /* end classOrNilAtIndex: */;
assert(objCouldBeClassObj(classObj));
realClassIndex = (long32At(classObj + 4)) & (identityHashHalfWordMask());
- if (classIndex != realClassIndex) {
+ if ((classIndex != realClassIndex)
+ && (realClassIndex > 0x1F)) {
/* begin setClassIndexOf:to: */
assert(((realClassIndex >= 0) && (realClassIndex <= (classIndexMask()))));
longAtput(objOop, ((longAt(objOop)) & (~(classIndexMask()))) + realClassIndex);
Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2016-03-09 09:00:31 UTC (rev 3642)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
from
- StackInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ StackInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1400,8 +1400,8 @@
_iss sqInt numSegments;
_iss char * stackMemory;
_iss sqInt * freeLists;
+_iss sqInt classTableFirstPage;
_iss sqInt rememberedSetSize;
-_iss sqInt classTableFirstPage;
_iss char * stackLimit;
_iss sqInt tempOop;
_iss sqInt * rememberedSet;
@@ -2155,7 +2155,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1709";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1716";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -27456,6 +27456,8 @@
}
sampleBuffer = oop;
l1: /* end stackObjectValue: */;
+ }
+ if (!GIV(primFailCode)) {
/* begin assertClassOf:is: */
ok = (sampleBuffer & (tagMask())) == 0;
if (ok) {
@@ -31510,7 +31512,8 @@
if (classOrNil != GIV(nilObj)) {
index = (i1 << (classTableMajorIndexShift())) + j;
if ((classOrNil == aClass)
- && (index != expectedIndex1)) {
+ && ((index != expectedIndex1)
+ && (index > 0x1F))) {
classAtIndexput(index, GIV(nilObj));
if (index < GIV(classTableIndex)) {
GIV(classTableIndex) = index;
@@ -38348,10 +38351,17 @@
assert(validClassTableRootPages());
GIV(classTableFirstPage) = longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (0L << (shiftForWord())));
assert(((numSlotsOf(GIV(classTableFirstPage))) - 1) == (classTableMinorIndexMask()));
+ flag("remove at some stage");
+ if (((longAt(GIV(classTableFirstPage))) & (classIndexMask())) != 16) {
+ /* begin setClassIndexOf:to: */
+ assert(((16 >= 0) && (16 <= (classIndexMask()))));
+ flag("endianness");
+ longAtput(GIV(classTableFirstPage), ((longAt(GIV(classTableFirstPage))) & ((unsigned int)~(classIndexMask()))) + 16);
+ }
GIV(numClassTablePages) = 1L << (22 - (classTableMajorIndexShift()));
- for (i = 2; i < GIV(numClassTablePages); i += 1) {
- if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (i << (shiftForWord())))) == GIV(nilObj)) {
- GIV(numClassTablePages) = i;
+ for (i1 = 2; i1 < GIV(numClassTablePages); i1 += 1) {
+ if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (i1 << (shiftForWord())))) == GIV(nilObj)) {
+ GIV(numClassTablePages) = i1;
GIV(classTableIndex) = ((((GIV(numClassTablePages) - 1) < 1) ? 1 : (GIV(numClassTablePages) - 1))) << (classTableMajorIndexShift());
goto l1;
}
@@ -38369,10 +38379,10 @@
assert((formatOf(freeListObj)) == (wordIndexableFormat()));
GIV(freeLists) = firstIndexableField(freeListObj);
GIV(freeListsMask) = 0;
- for (i1 = 0, iLimiT = (32 - 1); i1 <= iLimiT; i1 += 1) {
- if ((GIV(freeLists)[i1]) != 0) {
- GIV(freeListsMask) = GIV(freeListsMask) | (1L << i1);
- GIV(freeLists)[i1] = (swizzleObj(GIV(freeLists)[i1]));
+ for (i = 0, iLimiT = (32 - 1); i <= iLimiT; i += 1) {
+ if ((GIV(freeLists)[i]) != 0) {
+ GIV(freeListsMask) = GIV(freeListsMask) | (1L << i);
+ GIV(freeLists)[i] = (swizzleObj(GIV(freeLists)[i]));
}
}
collapseSegmentsPostSwizzle();
@@ -40841,7 +40851,8 @@
l1: /* end classOrNilAtIndex: */;
assert(objCouldBeClassObj(classObj));
realClassIndex = (long32At(classObj + 4)) & (identityHashHalfWordMask());
- if (classIndex != realClassIndex) {
+ if ((classIndex != realClassIndex)
+ && (realClassIndex > 0x1F)) {
/* begin setClassIndexOf:to: */
assert(((realClassIndex >= 0) && (realClassIndex <= (classIndexMask()))));
flag("endianness");
Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/nsspurstacksrc/vm/interp.c 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
from
- StackInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ StackInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1397,8 +1397,8 @@
_iss sqInt numSegments;
_iss char * stackMemory;
_iss sqInt * freeLists;
+_iss sqInt classTableFirstPage;
_iss sqInt rememberedSetSize;
-_iss sqInt classTableFirstPage;
_iss char * stackLimit;
_iss sqInt tempOop;
_iss sqInt * rememberedSet;
@@ -2152,7 +2152,7 @@
/* 575 */ (void (*)(void))0,
0 };
char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1709";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1716";
volatile int sendTrace;
sqInt suppressHeartbeatFlag;
@@ -27447,6 +27447,8 @@
}
sampleBuffer = oop;
l1: /* end stackObjectValue: */;
+ }
+ if (!GIV(primFailCode)) {
/* begin assertClassOf:is: */
ok = (sampleBuffer & (tagMask())) == 0;
if (ok) {
@@ -31501,7 +31503,8 @@
if (classOrNil != GIV(nilObj)) {
index = (i1 << (classTableMajorIndexShift())) + j;
if ((classOrNil == aClass)
- && (index != expectedIndex1)) {
+ && ((index != expectedIndex1)
+ && (index > 0x1F))) {
classAtIndexput(index, GIV(nilObj));
if (index < GIV(classTableIndex)) {
GIV(classTableIndex) = index;
@@ -38339,10 +38342,17 @@
assert(validClassTableRootPages());
GIV(classTableFirstPage) = longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (0L << (shiftForWord())));
assert(((numSlotsOf(GIV(classTableFirstPage))) - 1) == (classTableMinorIndexMask()));
+ flag("remove at some stage");
+ if (((longAt(GIV(classTableFirstPage))) & (classIndexMask())) != 16) {
+ /* begin setClassIndexOf:to: */
+ assert(((16 >= 0) && (16 <= (classIndexMask()))));
+ flag("endianness");
+ longAtput(GIV(classTableFirstPage), ((longAt(GIV(classTableFirstPage))) & ((unsigned int)~(classIndexMask()))) + 16);
+ }
GIV(numClassTablePages) = 1L << (22 - (classTableMajorIndexShift()));
- for (i = 2; i < GIV(numClassTablePages); i += 1) {
- if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (i << (shiftForWord())))) == GIV(nilObj)) {
- GIV(numClassTablePages) = i;
+ for (i1 = 2; i1 < GIV(numClassTablePages); i1 += 1) {
+ if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (i1 << (shiftForWord())))) == GIV(nilObj)) {
+ GIV(numClassTablePages) = i1;
GIV(classTableIndex) = ((((GIV(numClassTablePages) - 1) < 1) ? 1 : (GIV(numClassTablePages) - 1))) << (classTableMajorIndexShift());
goto l1;
}
@@ -38360,10 +38370,10 @@
assert((formatOf(freeListObj)) == (wordIndexableFormat()));
GIV(freeLists) = firstIndexableField(freeListObj);
GIV(freeListsMask) = 0;
- for (i1 = 0, iLimiT = (32 - 1); i1 <= iLimiT; i1 += 1) {
- if ((GIV(freeLists)[i1]) != 0) {
- GIV(freeListsMask) = GIV(freeListsMask) | (1L << i1);
- GIV(freeLists)[i1] = (swizzleObj(GIV(freeLists)[i1]));
+ for (i = 0, iLimiT = (32 - 1); i <= iLimiT; i += 1) {
+ if ((GIV(freeLists)[i]) != 0) {
+ GIV(freeListsMask) = GIV(freeListsMask) | (1L << i);
+ GIV(freeLists)[i] = (swizzleObj(GIV(freeLists)[i]));
}
}
collapseSegmentsPostSwizzle();
@@ -40832,7 +40842,8 @@
l1: /* end classOrNilAtIndex: */;
assert(objCouldBeClassObj(classObj));
realClassIndex = (long32At(classObj + 4)) & (identityHashHalfWordMask());
- if (classIndex != realClassIndex) {
+ if ((classIndex != realClassIndex)
+ && (realClassIndex > 0x1F)) {
/* begin setClassIndexOf:to: */
assert(((realClassIndex >= 0) && (realClassIndex <= (classIndexMask()))));
flag("endianness");
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Fri Mar 4 17:02:37 PST 2016
+ Wed Mar 9 00:58:46 PST 2016
Modified: branches/Cog/spur64src/vm/cogit.h
===================================================================
--- branches/Cog/spur64src/vm/cogit.h 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/spur64src/vm/cogit.h 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGenerator VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
Modified: branches/Cog/spur64src/vm/cointerp.c
===================================================================
--- branches/Cog/spur64src/vm/cointerp.c 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/spur64src/vm/cointerp.c 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
from
- CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1604,9 +1604,9 @@
_iss sqInt needGCFlag;
_iss sqInt * freeLists;
_iss sqInt traceLogIndex;
+_iss sqInt classTableFirstPage;
_iss sqInt rememberedSetSize;
_iss char * stackLimit;
-_iss sqInt classTableFirstPage;
_iss usqInt scavengeThreshold;
_iss sqInt * rememberedSet;
_iss sqInt remapBufferCount;
@@ -2404,7 +2404,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[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.1709]";
+const char *interpreterVersion = "Croquet Closure Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.1716]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -36918,6 +36918,8 @@
}
sampleBuffer = oop;
l1: /* end stackObjectValue: */;
+ }
+ if (!GIV(primFailCode)) {
/* begin assertClassOf:is: */
ok = (sampleBuffer & (tagMask())) == 0;
if (ok) {
@@ -41185,7 +41187,8 @@
if (classOrNil != GIV(nilObj)) {
index = (((long)i1) << (classTableMajorIndexShift())) + j;
if ((classOrNil == aClass)
- && (index != expectedIndex1)) {
+ && ((index != expectedIndex1)
+ && (index > 0x1F))) {
classAtIndexput(index, GIV(nilObj));
if (index < GIV(classTableIndex)) {
GIV(classTableIndex) = index;
@@ -47934,10 +47937,16 @@
assert(validClassTableRootPages());
GIV(classTableFirstPage) = longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (0LL << (shiftForWord())));
assert(((numSlotsOf(GIV(classTableFirstPage))) - 1) == (classTableMinorIndexMask()));
+ flag("remove at some stage");
+ if (((longAt(GIV(classTableFirstPage))) & (classIndexMask())) != 16) {
+ /* begin setClassIndexOf:to: */
+ assert(((16 >= 0) && (16 <= (classIndexMask()))));
+ longAtput(GIV(classTableFirstPage), ((longAt(GIV(classTableFirstPage))) & (~(classIndexMask()))) + 16);
+ }
GIV(numClassTablePages) = 1LL << (22 - (classTableMajorIndexShift()));
- for (i = 2; i < GIV(numClassTablePages); i += 1) {
- if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i) << (shiftForWord())))) == GIV(nilObj)) {
- GIV(numClassTablePages) = i;
+ for (i1 = 2; i1 < GIV(numClassTablePages); i1 += 1) {
+ if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i1) << (shiftForWord())))) == GIV(nilObj)) {
+ GIV(numClassTablePages) = i1;
GIV(classTableIndex) = ((long)((((GIV(numClassTablePages) - 1) < 1) ? 1 : (GIV(numClassTablePages) - 1)))) << (classTableMajorIndexShift());
goto l1;
}
@@ -47955,10 +47964,10 @@
assert((formatOf(freeListObj)) == (wordIndexableFormat()));
GIV(freeLists) = firstIndexableField(freeListObj);
GIV(freeListsMask) = 0;
- for (i1 = 0, iLimiT = (64 - 1); i1 <= iLimiT; i1 += 1) {
- if ((GIV(freeLists)[i1]) != 0) {
- GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i1);
- GIV(freeLists)[i1] = (swizzleObj(GIV(freeLists)[i1]));
+ for (i = 0, iLimiT = (64 - 1); i <= iLimiT; i += 1) {
+ if ((GIV(freeLists)[i]) != 0) {
+ GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i);
+ GIV(freeLists)[i] = (swizzleObj(GIV(freeLists)[i]));
}
}
collapseSegmentsPostSwizzle();
@@ -50456,7 +50465,8 @@
l1: /* end classOrNilAtIndex: */;
assert(objCouldBeClassObj(classObj));
realClassIndex = (long32At(classObj + 4)) & (identityHashHalfWordMask());
- if (classIndex != realClassIndex) {
+ if ((classIndex != realClassIndex)
+ && (realClassIndex > 0x1F)) {
/* begin setClassIndexOf:to: */
assert(((realClassIndex >= 0) && (realClassIndex <= (classIndexMask()))));
longAtput(objOop, ((longAt(objOop)) & (~(classIndexMask()))) + realClassIndex);
@@ -56558,7 +56568,7 @@
usqInt prevFree;
usqInt prevFreeChunk;
usqInt prevPrevFree;
- usqInt prevPrevFreeChunk;
+ sqInt prevPrevFreeChunk;
sqInt slotBytes;
sqInt slotBytes1;
usqInt there;
@@ -61903,7 +61913,7 @@
bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
{
usqInt bridgeSpan;
- sqInt clifton;
+ usqInt clifton;
usqInt segEnd;
segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -62147,7 +62157,7 @@
sqInt limit;
sqInt newEndOfMemory;
sqInt next;
- sqInt node;
+ usqInt node;
usqInt numSlots;
usqInt numSlots1;
SpurSegmentInfo *seg;
@@ -62276,7 +62286,7 @@
static sqInt NoDbgRegParms
readHeapFromImageFiledataBytes(sqImageFile f, sqInt numBytes)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- usqInt bridge;
+ sqInt bridge;
usqInt bridgehead;
usqLong bridgeSpan;
sqInt bytesRead;
Modified: branches/Cog/spur64src/vm/cointerp.h
===================================================================
--- branches/Cog/spur64src/vm/cointerp.h 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/spur64src/vm/cointerp.h 2016-03-09 09:00:31 UTC (rev 3642)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
Modified: branches/Cog/spur64src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spur64src/vm/gcc3x-cointerp.c 2016-03-08 22:21:51 UTC (rev 3641)
+++ branches/Cog/spur64src/vm/gcc3x-cointerp.c 2016-03-09 09:00:31 UTC (rev 3642)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
from
- CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b
+ CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1709 uuid: 10ded6ee-4717-4e34-84d0-9c501aed252b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1716 uuid: 9115c93b-f425-4118-96e7-7130adeff1f2 " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -1607,9 +1607,9 @@
_iss sqInt needGCFlag;
_iss sqInt * freeLists;
_iss sqInt traceLogIndex;
+_iss sqInt classTableFirstPage;
_iss sqInt rememberedSetSize;
_iss char * stackLimit;
-_iss sqInt classTableFirstPage;
_iss usqInt scavengeThreshold;
_iss sqInt * rememberedSet;
_iss sqInt remapBufferCount;
@@ -2407,7 +2407,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[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.1709]";
+const char *interpreterVersion = "Croquet Closure Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.1716]";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
volatile int sendTrace;
@@ -36927,6 +36927,8 @@
}
sampleBuffer = oop;
l1: /* end stackObjectValue: */;
+ }
+ if (!GIV(primFailCode)) {
/* begin assertClassOf:is: */
ok = (sampleBuffer & (tagMask())) == 0;
if (ok) {
@@ -41194,7 +41196,8 @@
if (classOrNil != GIV(nilObj)) {
index = (((long)i1) << (classTableMajorIndexShift())) + j;
if ((classOrNil == aClass)
- && (index != expectedIndex1)) {
+ && ((index != expectedIndex1)
+ && (index > 0x1F))) {
classAtIndexput(index, GIV(nilObj));
if (index < GIV(classTableIndex)) {
GIV(classTableIndex) = index;
@@ -47943,10 +47946,16 @@
assert(validClassTableRootPages());
GIV(classTableFirstPage) = longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (0LL << (shiftForWord())));
assert(((numSlotsOf(GIV(classTableFirstPage))) - 1) == (classTableMinorIndexMask()));
+ flag("remove at some stage");
+ if (((longAt(GIV(classTableFirstPage))) & (classIndexMask())) != 16) {
+ /* begin setClassIndexOf:to: */
+ assert(((16 >= 0) && (16 <= (classIndexMask()))));
+ longAtput(GIV(classTableFirstPage), ((longAt(GIV(classTableFirstPage))) & (~(classIndexMask()))) + 16);
+ }
GIV(numClassTablePages) = 1LL << (22 - (classTableMajorIndexShift()));
- for (i = 2; i < GIV(numClassTablePages); i += 1) {
- if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i) << (shiftForWord())))) == GIV(nilObj)) {
- GIV(numClassTablePages) = i;
+ for (i1 = 2; i1 < GIV(numClassTablePages); i1 += 1) {
+ if ((longAt((GIV(hiddenRootsObj) + BaseHeaderSize) + (((long)i1) << (shiftForWord())))) == GIV(nilObj)) {
+ GIV(numClassTablePages) = i1;
GIV(classTableIndex) = ((long)((((GIV(numClassTablePages) - 1) < 1) ? 1 : (GIV(numClassTablePages) - 1)))) << (classTableMajorIndexShift());
goto l1;
}
@@ -47964,10 +47973,10 @@
assert((formatOf(freeListObj)) == (wordIndexableFormat()));
GIV(freeLists) = firstIndexableField(freeListObj);
GIV(freeListsMask) = 0;
- for (i1 = 0, iLimiT = (64 - 1); i1 <= iLimiT; i1 += 1) {
- if ((GIV(freeLists)[i1]) != 0) {
- GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i1);
- GIV(freeLists)[i1] = (swizzleObj(GIV(freeLists)[i1]));
+ for (i = 0, iLimiT = (64 - 1); i <= iLimiT; i += 1) {
+ if ((GIV(freeLists)[i]) != 0) {
+ GIV(freeListsMask) = GIV(freeListsMask) | (1LL << i);
+ GIV(freeLists)[i] = (swizzleObj(GIV(freeLists)[i]));
}
}
collapseSegmentsPostSwizzle();
@@ -50465,7 +50474,8 @@
l1: /* end classOrNilAtIndex: */;
assert(objCouldBeClassObj(classObj));
realClassIndex = (long32At(classObj + 4)) & (identityHashHalfWordMask());
- if (classIndex != realClassIndex) {
+ if ((classIndex != realClassIndex)
+ && (realClassIndex > 0x1F)) {
/* begin setClassIndexOf:to: */
assert(((realClassIndex >= 0) && (realClassIndex <= (classIndexMask()))));
longAtput(objOop, ((longAt(objOop)) & (~(classIndexMask()))) + realClassIndex);
@@ -56567,7 +56577,7 @@
usqInt prevFree;
usqInt prevFreeChunk;
usqInt prevPrevFree;
- usqInt prevPrevFreeChunk;
+ sqInt prevPrevFreeChunk;
sqInt slotBytes;
sqInt slotBytes1;
usqInt there;
@@ -61912,7 +61922,7 @@
bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
{
usqInt bridgeSpan;
- sqInt clifton;
+ usqInt clifton;
usqInt segEnd;
segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -62156,7 +62166,7 @@
sqInt limit;
sqInt newEndOfMemory;
sqInt next;
- sqInt node;
+ usqInt node;
usqInt numSlots;
usqInt numSlots1;
SpurSegmentInfo *seg;
@@ -62285,7 +62295,7 @@
static sqInt NoDbgRegParms
readHeapFromImageFiledataBytes(sqImageFile f, sqInt numBytes)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
- usqInt bridge;
+ sqInt bridge;
usqInt bridgehead;
usqLong bridgeSpan;
sqInt bytesRead;
Modified: branches/Cog/spursistasrc/vm/cogit.h
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.h 2016-03-08 22:21:51 UTC (rev 3641)
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list