[Vm-dev] [commit][3332] CogVM source as per VMMaker.oscog-eem.1298

commits at squeakvm.org commits at squeakvm.org
Mon May 11 00:44:49 UTC 2015


Revision: 3332
Author:   eliot
Date:     2015-05-10 17:44:48 -0700 (Sun, 10 May 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1298

Doh!  primitiveClass needs to take > 0 args in Squeak too, for objectClass:.

Modified Paths:
--------------
    branches/Cog/build.macos64x64/squeak.stack.spur/SqueakPureObjcCog.xcodeproj/project.pbxproj
    branches/Cog/build.macos64x64/squeak.stack.spur/makevm
    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/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/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/build.macos64x64/squeak.stack.spur/SqueakPureObjcCog.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/build.macos64x64/squeak.stack.spur/SqueakPureObjcCog.xcodeproj/project.pbxproj	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/build.macos64x64/squeak.stack.spur/SqueakPureObjcCog.xcodeproj/project.pbxproj	2015-05-11 00:44:48 UTC (rev 3332)
@@ -2091,7 +2091,7 @@
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				HEADER_SEARCH_PATHS = /usr/include/uuid;
-				MACOSX_DEPLOYMENT_TARGET = 10.7;
+				MACOSX_DEPLOYMENT_TARGET = 10.6;
 				ONLY_ACTIVE_ARCH = YES;
 				SEPARATE_STRIP = YES;
 				VALID_ARCHS = x86_64;
@@ -2110,7 +2110,7 @@
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				HEADER_SEARCH_PATHS = /usr/include/uuid;
-				MACOSX_DEPLOYMENT_TARGET = 10.7;
+				MACOSX_DEPLOYMENT_TARGET = 10.6;
 				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "65867c1c-f0f6-4de4-84cd-3e77826cb368";
 				SEPARATE_STRIP = YES;
 				VALID_ARCHS = x86_64;

Modified: branches/Cog/build.macos64x64/squeak.stack.spur/makevm
===================================================================
--- branches/Cog/build.macos64x64/squeak.stack.spur/makevm	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/build.macos64x64/squeak.stack.spur/makevm	2015-05-11 00:44:48 UTC (rev 3332)
@@ -14,9 +14,9 @@
 SFP=SqueakFFIPrims
 KEEP=
 
-USAGE="usage: `basename $0` -[admskh?]"
+USAGE="usage: `basename $0` -[adpskh?]"
 
-while getopts 'adskh?' opt $@; do
+while getopts 'adp:skh?' opt $@; do
 	case $opt in
 	a)		BUILD_CONFIGURATION=Assert
 			NSD_BUILD_CONFIGURATION=Development
@@ -26,6 +26,7 @@
 			NSD_BUILD_CONFIGURATION=Development
 			XCD_BUILD_CONFIGURATION=Debug
 			DEST=Debug;;
+	p)		VMXCP="$OPTARG";;
 	s)		BUILD_CONFIGURATION=DeploymentSymbols
 			DEST=Fast;;
 	k)		KEEP=1;;

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/nsspursrc/vm/cogit.h	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGenerator VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/nsspursrc/vm/cointerp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2378,7 +2378,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.1297";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1298";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -31645,11 +31645,8 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
 	if (GIV(argumentCount) > 0) {
@@ -31664,7 +31661,6 @@
 		: fetchClassOfNonImm(instance));
 	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
 	GIV(stackPointer) = sp;
-
 }
 
 
@@ -43066,7 +43062,7 @@
     sqInt fillValue;
     sqInt hash;
     sqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -43167,7 +43163,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			newObj = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex)));
+			newObj = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex);
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -45190,7 +45186,7 @@
     sqInt ptr2;
     sqInt slotBytes;
     usqInt smallObj;
