[commit][2875] CogVM source as per VMMaker.oscog-eem.636

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[commit][2875] CogVM source as per VMMaker.oscog-eem.636

commits-3
 
Revision: 2875
Author:   eliot
Date:     2014-03-10 13:26:23 -0700 (Mon, 10 Mar 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.636

Fix byteFormatForNumBytes: and hence fix the new version of
positive64BitIntegerFor:.

Spur: Make sure expungeDuplicateAndUnmarkedClasses: resets
classTableIndex for nil entries.

Modified Paths:
--------------
    branches/Cog/nscogsrc/vm/cointerp.c
    branches/Cog/nscogsrc/vm/cointerp.h
    branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
    branches/Cog/nscogsrc/vm/interp.h
    branches/Cog/nscogsrc/vm/vmCallback.h
    branches/Cog/nsspursrc/vm/cointerp.c
    branches/Cog/nsspursrc/vm/cointerp.h
    branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
    branches/Cog/nsspursrc/vm/interp.h
    branches/Cog/nsspursrc/vm/vmCallback.h
    branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsspurstacksrc/vm/interp.c
    branches/Cog/nsspurstacksrc/vm/interp.h
    branches/Cog/nsspurstacksrc/vm/vmCallback.h
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spursrc/vm/interp.h
    branches/Cog/spursrc/vm/vmCallback.h
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.c
    branches/Cog/spurstacksrc/vm/interp.h
    branches/Cog/spurstacksrc/vm/vmCallback.h
    branches/Cog/src/vm/cointerp.c
    branches/Cog/src/vm/cointerp.h
    branches/Cog/src/vm/cointerpmt.c
    branches/Cog/src/vm/cointerpmt.h
    branches/Cog/src/vm/gcc3x-cointerp.c
    branches/Cog/src/vm/gcc3x-cointerpmt.c
    branches/Cog/src/vm/interp.h
    branches/Cog/src/vm/vmCallback.h
    branches/Cog/stacksrc/vm/gcc3x-interp.c
    branches/Cog/stacksrc/vm/interp.c
    branches/Cog/stacksrc/vm/interp.h
    branches/Cog/stacksrc/vm/vmCallback.h

Property Changed:
----------------
    branches/Cog/platforms/Cross/vm/sqSCCSVersion.h

Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nscogsrc/vm/cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
    from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1146,7 +1146,7 @@
 static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
 static sqInt roomToPushNArgs(sqInt n);
 static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static sqInt safeObjectAfter(sqInt oop);
+static usqInt safeObjectAfter(sqInt oop);
 static sqInt safePrintStringOf(sqInt oop);
 usqInt scavengeThresholdAddress(void);
 EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -2033,7 +2033,7 @@
  /* 574 */ (void (*)(void))0,
  /* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.636";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -4827,7 +4827,6 @@
  GIV(framePointer) = localFP;
 
  ceEnterCogCodePopReceiverReg();
- null;
  goto l307;
  }
  localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
@@ -4845,7 +4844,7 @@
  /* begin fetchNextBytecode */
  currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
- null;
+ /* return self */
  l307: /* end baseFrameReturn */;
  goto l304;
  }
@@ -23735,17 +23734,15 @@
     sqInt header1;
     sqInt header2;
     sqInt header3;
-    sqInt header4;
     usqInt lastWord;
     sqInt newFreeChunk;
     sqInt newOop;
-    sqInt next;
+    usqInt next;
     sqInt oop;
     sqInt realHeader;
     sqInt sz;
     sqInt sz1;
     sqInt sz2;
-    sqInt sz3;
     sqInt target;
     usqInt w;
 