-    usqInt start;
+    sqInt start;
 
 	classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
 	if (classIndex == 0) {
@@ -59212,13 +59208,13 @@
     sqInt obj21;
     sqInt pigBytes;
     usqInt prevFree;
-    sqInt prevFreeChunk;
+    usqInt prevFreeChunk;
     usqInt prevPrevFree;
-    sqInt prevPrevFreeChunk;
+    usqInt prevPrevFreeChunk;
     sqInt slotBytes;
     sqInt slotBytes1;
     usqInt there;
-    sqInt thisFreeChunk;
+    usqInt thisFreeChunk;
     sqInt usedChunk;
 
 	nextNext = 0;
@@ -64149,7 +64145,7 @@
     usqLong firstSavedBridgeWord;
     sqInt nWritten;
     usqInt pier1;
-    usqInt pier2;
+    sqInt pier2;
     usqLong secondSavedBridgeWord;
 
 	pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);

Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/nsspursrc/vm/cointerp.h	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
 
 

Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2381,7 +2381,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.1297";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1298";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -31654,11 +31654,8 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
 	if (GIV(argumentCount) > 0) {
@@ -31673,7 +31670,6 @@
 		: fetchClassOfNonImm(instance));
 	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
 	GIV(stackPointer) = sp;
-
 }
 
 
@@ -43075,7 +43071,7 @@
     sqInt fillValue;
     sqInt hash;
     sqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -43176,7 +43172,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			newObj = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex)));
+			newObj = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex);
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -45199,7 +45195,7 @@
     sqInt ptr2;
     sqInt slotBytes;
     usqInt smallObj;
-    usqInt start;
+    sqInt start;
 
 	classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
 	if (classIndex == 0) {
@@ -59221,13 +59217,13 @@
     sqInt obj21;
     sqInt pigBytes;
     usqInt prevFree;
-    sqInt prevFreeChunk;
+    usqInt prevFreeChunk;
     usqInt prevPrevFree;
-    sqInt prevPrevFreeChunk;
+    usqInt prevPrevFreeChunk;
     sqInt slotBytes;
     sqInt slotBytes1;
     usqInt there;
-    sqInt thisFreeChunk;
+    usqInt thisFreeChunk;
     sqInt usedChunk;
 
 	nextNext = 0;
@@ -64158,7 +64154,7 @@
     usqLong firstSavedBridgeWord;
     sqInt nWritten;
     usqInt pier1;
-    usqInt pier2;
+    sqInt pier2;
     usqLong secondSavedBridgeWord;
 
 	pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);

Modified: branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/gcc3x-interp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/nsspurstack64src/vm/gcc3x-interp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1399,8 +1399,8 @@
 _iss usqInt scavengeThreshold;
 _iss char * stackMemory;
 _iss sqInt * freeLists;
-_iss sqInt classTableFirstPage;
 _iss sqInt rememberedSetSize;
+_iss sqInt classTableFirstPage;
 _iss char * stackLimit;
 _iss sqInt * rememberedSet;
 _iss sqInt remapBufferCount;
@@ -2149,7 +2149,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1297";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1298";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -17087,11 +17087,8 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
 	if (GIV(argumentCount) > 0) {
@@ -17106,7 +17103,6 @@
 		: fetchClassOfNonImm(instance));
 	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
 	GIV(stackPointer) = sp;
-
 }
 
 

Modified: branches/Cog/nsspurstack64src/vm/interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/interp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/nsspurstack64src/vm/interp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1396,8 +1396,8 @@
 _iss usqInt scavengeThreshold;
 _iss char * stackMemory;
 _iss sqInt * freeLists;
-_iss sqInt classTableFirstPage;
 _iss sqInt rememberedSetSize;
+_iss sqInt classTableFirstPage;
 _iss char * stackLimit;
 _iss sqInt * rememberedSet;
 _iss sqInt remapBufferCount;
@@ -2146,7 +2146,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1297";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1298";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -17078,11 +17078,8 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
 	if (GIV(argumentCount) > 0) {
@@ -17097,7 +17094,6 @@
 		: fetchClassOfNonImm(instance));
 	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
 	GIV(stackPointer) = sp;
-
 }
 
 

Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1373,8 +1373,8 @@
 _iss sqInt rememberedSetSize;
 _iss char * stackLimit;
 _iss sqInt tempOop;
-_iss sqInt classTableFirstPage;
 _iss sqInt * rememberedSet;
+_iss sqInt classTableFirstPage;
 _iss sqInt remapBufferCount;
 _iss sqInt bytesPerPage;
 _iss usqInt freeListsMask;
@@ -2120,7 +2120,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1297";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1298";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -16743,11 +16743,8 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
 	if (GIV(argumentCount) > 0) {
@@ -16762,7 +16759,6 @@
 		: fetchClassOfNonImm(instance));
 	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
 	GIV(stackPointer) = sp;
-
 }
 
 

Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/nsspurstacksrc/vm/interp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1370,8 +1370,8 @@
 _iss sqInt rememberedSetSize;
 _iss char * stackLimit;
 _iss sqInt tempOop;
-_iss sqInt classTableFirstPage;
 _iss sqInt * rememberedSet;
+_iss sqInt classTableFirstPage;
 _iss sqInt remapBufferCount;
 _iss sqInt bytesPerPage;
 _iss usqInt freeListsMask;
@@ -2117,7 +2117,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1297";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1298";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -16734,11 +16734,8 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
 	if (GIV(argumentCount) > 0) {
@@ -16753,7 +16750,6 @@
 		: fetchClassOfNonImm(instance));
 	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
 	GIV(stackPointer) = sp;
-
 }
 
 


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Sun May 10 10:44:23 PDT 2015
   + Sun May 10 17:44:12 PDT 2015

Modified: branches/Cog/spursistasrc/vm/cogit.h
===================================================================
--- branches/Cog/spursistasrc/vm/cogit.h	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spursistasrc/vm/cogit.h	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGenerator VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
 
 

Modified: branches/Cog/spursistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spursistasrc/vm/cointerp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2375,7 +2375,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1297]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1298]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -14920,7 +14920,7 @@
     CogMethod *cogMethod;
     sqInt methodField;
     sqInt methodField1;
-    sqInt theIP;
+    usqInt theIP;
 
 	assertl(GIV(stackPage) == (mostRecentlyUsedPage()), ln);
 	assertl(addressIsInPage(GIV(stackPage), lifp), ln);
@@ -30364,21 +30364,22 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
-	assert(GIV(argumentCount) == 0);
+	if (GIV(argumentCount) > 0) {
+		instance = (((instance & 3) == 0)
+		 && (((longAt(instance)) & 0x3FFFFF) == 8)
+			? noInlineFollowForwarded(instance)
+			: instance);
+	}
 	/* begin pop:thenPush: */
-	oop1 = (((tagBits1 = instance & 3)) != 0
-		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits1 << (shiftForWord())))
+	oop = (((tagBits = instance & 3)) != 0
+		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits << (shiftForWord())))
 		: fetchClassOfNonImm(instance));
-	longAtput((sp1 = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop1);
-	GIV(stackPointer) = sp1;
-
+	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
+	GIV(stackPointer) = sp;
 }
 
 
@@ -31775,7 +31776,7 @@
     sqInt arg;
     sqInt fmt;
     sqInt i;
-    usqInt length;
+    sqInt length;
     usqInt numBytes;
     usqInt numSlots;
     usqInt numSlots1;
@@ -31816,18 +31817,18 @@
 
 			/* bytes (the common case), including CompiledMethod */
 
-			length = ((sqInt) (numBytes - (fmt & 7)));
+			length = numBytes - (fmt & 7);
 			goto l1;
 		}
 		if (fmt <= 9) {
-			length = ((sqInt) numBytes);
+			length = numBytes;
 			goto l1;
 		}
 		if (fmt >= 12) {
-			length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
+			length = numBytes - ((fmt & 3) << 1);
 			goto l1;
 		}