@@ -23756,21 +23753,7 @@
  /* begin objectAfterWhileForwarding: */
  header2 = longAt(oop);
  if ((header2 & MarkBit) == 0) {
- /* begin objectAfter: */
- if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) {
- error("no objects after the end of memory");
- }
- if (((longAt(oop)) & TypeMask) == HeaderTypeFree) {
- sz2 = (longAt(oop)) & AllButTypeMask;
- }
- else {
- /* begin sizeBitsOf: */
- header3 = longAt(oop);
- sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
- ? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask
- : header3 & SizeMask);
- }
- next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]);
+ next = ((sqInt) (objectAfter(oop)));
  goto l1;
  }
  fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1;
@@ -23785,7 +23768,7 @@
  else {
  sz1 = realHeader & SizeMask;
  }
- next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]);
+ next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask])));
  l1: /* end objectAfterWhileForwarding: */;
  if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
 
@@ -23839,18 +23822,18 @@
  }
  /* begin safeObjectAfter: */
  if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) {
- sz3 = (longAt(newFreeChunk)) & AllButTypeMask;
+ sz2 = (longAt(newFreeChunk)) & AllButTypeMask;
  }
  else {
  /* begin sizeBitsOf: */
- header4 = longAt(newFreeChunk);
- sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass
+ header3 = longAt(newFreeChunk);
+ sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
  ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask
- : header4 & SizeMask);
+ : header3 & SizeMask);
  }
- next = ((newFreeChunk + sz3) >= GIV(freeStart)
+ next = ((newFreeChunk + sz2) >= GIV(freeStart)
  ? GIV(freeStart)
- : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask]));
+ : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask]));
  assert((next == GIV(freeStart))
  || (next == (oopFromChunk(GIV(compEnd)))));
  if (next == GIV(freeStart)) {
@@ -29803,7 +29786,7 @@
  && ((integerValue ^ (integerValue << 1)) >= 0)) {
  return ((integerValue << 1) | 1);
  }
- newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + (4 & 3), 1);
+ newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + ((4 - 4) & 3), 1);
  byteAtput((newLargeInteger + BaseHeaderSize) + 3, (((usqInt) integerValue) >> 24) & 0xFF);
  byteAtput((newLargeInteger + BaseHeaderSize) + 2, (((usqInt) integerValue) >> 16) & 0xFF);
  byteAtput((newLargeInteger + BaseHeaderSize) + 1, (((usqInt) integerValue) >> 8) & 0xFF);
@@ -29889,7 +29872,7 @@
  if (!(((highWord = ((usqInt) highWord) >> 8)) == 0)) {
  sz += 1;
  }
- newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + (sz & 3), ((sqInt) 8 >> 2));
+ newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + ((4 - sz) & 3), ((sqInt) 8 >> 2));
  byteAtput((newLargeInteger + BaseHeaderSize) + 7, (((unsigned sqLong)integerValue) >> 56) & 0xFF);
  byteAtput((newLargeInteger + BaseHeaderSize) + 6, (((unsigned sqLong)integerValue) >> 48) & 0xFF);
  byteAtput((newLargeInteger + BaseHeaderSize) + 5, (((unsigned sqLong)integerValue) >> 40) & 0xFF);
@@ -50265,7 +50248,7 @@
  given object or free chunk in memory. Return freeStart when
  enumeration is complete. This is for assertion checking only. */
 
-static sqInt
+static usqInt
 safeObjectAfter(sqInt oop)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt header;

Modified: branches/Cog/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nscogsrc/vm/cointerp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 

Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
    from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1149,7 +1149,7 @@
 static void rewriteMethodCacheEntryForExternalPrimitiveToFunction(void (*localPrimAddress)(void));
 static sqInt roomToPushNArgs(sqInt n);
 static void runLeakCheckerForFullGC(sqInt fullGCFlag);
-static sqInt safeObjectAfter(sqInt oop);
+static usqInt safeObjectAfter(sqInt oop);
 static sqInt safePrintStringOf(sqInt oop);
 usqInt scavengeThresholdAddress(void);
 EXPORT(sqInt) sendInvokeCallbackContext(VMCallbackContext *vmCallbackContext);