-		length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
+		length = numBytes - ((fmt & 1) << 2);
 	l1:	/* end numBytesOf: */;
 		if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
 			 && (length == (numBytesOf(arg))))) {
@@ -31845,9 +31846,9 @@
 		flag("endianness");
 		assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 		numSlots1 = byteAt(rcvr + 7);
-		length = (numSlots1 == 0xFF
-			? longAt(rcvr - BaseHeaderSize)
-			: numSlots1);
+		length = ((usqInt) ((numSlots1 == 0xFF
+	? longAt(rcvr - BaseHeaderSize)
+	: numSlots1)));
 		if (!((isAppropriateForCopyObject(arg))
 			 && (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
 			(GIV(primFailCode) = PrimErrBadArgument);
@@ -62326,7 +62327,7 @@
 bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
 {
     sqInt bridgeSpan;
-    sqInt clifton;
+    usqInt clifton;
     usqInt segEnd;
 
 	segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -62557,7 +62558,7 @@
     sqInt largeChild;
     sqInt newEndOfMemory;
     sqInt next;
-    usqInt node;
+    sqInt node;
     SpurSegmentInfo *seg;
     sqInt smallChild;
     sqInt treeNode;

Modified: branches/Cog/spursistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.h	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spursistasrc/vm/cointerp.h	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
 
 

Modified: branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/gcc3x-cointerp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spursistasrc/vm/gcc3x-cointerp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2378,7 +2378,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1297]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1298]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -14929,7 +14929,7 @@
     CogMethod *cogMethod;
     sqInt methodField;
     sqInt methodField1;
-    sqInt theIP;
+    usqInt theIP;
 
 	assertl(GIV(stackPage) == (mostRecentlyUsedPage()), ln);
 	assertl(addressIsInPage(GIV(stackPage), lifp), ln);
@@ -30373,21 +30373,22 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
-	assert(GIV(argumentCount) == 0);
+	if (GIV(argumentCount) > 0) {
+		instance = (((instance & 3) == 0)
+		 && (((longAt(instance)) & 0x3FFFFF) == 8)
+			? noInlineFollowForwarded(instance)
+			: instance);
+	}
 	/* begin pop:thenPush: */
-	oop1 = (((tagBits1 = instance & 3)) != 0
-		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits1 << (shiftForWord())))
+	oop = (((tagBits = instance & 3)) != 0
+		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits << (shiftForWord())))
 		: fetchClassOfNonImm(instance));
-	longAtput((sp1 = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop1);
-	GIV(stackPointer) = sp1;
-
+	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
+	GIV(stackPointer) = sp;
 }
 
 
@@ -31784,7 +31785,7 @@
     sqInt arg;
     sqInt fmt;
     sqInt i;
-    usqInt length;
+    sqInt length;
     usqInt numBytes;
     usqInt numSlots;
     usqInt numSlots1;
@@ -31825,18 +31826,18 @@
 
 			/* bytes (the common case), including CompiledMethod */
 
-			length = ((sqInt) (numBytes - (fmt & 7)));
+			length = numBytes - (fmt & 7);
 			goto l1;
 		}
 		if (fmt <= 9) {
-			length = ((sqInt) numBytes);
+			length = numBytes;
 			goto l1;
 		}
 		if (fmt >= 12) {
-			length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
+			length = numBytes - ((fmt & 3) << 1);
 			goto l1;
 		}