@@ -2036,7 +2036,7 @@
  /* 574 */ (void (*)(void))0,
  /* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.636";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -4836,7 +4836,6 @@
  GIV(framePointer) = localFP;
 
  ceEnterCogCodePopReceiverReg();
- null;
  goto l307;
  }
  localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
@@ -4854,7 +4853,7 @@
  /* begin fetchNextBytecode */
  currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
 
- null;
+ /* return self */
  l307: /* end baseFrameReturn */;
  goto l304;
  }
@@ -23744,17 +23743,15 @@
     sqInt header1;
     sqInt header2;
     sqInt header3;
-    sqInt header4;
     usqInt lastWord;
     sqInt newFreeChunk;
     sqInt newOop;
-    sqInt next;
+    usqInt next;
     sqInt oop;
     sqInt realHeader;
     sqInt sz;
     sqInt sz1;
     sqInt sz2;
-    sqInt sz3;
     sqInt target;
     usqInt w;
 
@@ -23765,21 +23762,7 @@
  /* begin objectAfterWhileForwarding: */
  header2 = longAt(oop);
  if ((header2 & MarkBit) == 0) {
- /* begin objectAfter: */
- if (!(asserta(oopisLessThan(oop, GIV(freeStart))))) {
- error("no objects after the end of memory");
- }
- if (((longAt(oop)) & TypeMask) == HeaderTypeFree) {
- sz2 = (longAt(oop)) & AllButTypeMask;
- }
- else {
- /* begin sizeBitsOf: */
- header3 = longAt(oop);
- sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
- ? (longAt(oop - (BytesPerWord * 2))) & LongSizeMask
- : header3 & SizeMask);
- }
- next = (oop + sz2) + (headerTypeBytes[(longAt(oop + sz2)) & TypeMask]);
+ next = ((sqInt) (objectAfter(oop)));
  goto l1;
  }
  fwdBlock1 = (header2 & AllButMarkBitAndTypeMask) << 1;
@@ -23794,7 +23777,7 @@
  else {
  sz1 = realHeader & SizeMask;
  }
- next = (oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask]);
+ next = ((sqInt) ((oop + sz1) + (headerTypeBytes[(longAt(oop + sz1)) & TypeMask])));
  l1: /* end objectAfterWhileForwarding: */;
  if (!(((longAt(oop)) & TypeMask) == HeaderTypeFree)) {
 
@@ -23848,18 +23831,18 @@
  }
  /* begin safeObjectAfter: */
  if (((longAt(newFreeChunk)) & TypeMask) == HeaderTypeFree) {
- sz3 = (longAt(newFreeChunk)) & AllButTypeMask;
+ sz2 = (longAt(newFreeChunk)) & AllButTypeMask;
  }
  else {
  /* begin sizeBitsOf: */
- header4 = longAt(newFreeChunk);
- sz3 = ((header4 & TypeMask) == HeaderTypeSizeAndClass
+ header3 = longAt(newFreeChunk);
+ sz2 = ((header3 & TypeMask) == HeaderTypeSizeAndClass
  ? (longAt(newFreeChunk - (BytesPerWord * 2))) & LongSizeMask
- : header4 & SizeMask);
+ : header3 & SizeMask);
  }
- next = ((newFreeChunk + sz3) >= GIV(freeStart)
+ next = ((newFreeChunk + sz2) >= GIV(freeStart)
  ? GIV(freeStart)
- : (newFreeChunk + sz3) + (headerTypeBytes[(longAt(newFreeChunk + sz3)) & TypeMask]));
+ : (newFreeChunk + sz2) + (headerTypeBytes[(longAt(newFreeChunk + sz2)) & TypeMask]));
  assert((next == GIV(freeStart))
  || (next == (oopFromChunk(GIV(compEnd)))));
  if (next == GIV(freeStart)) {
@@ -29812,7 +29795,7 @@
  && ((integerValue ^ (integerValue << 1)) >= 0)) {
  return ((integerValue << 1) | 1);
  }
- newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + (4 & 3), 1);
+ newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + ((4 - 4) & 3), 1);
  byteAtput((newLargeInteger + BaseHeaderSize) + 3, (((usqInt) integerValue) >> 24) & 0xFF);
  byteAtput((newLargeInteger + BaseHeaderSize) + 2, (((usqInt) integerValue) >> 16) & 0xFF);
  byteAtput((newLargeInteger + BaseHeaderSize) + 1, (((usqInt) integerValue) >> 8) & 0xFF);
@@ -29898,7 +29881,7 @@
  if (!(((highWord = ((usqInt) highWord) >> 8)) == 0)) {
  sz += 1;
  }
- newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + (sz & 3), ((sqInt) 8 >> 2));
+ newLargeInteger = eeInstantiateSmallClassIndexformatnumSlots(ClassLargePositiveIntegerCompactIndex, 8 + ((4 - sz) & 3), ((sqInt) 8 >> 2));
  byteAtput((newLargeInteger + BaseHeaderSize) + 7, (((unsigned sqLong)integerValue) >> 56) & 0xFF);
  byteAtput((newLargeInteger + BaseHeaderSize) + 6, (((unsigned sqLong)integerValue) >> 48) & 0xFF);
  byteAtput((newLargeInteger + BaseHeaderSize) + 5, (((unsigned sqLong)integerValue) >> 40) & 0xFF);
@@ -50274,7 +50257,7 @@
  given object or free chunk in memory. Return freeStart when
  enumeration is complete. This is for assertion checking only. */
 
-static sqInt
+static usqInt
 safeObjectAfter(sqInt oop)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt header;

Modified: branches/Cog/nscogsrc/vm/interp.h
===================================================================
--- branches/Cog/nscogsrc/vm/interp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nscogsrc/vm/interp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/nscogsrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nscogsrc/vm/vmCallback.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nscogsrc/vm/vmCallback.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
    from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1476,6 +1476,7 @@
 _iss usqInt freeOldSpaceStart;
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt profileMethod;
+_iss sqInt classTableIndex;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt lkupClass;
@@ -1483,7 +1484,6 @@
 _iss sqInt metaclassNumSlots;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
-_iss sqInt classTableIndex;
 _iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt growHeadroom;
 _iss sqInt highestRunnableProcessPriority;
@@ -2191,7 +2191,7 @@
  /* 575 */ (void (*)(void))0,
  0 };
 usqInt heapBase;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.636";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -25712,20 +25712,26 @@
  assert((classAtIndex(classIndex)) == classOrNil);
  assert((classOrNil == GIV(nilObj))
  || (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
  if (classIndex < GIV(classTableIndex)) {
  GIV(classTableIndex) = classIndex;
  }
  }
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
  }
  }
  }
@@ -37865,7 +37871,7 @@
  return ((integerValue << 1) | 1);
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
  assert((1 >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())
@@ -37985,7 +37991,7 @@
  sz += 1;
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
  assert(((((sqInt) 8 >> 2)) >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())

Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 

Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
    from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1479,6 +1479,7 @@
 _iss usqInt freeOldSpaceStart;
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt profileMethod;
+_iss sqInt classTableIndex;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt lkupClass;
@@ -1486,7 +1487,6 @@
 _iss sqInt metaclassNumSlots;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
-_iss sqInt classTableIndex;
 _iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt growHeadroom;
 _iss sqInt highestRunnableProcessPriority;
@@ -2194,7 +2194,7 @@
  /* 575 */ (void (*)(void))0,
  0 };
 usqInt heapBase;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.636";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -25721,20 +25721,26 @@
  assert((classAtIndex(classIndex)) == classOrNil);
  assert((classOrNil == GIV(nilObj))
  || (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
  if (classIndex < GIV(classTableIndex)) {
  GIV(classTableIndex) = classIndex;
  }
  }
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
  }
  }
  }