-		length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
+		length = numBytes - ((fmt & 1) << 2);
 	l1:	/* end numBytesOf: */;
 		if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
 			 && (length == (numBytesOf(arg))))) {
@@ -31854,9 +31855,9 @@
 		flag("endianness");
 		assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 		numSlots1 = byteAt(rcvr + 7);
-		length = (numSlots1 == 0xFF
-			? longAt(rcvr - BaseHeaderSize)
-			: numSlots1);
+		length = ((usqInt) ((numSlots1 == 0xFF
+	? longAt(rcvr - BaseHeaderSize)
+	: numSlots1)));
 		if (!((isAppropriateForCopyObject(arg))
 			 && (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
 			(GIV(primFailCode) = PrimErrBadArgument);
@@ -62335,7 +62336,7 @@
 bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
 {
     sqInt bridgeSpan;
-    sqInt clifton;
+    usqInt clifton;
     usqInt segEnd;
 
 	segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -62566,7 +62567,7 @@
     sqInt largeChild;
     sqInt newEndOfMemory;
     sqInt next;
-    usqInt node;
+    sqInt node;
     SpurSegmentInfo *seg;
     sqInt smallChild;
     sqInt treeNode;

Modified: branches/Cog/spursrc/vm/cogit.h
===================================================================
--- branches/Cog/spursrc/vm/cogit.h	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spursrc/vm/cogit.h	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGenerator VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
 
 

Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spursrc/vm/cointerp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2363,7 +2363,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1297]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1298]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -24088,8 +24088,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -25316,21 +25316,22 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
-	assert(GIV(argumentCount) == 0);
+	if (GIV(argumentCount) > 0) {
+		instance = (((instance & 3) == 0)
+		 && (((longAt(instance)) & 0x3FFFFF) == 8)
+			? noInlineFollowForwarded(instance)
+			: instance);
+	}
 	/* begin pop:thenPush: */
-	oop1 = (((tagBits1 = instance & 3)) != 0
-		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits1 << (shiftForWord())))
+	oop = (((tagBits = instance & 3)) != 0
+		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits << (shiftForWord())))
 		: fetchClassOfNonImm(instance));
-	longAtput((sp1 = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop1);
-	GIV(stackPointer) = sp1;
-
+	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
+	GIV(stackPointer) = sp;
 }
 
 
@@ -26718,7 +26719,7 @@
     sqInt arg;
     sqInt fmt;
     sqInt i;
-    usqInt length;
+    sqInt length;
     usqInt numBytes;
     usqInt numSlots;
     usqInt numSlots1;
@@ -26759,18 +26760,18 @@
 
 			/* bytes (the common case), including CompiledMethod */
 
-			length = ((sqInt) (numBytes - (fmt & 7)));
+			length = numBytes - (fmt & 7);
 			goto l1;
 		}
 		if (fmt <= 9) {
-			length = ((sqInt) numBytes);
+			length = numBytes;
 			goto l1;
 		}
 		if (fmt >= 12) {
-			length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
+			length = numBytes - ((fmt & 3) << 1);
 			goto l1;
 		}