@@ -37874,7 +37880,7 @@
  return ((integerValue << 1) | 1);
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
  assert((1 >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())
@@ -37994,7 +38000,7 @@
  sz += 1;
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
  assert(((((sqInt) 8 >> 2)) >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())

Modified: branches/Cog/nsspursrc/vm/interp.h
===================================================================
--- branches/Cog/nsspursrc/vm/interp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspursrc/vm/interp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/nsspursrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nsspursrc/vm/vmCallback.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspursrc/vm/vmCallback.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
    from
- StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1286,6 +1286,7 @@
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt profileMethod;
+_iss sqInt classTableIndex;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt growHeadroom;
@@ -1293,7 +1294,6 @@
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
 _iss sqInt profileSemaphore;
-_iss sqInt classTableIndex;
 _iss sqInt highestRunnableProcessPriority;
 _iss usqLong longRunningPrimitiveStartUsecs;
 _iss usqLong longRunningPrimitiveStopUsecs;
@@ -1981,7 +1981,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.636";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -21944,20 +21944,26 @@
  assert((classAtIndex(classIndex)) == classOrNil);
  assert((classOrNil == GIV(nilObj))
  || (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
  if (classIndex < GIV(classTableIndex)) {
  GIV(classTableIndex) = classIndex;
  }
  }
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
  }
  }
  }
@@ -32360,7 +32366,7 @@
  return ((integerValue << 1) | 1);
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
  assert((1 >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())
@@ -32480,7 +32486,7 @@
  sz += 1;
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
  assert(((((sqInt) 8 >> 2)) >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())

Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspurstacksrc/vm/interp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
    from
- StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1283,6 +1283,7 @@
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt profileMethod;
+_iss sqInt classTableIndex;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt growHeadroom;
@@ -1290,7 +1291,6 @@
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
 _iss sqInt profileSemaphore;
-_iss sqInt classTableIndex;
 _iss sqInt highestRunnableProcessPriority;
 _iss usqLong longRunningPrimitiveStartUsecs;
 _iss usqLong longRunningPrimitiveStopUsecs;
@@ -1978,7 +1978,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.635";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreter_VMMaker.oscog-eem.636";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -21935,20 +21935,26 @@
  assert((classAtIndex(classIndex)) == classOrNil);
  assert((classOrNil == GIV(nilObj))
  || (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
  if (classIndex < GIV(classTableIndex)) {
  GIV(classTableIndex) = classIndex;
  }
  }
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
  }
  }
  }
@@ -32351,7 +32357,7 @@
  return ((integerValue << 1) | 1);
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
  assert((1 >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())
@@ -32471,7 +32477,7 @@
  sz += 1;
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
  assert(((((sqInt) 8 >> 2)) >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())

Modified: branches/Cog/nsspurstacksrc/vm/interp.h
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspurstacksrc/vm/interp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/nsspurstacksrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nsspurstacksrc/vm/vmCallback.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/nsspurstacksrc/vm/vmCallback.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 #define VM_CALLBACK_INC 1


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Sun Mar  9 12:14:16 PDT 2014
   + Mon Mar 10 13:25:38 PDT 2014

Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spursrc/vm/cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
    from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1466,13 +1466,13 @@
 _iss usqInt freeOldSpaceStart;
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt profileMethod;
+_iss sqInt classTableIndex;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt lkupClass;
 _iss sqInt metaclassNumSlots;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
-_iss sqInt classTableIndex;
 _iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt growHeadroom;
 _iss sqInt highestRunnableProcessPriority;
@@ -2181,7 +2181,7 @@
  /* 575 */ (void (*)(void))0,
  0 };
 usqInt heapBase;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.635]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.636]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -6397,7 +6397,6 @@
  /* begin internalPush: */
  longAtPointerput((localSP -= BytesPerOop), longAt((rcvr1 + (BaseHeaderSize)) + (byte3 << 2)));
  }