-		length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
+		length = numBytes - ((fmt & 1) << 2);
 	l1:	/* end numBytesOf: */;
 		if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
 			 && (length == (numBytesOf(arg))))) {
@@ -26788,9 +26789,9 @@
 		flag("endianness");
 		assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 		numSlots1 = byteAt(rcvr + 7);
-		length = (numSlots1 == 0xFF
-			? longAt(rcvr - BaseHeaderSize)
-			: numSlots1);
+		length = ((usqInt) ((numSlots1 == 0xFF
+	? longAt(rcvr - BaseHeaderSize)
+	: numSlots1)));
 		if (!((isAppropriateForCopyObject(arg))
 			 && (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
 			(GIV(primFailCode) = PrimErrBadArgument);
@@ -34128,8 +34129,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -57484,7 +57485,7 @@
     sqInt largeChild;
     sqInt newEndOfMemory;
     sqInt next;
-    usqInt node;
+    sqInt node;
     SpurSegmentInfo *seg;
     sqInt smallChild;
     sqInt treeNode;
@@ -69021,7 +69022,7 @@
     sqInt sp1;
     sqInt stSize;
     sqInt totalLength;
-    usqInt valueToStore;
+    sqInt valueToStore;
 
 	hdr = long64At(array);
 	fmt = (((unsigned sqLong)hdr) >> 24) & 0x1F;
@@ -70284,8 +70285,8 @@
     sqInt totalLength;
     sqInt totalLength1;
     sqInt value;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	value = longAt(GIV(stackPointer));
 	index = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -72065,7 +72066,7 @@
     sqInt rcvr;
     char *sp;
     sqInt totalLength;
-    usqInt valueToStore;
+    sqInt valueToStore;
 
 	newValue = longAt(GIV(stackPointer));
 	/* begin stackIntegerValue: */
@@ -72300,7 +72301,7 @@
     sqInt header1;
     sqInt i;
     sqInt methodHeader;
-    usqInt numSlots;
+    sqInt numSlots;
     usqInt numSlots1;
     sqInt rcvr;
     char *sp;
@@ -72356,9 +72357,9 @@
 			flag("endianness");
 			assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 			numSlots1 = byteAt(rcvr + 7);
-			numSlots = (numSlots1 == 0xFF
-				? longAt(rcvr - BaseHeaderSize)
-				: numSlots1);
+			numSlots = ((usqInt) ((numSlots1 == 0xFF
+	? longAt(rcvr - BaseHeaderSize)
+	: numSlots1)));
 		}
 	}
 	else {

Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spursrc/vm/cointerp.h	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
 
 

Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2366,7 +2366,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1297]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1298]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -24097,8 +24097,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -25325,21 +25325,22 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
-	assert(GIV(argumentCount) == 0);
+	if (GIV(argumentCount) > 0) {
+		instance = (((instance & 3) == 0)
+		 && (((longAt(instance)) & 0x3FFFFF) == 8)
+			? noInlineFollowForwarded(instance)
+			: instance);
+	}
 	/* begin pop:thenPush: */
-	oop1 = (((tagBits1 = instance & 3)) != 0
-		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits1 << (shiftForWord())))
+	oop = (((tagBits = instance & 3)) != 0
+		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits << (shiftForWord())))
 		: fetchClassOfNonImm(instance));
-	longAtput((sp1 = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop1);
-	GIV(stackPointer) = sp1;
-
+	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
+	GIV(stackPointer) = sp;
 }
 
 
@@ -26727,7 +26728,7 @@
     sqInt arg;
     sqInt fmt;
     sqInt i;
-    usqInt length;
+    sqInt length;
     usqInt numBytes;
     usqInt numSlots;
     usqInt numSlots1;
@@ -26768,18 +26769,18 @@
 
 			/* bytes (the common case), including CompiledMethod */
 
-			length = ((sqInt) (numBytes - (fmt & 7)));
+			length = numBytes - (fmt & 7);
 			goto l1;
 		}
 		if (fmt <= 9) {
-			length = ((sqInt) numBytes);
+			length = numBytes;
 			goto l1;
 		}
 		if (fmt >= 12) {
-			length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
+			length = numBytes - ((fmt & 3) << 1);
 			goto l1;
 		}