- null;
  goto l4;
  }
  if (opType == 3) {
@@ -6407,7 +6406,6 @@
  assert(GIV(method) == (iframeMethod(localFP)));
  object = longAt((GIV(method) + (BaseHeaderSize)) + ((byte3 + LiteralStart) << 2));
  longAtPointerput((localSP -= BytesPerOop), object);
- null;
  goto l4;
  }
  if (opType == 4) {
@@ -6435,7 +6433,6 @@
  /* begin internalPush: */
  longAtPointerput((localSP -= BytesPerOop), longAt((litVar1 + (BaseHeaderSize)) + (ValueIndex << 2)));
 
- null;
  goto l4;
  }
  top = longAtPointer(localSP);
@@ -20790,20 +20787,26 @@
  assert((classAtIndex(classIndex)) == classOrNil);
  assert((classOrNil == GIV(nilObj))
  || (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
  if (classIndex < GIV(classTableIndex)) {
  GIV(classTableIndex) = classIndex;
  }
  }
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
  }
  }
  }
@@ -32506,7 +32509,7 @@
  return ((integerValue << 1) | 1);
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
  assert((1 >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())
@@ -32626,7 +32629,7 @@
  sz += 1;
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
  assert(((((sqInt) 8 >> 2)) >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())

Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spursrc/vm/cointerp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 

Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
    from
- CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1469,13 +1469,13 @@
 _iss usqInt freeOldSpaceStart;
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt profileMethod;
+_iss sqInt classTableIndex;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt lkupClass;
 _iss sqInt metaclassNumSlots;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
-_iss sqInt classTableIndex;
 _iss sqInt cogCompiledCodeCompactionCalledFor;
 _iss sqInt growHeadroom;
 _iss sqInt highestRunnableProcessPriority;
@@ -2184,7 +2184,7 @@
  /* 575 */ (void (*)(void))0,
  0 };
 usqInt heapBase;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.635]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.636]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -6406,7 +6406,6 @@
  /* begin internalPush: */
  longAtPointerput((localSP -= BytesPerOop), longAt((rcvr1 + (BaseHeaderSize)) + (byte3 << 2)));
  }
- null;
  goto l4;
  }
  if (opType == 3) {
@@ -6416,7 +6415,6 @@
  assert(GIV(method) == (iframeMethod(localFP)));
  object = longAt((GIV(method) + (BaseHeaderSize)) + ((byte3 + LiteralStart) << 2));
  longAtPointerput((localSP -= BytesPerOop), object);
- null;
  goto l4;
  }
  if (opType == 4) {
@@ -6444,7 +6442,6 @@
  /* begin internalPush: */
  longAtPointerput((localSP -= BytesPerOop), longAt((litVar1 + (BaseHeaderSize)) + (ValueIndex << 2)));
 
- null;
  goto l4;
  }
  top = longAtPointer(localSP);
@@ -20799,20 +20796,26 @@
  assert((classAtIndex(classIndex)) == classOrNil);
  assert((classOrNil == GIV(nilObj))
  || (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
  if (classIndex < GIV(classTableIndex)) {
  GIV(classTableIndex) = classIndex;
  }
  }
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
  }
  }
  }