-		length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
+		length = numBytes - ((fmt & 1) << 2);
 	l1:	/* end numBytesOf: */;
 		if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
 			 && (length == (numBytesOf(arg))))) {
@@ -26797,9 +26798,9 @@
 		flag("endianness");
 		assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 		numSlots1 = byteAt(rcvr + 7);
-		length = (numSlots1 == 0xFF
-			? longAt(rcvr - BaseHeaderSize)
-			: numSlots1);
+		length = ((usqInt) ((numSlots1 == 0xFF
+	? longAt(rcvr - BaseHeaderSize)
+	: numSlots1)));
 		if (!((isAppropriateForCopyObject(arg))
 			 && (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
 			(GIV(primFailCode) = PrimErrBadArgument);
@@ -34137,8 +34138,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -57493,7 +57494,7 @@
     sqInt largeChild;
     sqInt newEndOfMemory;
     sqInt next;
-    usqInt node;
+    sqInt node;
     SpurSegmentInfo *seg;
     sqInt smallChild;
     sqInt treeNode;
@@ -69030,7 +69031,7 @@
     sqInt sp1;
     sqInt stSize;
     sqInt totalLength;
-    usqInt valueToStore;
+    sqInt valueToStore;
 
 	hdr = long64At(array);
 	fmt = (((unsigned sqLong)hdr) >> 24) & 0x1F;
@@ -70293,8 +70294,8 @@
     sqInt totalLength;
     sqInt totalLength1;
     sqInt value;
-    usqInt valueToStore;
-    usqInt valueToStore1;
+    sqInt valueToStore;
+    sqInt valueToStore1;
 
 	value = longAt(GIV(stackPointer));
 	index = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -72074,7 +72075,7 @@
     sqInt rcvr;
     char *sp;
     sqInt totalLength;
-    usqInt valueToStore;
+    sqInt valueToStore;
 
 	newValue = longAt(GIV(stackPointer));
 	/* begin stackIntegerValue: */
@@ -72309,7 +72310,7 @@
     sqInt header1;
     sqInt i;
     sqInt methodHeader;
-    usqInt numSlots;
+    sqInt numSlots;
     usqInt numSlots1;
     sqInt rcvr;
     char *sp;
@@ -72365,9 +72366,9 @@
 			flag("endianness");
 			assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 			numSlots1 = byteAt(rcvr + 7);
-			numSlots = (numSlots1 == 0xFF
-				? longAt(rcvr - BaseHeaderSize)
-				: numSlots1);
+			numSlots = ((usqInt) ((numSlots1 == 0xFF
+	? longAt(rcvr - BaseHeaderSize)
+	: numSlots1)));
 		}
 	}
 	else {

Modified: branches/Cog/spurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstack64src/vm/gcc3x-interp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spurstack64src/vm/gcc3x-interp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1393,8 +1393,8 @@
 _iss sqInt rememberedSetSize;
 _iss usqInt scavengeThreshold;
 _iss sqInt * rememberedSet;
+_iss sqInt remapBufferCount;
 _iss sqInt classTableFirstPage;
-_iss sqInt remapBufferCount;
 _iss char * stackLimit;
 _iss usqInt freeListsMask;
 _iss sqInt bytesPerPage;
@@ -2140,7 +2140,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1297]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1298]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -11711,21 +11711,22 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
-	assert(GIV(argumentCount) == 0);
+	if (GIV(argumentCount) > 0) {
+		instance = (((instance & 7) == 0)
+		 && (((longAt(instance)) & 0x3FFFFF) == 8)
+			? noInlineFollowForwarded(instance)
+			: instance);
+	}
 	/* begin pop:thenPush: */
-	oop1 = (((tagBits1 = instance & 7)) != 0
-		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (((long)tagBits1) << (shiftForWord())))
+	oop = (((tagBits = instance & 7)) != 0
+		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (((long)tagBits) << (shiftForWord())))
 		: fetchClassOfNonImm(instance));
-	longAtput((sp1 = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop1);
-	GIV(stackPointer) = sp1;
-
+	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
+	GIV(stackPointer) = sp;
 }
 
 

Modified: branches/Cog/spurstack64src/vm/interp.c
===================================================================
--- branches/Cog/spurstack64src/vm/interp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spurstack64src/vm/interp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1390,8 +1390,8 @@
 _iss sqInt rememberedSetSize;
 _iss usqInt scavengeThreshold;
 _iss sqInt * rememberedSet;
+_iss sqInt remapBufferCount;
 _iss sqInt classTableFirstPage;
-_iss sqInt remapBufferCount;
 _iss char * stackLimit;
 _iss usqInt freeListsMask;
 _iss sqInt bytesPerPage;
@@ -2137,7 +2137,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1297]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1298]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -11702,21 +11702,22 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
-	assert(GIV(argumentCount) == 0);
+	if (GIV(argumentCount) > 0) {
+		instance = (((instance & 7) == 0)
+		 && (((longAt(instance)) & 0x3FFFFF) == 8)
+			? noInlineFollowForwarded(instance)
+			: instance);
+	}
 	/* begin pop:thenPush: */
-	oop1 = (((tagBits1 = instance & 7)) != 0
-		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (((long)tagBits1) << (shiftForWord())))
+	oop = (((tagBits = instance & 7)) != 0
+		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (((long)tagBits) << (shiftForWord())))
 		: fetchClassOfNonImm(instance));
-	longAtput((sp1 = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop1);
-	GIV(stackPointer) = sp1;
-
+	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
+	GIV(stackPointer) = sp;
 }
 
 

Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/gcc3x-interp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1367,9 +1367,9 @@
 _iss sqInt * rememberedSet;
 _iss sqInt remapBufferCount;
 _iss char * stackLimit;
-_iss sqInt classTableFirstPage;
 _iss usqInt freeListsMask;
 _iss sqInt bytesPerPage;
+_iss sqInt classTableFirstPage;
 _iss sqInt profileProcess;
 _iss sqInt profileMethod;
 _iss SpurContiguousObjStack unscannedEphemerons;
@@ -2111,7 +2111,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1297]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1298]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -11682,21 +11682,22 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
-	assert(GIV(argumentCount) == 0);
+	if (GIV(argumentCount) > 0) {
+		instance = (((instance & 3) == 0)
+		 && (((longAt(instance)) & 0x3FFFFF) == 8)
+			? noInlineFollowForwarded(instance)
+			: instance);
+	}
 	/* begin pop:thenPush: */
-	oop1 = (((tagBits1 = instance & 3)) != 0
-		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits1 << (shiftForWord())))
+	oop = (((tagBits = instance & 3)) != 0
+		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits << (shiftForWord())))
 		: fetchClassOfNonImm(instance));
-	longAtput((sp1 = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop1);
-	GIV(stackPointer) = sp1;
-
+	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
+	GIV(stackPointer) = sp;
 }
 
 

Modified: branches/Cog/spurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.c	2015-05-10 23:31:56 UTC (rev 3331)
+++ branches/Cog/spurstacksrc/vm/interp.c	2015-05-11 00:44:48 UTC (rev 3332)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
    from
-	StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b
+	StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1297 uuid: 1125d82b-1be0-4ed8-bdfa-9557c360bf1b " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1298 uuid: da9fd4c2-e7e4-48c1-bfb6-87139d690def " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1364,9 +1364,9 @@
 _iss sqInt * rememberedSet;
 _iss sqInt remapBufferCount;
 _iss char * stackLimit;
-_iss sqInt classTableFirstPage;
 _iss usqInt freeListsMask;
 _iss sqInt bytesPerPage;
+_iss sqInt classTableFirstPage;
 _iss sqInt profileProcess;
 _iss sqInt profileMethod;
 _iss SpurContiguousObjStack unscannedEphemerons;
@@ -2108,7 +2108,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1297]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1298]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -11673,21 +11673,22 @@
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt instance;
     sqInt oop;
-    sqInt oop1;
     char *sp;
-    char *sp1;
     sqInt tagBits;
-    sqInt tagBits1;
 
 	instance = longAt(GIV(stackPointer));
-	assert(GIV(argumentCount) == 0);
+	if (GIV(argumentCount) > 0) {
+		instance = (((instance & 3) == 0)
+		 && (((longAt(instance)) & 0x3FFFFF) == 8)
+			? noInlineFollowForwarded(instance)
+			: instance);
+	}
 	/* begin pop:thenPush: */
-	oop1 = (((tagBits1 = instance & 3)) != 0
-		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits1 << (shiftForWord())))
+	oop = (((tagBits = instance & 3)) != 0
+		? longAt((GIV(classTableFirstPage) + BaseHeaderSize) + (tagBits << (shiftForWord())))
 		: fetchClassOfNonImm(instance));
-	longAtput((sp1 = GIV(stackPointer) + ((1 - 1) * BytesPerWord)), oop1);
-	GIV(stackPointer) = sp1;
-
+	longAtput((sp = GIV(stackPointer) + (((GIV(argumentCount) + 1) - 1) * BytesPerWord)), oop);
+	GIV(stackPointer) = sp;
 }
 
 

Modified: branches/Cog/src/vm/cogit.h
===================================================================

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list