@@ -32515,7 +32518,7 @@
  return ((integerValue << 1) | 1);
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
  assert((1 >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())
@@ -32635,7 +32638,7 @@
  sz += 1;
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
  assert(((((sqInt) 8 >> 2)) >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())

Modified: branches/Cog/spursrc/vm/interp.h
===================================================================
--- branches/Cog/spursrc/vm/interp.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spursrc/vm/interp.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/spursrc/vm/vmCallback.h
===================================================================
--- branches/Cog/spursrc/vm/vmCallback.h 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spursrc/vm/vmCallback.h 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
    from
- StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1279,6 +1279,7 @@
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt profileMethod;
+_iss sqInt classTableIndex;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt growHeadroom;
@@ -1286,7 +1287,6 @@
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
 _iss sqInt profileSemaphore;
-_iss sqInt classTableIndex;
 _iss sqInt highestRunnableProcessPriority;
 _iss usqLong longRunningPrimitiveStartUsecs;
 _iss usqLong longRunningPrimitiveStopUsecs;
@@ -1974,7 +1974,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.635]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.636]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -17367,20 +17367,26 @@
  assert((classAtIndex(classIndex)) == classOrNil);
  assert((classOrNil == GIV(nilObj))
  || (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {
  if (classIndex < GIV(classTableIndex)) {
  GIV(classTableIndex) = classIndex;
  }
  }
+ else {
+ if ((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((rawHashBitsOf(classOrNil)) != classIndex)) {
+ /* begin storePointerUnchecked:ofObject:withValue: */
+ assert(!(isForwarded(classTablePage)));
+ longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
+ assert((expungeUnmarked
+ && (!(isMarked(classOrNil))))
+ || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classIndex < GIV(classTableIndex)) {
+ GIV(classTableIndex) = classIndex;
+ }
+ }
+ }
  }
  }
  }
@@ -27372,7 +27378,7 @@
  return ((integerValue << 1) | 1);
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (4 & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - 4) & ((wordSize()) - 1));
  assert((1 >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())
@@ -27492,7 +27498,7 @@
  sz += 1;
  }
  /* begin eeInstantiateSmallClassIndex:format:numSlots: */
- objFormat = 16 + (sz & ((wordSize()) - 1));
+ objFormat = 16 + ((8 - sz) & ((wordSize()) - 1));
  assert(((((sqInt) 8 >> 2)) >= 0)
  && (ClassLargePositiveIntegerCompactIndex != 0));
  assert(((objFormat < (firstByteFormat())

Modified: branches/Cog/spurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.c 2014-03-09 19:17:15 UTC (rev 2874)
+++ branches/Cog/spurstacksrc/vm/interp.c 2014-03-10 20:26:23 UTC (rev 2875)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
    from
- StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743
+ StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.635 uuid: d3e35b87-a79e-44a1-975b-549d6ae06743 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.636 uuid: 97945106-afaf-4c50-be03-a1806625c3b9 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1276,6 +1276,7 @@
 _iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt longRunningPrimitiveCheckSemaphore;
 _iss sqInt profileMethod;
+_iss sqInt classTableIndex;
 _iss sqInt ephemeronQueue;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt growHeadroom;
@@ -1283,7 +1284,6 @@
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
 _iss sqInt profileSemaphore;
-_iss sqInt classTableIndex;
 _iss sqInt highestRunnableProcessPriority;
 _iss usqLong longRunningPrimitiveStartUsecs;
 _iss usqLong longRunningPrimitiveStopUsecs;
@@ -1971,7 +1971,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.635]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.636]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -17358,20 +17358,26 @@
  assert((classAtIndex(classIndex)) == classOrNil);
  assert((classOrNil == GIV(nilObj))
  || (addressCouldBeClassObj(classOrNil)));
- if ((classOrNil != GIV(nilObj))
- && ((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((rawHashBitsOf(classOrNil)) != classIndex))) {
- /* begin storePointerUnchecked:ofObject:withValue: */
- assert(!(isForwarded(classTablePage)));
- longAtput((classTablePage + (BaseHeaderSize)) + ((classIndex & ((1 << 10) - 1)) << 2), GIV(nilObj));
- assert((expungeUnmarked
- && (!(isMarked(classOrNil))))
- || ((classAtIndex(rawHashBitsOf(classOrNil))) == classOrNil));
+ if (classOrNil == GIV(nilObj)) {

@@ Diff output truncated at 50000 characters. @@