[Vm-dev] [commit][3617] CogVM source as per VMMaker.oscog-eem.1687

commits at squeakvm.org commits at squeakvm.org
Sat Feb 20 20:20:51 UTC 2016


Revision: 3617
Author:   eliot
Date:     2016-02-20 12:20:49 -0800 (Sat, 20 Feb 2016)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1687

Spur:
Fix bug in markAndTraceWeaklingsFrom:.  Fields of weaklings may be immediate
so must use followOopField:ofObject: not followObjField:ofObject:.

Slang:
Emit constants before types to allow constant names to be used when defining
types, e.g. for array extents.

Threaded FFI plugin:
Use above facility for neater declarations.

First cut (untested) of FFI support for x86-64 on System V and WIN64, as
X64SysVFFIPlugin.c & X64Win64FFIPlugin.c.

Surface Plugin:
Change int to long throughout parameter passing (but not the
Surface struct itself) to solve issues on 64-bits.

Mac OS:
remember localizable strings versions for Pharo and Newspeak.
Change some (int) casts to (long) or non casts in OpenGL and event code, again
to avoid issues on 64-bits.

Modified Paths:
--------------
    branches/Cog/build.macos64x64/pharo.cog.spur/plugins.ext
    branches/Cog/build.macos64x64/squeak.cog.spur/plugins.ext
    branches/Cog/build.macos64x64/squeak.sista.spur/plugins.ext
    branches/Cog/build.macos64x64/squeak.stack.spur/plugins.ext
    branches/Cog/nsspur64src/vm/cogit.h
    branches/Cog/nsspur64src/vm/cogitX64.c
    branches/Cog/nsspur64src/vm/cointerp.c
    branches/Cog/nsspur64src/vm/cointerp.h
    branches/Cog/nsspur64src/vm/gcc3x-cointerp.c
    branches/Cog/nsspursrc/vm/cogit.h
    branches/Cog/nsspursrc/vm/cogitARMv5.c
    branches/Cog/nsspursrc/vm/cogitIA32.c
    branches/Cog/nsspursrc/vm/cogitMIPSEL.c
    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/platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m
    branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
    branches/Cog/scripts/uploadvms
    branches/Cog/spur64src/vm/cogit.h
    branches/Cog/spur64src/vm/cogitX64.c
    branches/Cog/spur64src/vm/cointerp.c
    branches/Cog/spur64src/vm/cointerp.h
    branches/Cog/spur64src/vm/gcc3x-cointerp.c
    branches/Cog/spursistasrc/vm/cogit.h
    branches/Cog/spursistasrc/vm/cogitARMv5.c
    branches/Cog/spursistasrc/vm/cogitIA32.c
    branches/Cog/spursistasrc/vm/cogitMIPSEL.c
    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/cogitARMv5.c
    branches/Cog/spursrc/vm/cogitIA32.c
    branches/Cog/spursrc/vm/cogitMIPSEL.c
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spurstack64src/vm/gcc3x-interp.c
    branches/Cog/spurstack64src/vm/interp.c
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.c
    branches/Cog/src/plugins/IA32ABI/IA32ABI.c
    branches/Cog/src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c
    branches/Cog/src/plugins/SqueakFFIPrims/IA32FFIPlugin.c
    branches/Cog/src/plugins/SqueakFFIPrims/SqueakFFIPrims.c
    branches/Cog/src/vm/cogit.h
    branches/Cog/src/vm/cogitARMv5.c
    branches/Cog/src/vm/cogitIA32.c
    branches/Cog/src/vm/cogitMIPSEL.c
    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

Added Paths:
-----------
    branches/Cog/platforms/iOS/vm/Common/English.lproj/Newspeak-Localizable.strings
    branches/Cog/platforms/iOS/vm/Common/English.lproj/Pharo-Localizable.strings
    branches/Cog/src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c
    branches/Cog/src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c

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

Modified: branches/Cog/build.macos64x64/pharo.cog.spur/plugins.ext
===================================================================
--- branches/Cog/build.macos64x64/pharo.cog.spur/plugins.ext	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/build.macos64x64/pharo.cog.spur/plugins.ext	2016-02-20 20:20:49 UTC (rev 3617)
@@ -4,6 +4,6 @@
 FloatArrayPlugin \
 FloatMathPlugin \
 Mpeg3Plugin \
+SqueakFFIPrims \
 SqueakSSL \
-UnixOSProcessPlugin \
-# SqueakFFIPrims
+UnixOSProcessPlugin

Modified: branches/Cog/build.macos64x64/squeak.cog.spur/plugins.ext
===================================================================
--- branches/Cog/build.macos64x64/squeak.cog.spur/plugins.ext	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/build.macos64x64/squeak.cog.spur/plugins.ext	2016-02-20 20:20:49 UTC (rev 3617)
@@ -5,6 +5,6 @@
 FloatArrayPlugin \
 FloatMathPlugin \
 Mpeg3Plugin \
+SqueakFFIPrims \
 SqueakSSL \
-UnixOSProcessPlugin \
-# SqueakFFIPrims
+UnixOSProcessPlugin

Modified: branches/Cog/build.macos64x64/squeak.sista.spur/plugins.ext
===================================================================
--- branches/Cog/build.macos64x64/squeak.sista.spur/plugins.ext	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/build.macos64x64/squeak.sista.spur/plugins.ext	2016-02-20 20:20:49 UTC (rev 3617)
@@ -5,6 +5,6 @@
 FloatArrayPlugin \
 FloatMathPlugin \
 Mpeg3Plugin \
+SqueakFFIPrims \
 SqueakSSL \
-UnixOSProcessPlugin \
-# SqueakFFIPrims
+UnixOSProcessPlugin

Modified: branches/Cog/build.macos64x64/squeak.stack.spur/plugins.ext
===================================================================
--- branches/Cog/build.macos64x64/squeak.stack.spur/plugins.ext	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/build.macos64x64/squeak.stack.spur/plugins.ext	2016-02-20 20:20:49 UTC (rev 3617)
@@ -5,6 +5,6 @@
 FloatArrayPlugin \
 FloatMathPlugin \
 Mpeg3Plugin \
+SqueakFFIPrims \
 SqueakSSL \
-UnixOSProcessPlugin \
-# SqueakFFIPrims
+UnixOSProcessPlugin

Modified: branches/Cog/nsspur64src/vm/cogit.h
===================================================================
--- branches/Cog/nsspur64src/vm/cogit.h	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspur64src/vm/cogit.h	2016-02-20 20:20:49 UTC (rev 3617)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9
+	CCodeGenerator VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
 
 

Modified: branches/Cog/nsspur64src/vm/cogitX64.c
===================================================================
--- branches/Cog/nsspur64src/vm/cogitX64.c	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspur64src/vm/cogitX64.c	2016-02-20 20:20:49 UTC (rev 3617)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37
+	CCodeGenerator VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -21,95 +21,7 @@
 #endif
 #include "cogit.h"
 
-typedef struct _AbstractInstruction {
-	unsigned char	opcode;
-	unsigned char	machineCodeSize;
-	unsigned char	maxSize;
-	unsigned char	annotation;
-	unsigned long		operands [3];
-	unsigned long	address;
-	struct _AbstractInstruction *dependent;
-	unsigned char		machineCode [14];
- } AbstractInstruction;
 
-#define CogInLineLiteralsX64Compiler AbstractInstruction
-#define CogX64Compiler AbstractInstruction
-#define CogAbstractInstruction AbstractInstruction
-
-
-typedef struct {
-	AbstractInstruction *fakeHeader;
-	AbstractInstruction *fillInstruction;
-	sqInt	numArgs;
-	sqInt	numCopied;
-	sqInt	numInitialNils;
-	sqInt	startpc;
-	AbstractInstruction *entryLabel;
-	AbstractInstruction *stackCheckLabel;
-	sqInt	span;
-	sqInt	hasInstVarRef;
- } BlockStart;
-
-#define CogBlockStart BlockStart
-
-
-typedef struct _BytecodeDescriptor {
-	sqInt (*generator )(void);
-	sqInt (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
-	sqInt (*needsFrameFunction )(sqInt);
-	signed char	stackDelta;
-	unsigned char	opcode;
-	unsigned char	numBytes;
-	unsigned		isBranchTrue : 1;
-	unsigned		isBranchFalse : 1;
-	unsigned		isReturn : 1;
-	unsigned		isBlockCreation : 1;
-	unsigned		isMapped : 1;
-	unsigned		isMappedInBlock : 1;
-	unsigned		isExtension : 1;
-	unsigned		isInstVarRef : 1;
-	unsigned		hasIRC : 1;
- } BytecodeDescriptor;
-
-#define CogBytecodeDescriptor BytecodeDescriptor
-
-
-typedef struct {
-	sqInt (*primitiveGenerator )(void);
-	sqInt	primNumArgs;
- } PrimitiveDescriptor;
-
-#define CogPrimitiveDescriptor PrimitiveDescriptor
-
-
-typedef struct {
-	AbstractInstruction *targetInstruction;
-	sqInt	instructionIndex;
-	sqInt	simStackPtr;
- } BytecodeFixup;
-
-#define CogSSBytecodeFixup BytecodeFixup
-#define CogBytecodeFixup BytecodeFixup
-
-
-typedef struct {
-	char	type;
-	char	spilled;
-	char	annotateUse;
-	sqInt	registerr;
-	sqInt	offset;
-	sqInt	constant;
-	sqInt	bcptr;
- } CogSimStackEntry;
-
-
-typedef struct {
-	sqInt	isReceiverResultRegLive;
-	CogSimStackEntry *ssEntry;
- } CogSSOptStatus;
-
-
-
 /*** Constants ***/
 #define ABI SysV
 #define AddCqR 95
@@ -379,7 +291,95 @@
 #define XorRR 93
 #define YoungSelectorInPIC -5
 
+typedef struct _AbstractInstruction {
+	unsigned char	opcode;
+	unsigned char	machineCodeSize;
+	unsigned char	maxSize;
+	unsigned char	annotation;
+	unsigned long		operands [3];
+	unsigned long	address;
+	struct _AbstractInstruction *dependent;
+	unsigned char		machineCode [14];
+ } AbstractInstruction;
 
+#define CogInLineLiteralsX64Compiler AbstractInstruction
+#define CogX64Compiler AbstractInstruction
+#define CogAbstractInstruction AbstractInstruction
+
+
+typedef struct {
+	AbstractInstruction *fakeHeader;
+	AbstractInstruction *fillInstruction;
+	sqInt	numArgs;
+	sqInt	numCopied;
+	sqInt	numInitialNils;
+	sqInt	startpc;
+	AbstractInstruction *entryLabel;
+	AbstractInstruction *stackCheckLabel;
+	sqInt	span;
+	sqInt	hasInstVarRef;
+ } BlockStart;
+
+#define CogBlockStart BlockStart
+
+
+typedef struct _BytecodeDescriptor {
+	sqInt (*generator )(void);
+	sqInt (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
+	sqInt (*needsFrameFunction )(sqInt);
+	signed char	stackDelta;
+	unsigned char	opcode;
+	unsigned char	numBytes;
+	unsigned		isBranchTrue : 1;
+	unsigned		isBranchFalse : 1;
+	unsigned		isReturn : 1;
+	unsigned		isBlockCreation : 1;
+	unsigned		isMapped : 1;
+	unsigned		isMappedInBlock : 1;
+	unsigned		isExtension : 1;
+	unsigned		isInstVarRef : 1;
+	unsigned		hasIRC : 1;
+ } BytecodeDescriptor;
+
+#define CogBytecodeDescriptor BytecodeDescriptor
+
+
+typedef struct {
+	sqInt (*primitiveGenerator )(void);
+	sqInt	primNumArgs;
+ } PrimitiveDescriptor;
+
+#define CogPrimitiveDescriptor PrimitiveDescriptor
+
+
+typedef struct {
+	AbstractInstruction *targetInstruction;
+	sqInt	instructionIndex;
+	sqInt	simStackPtr;
+ } BytecodeFixup;
+
+#define CogSSBytecodeFixup BytecodeFixup
+#define CogBytecodeFixup BytecodeFixup
+
+
+typedef struct {
+	char	type;
+	char	spilled;
+	char	annotateUse;
+	sqInt	registerr;
+	sqInt	offset;
+	sqInt	constant;
+	sqInt	bcptr;
+ } CogSimStackEntry;
+
+
+typedef struct {
+	sqInt	isReceiverResultRegLive;
+	CogSimStackEntry *ssEntry;
+ } CogSSOptStatus;
+
+
+
 /*** Function Prototypes ***/
 
 

Modified: branches/Cog/nsspur64src/vm/cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.c	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspur64src/vm/cointerp.c	2016-02-20 20:20:49 UTC (rev 3617)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
    from
-	CoInterpreter VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9
+	CoInterpreter VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -77,55 +77,7 @@
 
 /* end StackInterpreter class>>preambleCCode */
 
-typedef struct {
-	usqInt	segStart;
-	usqInt	segSize;
-	sqInt	swizzle;
-	usqInt	containsPinned;
-	usqInt	savedSegSize;
-	usqInt	lastFreeObject;
- } SpurSegmentInfo;
 
-
-typedef struct {
-	usqInt	start;
-	usqInt	limit;
- } SpurNewSpaceSpace;
-
-
-typedef struct {
-	usqInt	start;
-	usqInt	limit;
-	usqInt	first;
-	usqInt	last;
- } SpurCircularBuffer;
-
-
-typedef struct {
-	usqInt	start;
-	usqInt	limit;
-	usqInt	top;
- } SpurContiguousObjStack;
-
-
-typedef struct _StackPage {
-	char *stackLimit;
-	char *headSP;
-	char *headFP;
-	char *baseFP;
-	char *baseAddress;
-	char *realStackLimit;
-	char *lastAddress;
-	int	trace;
-	int	padToWord;
-	struct _StackPage *nextPage;
-	struct _StackPage *prevPage;
- } StackPage;
-
-#define CogStackPage StackPage
-
-
-
 /*** Constants ***/
 #define AccessModifierPrivate 1
 #define AccessModifierProtected 2
@@ -411,7 +363,55 @@
 #define XIndex 0
 #define YIndex 1
 
+typedef struct {
+	usqInt	segStart;
+	usqInt	segSize;
+	sqInt	swizzle;
+	usqInt	containsPinned;
+	usqInt	savedSegSize;
+	usqInt	lastFreeObject;
+ } SpurSegmentInfo;
 
+
+typedef struct {
+	usqInt	start;
+	usqInt	limit;
+ } SpurNewSpaceSpace;
+
+
+typedef struct {
+	usqInt	start;
+	usqInt	limit;
+	usqInt	first;
+	usqInt	last;
+ } SpurCircularBuffer;
+
+
+typedef struct {
+	usqInt	start;
+	usqInt	limit;
+	usqInt	top;
+ } SpurContiguousObjStack;
+
+
+typedef struct _StackPage {
+	char *stackLimit;
+	char *headSP;
+	char *headFP;
+	char *baseFP;
+	char *baseAddress;
+	char *realStackLimit;
+	char *lastAddress;
+	int	trace;
+	int	padToWord;
+	struct _StackPage *nextPage;
+	struct _StackPage *prevPage;
+ } StackPage;
+
+#define CogStackPage StackPage
+
+
+
 /*** Function Prototypes ***/
 
 
@@ -2442,7 +2442,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.1680";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1685";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -17850,7 +17850,7 @@
 static sqInt
 checkForAndFollowForwardedPrimitiveState(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt accessorDepth;
+    signed char accessorDepth;
     sqInt firstBytecode;
     sqInt found;
     sqInt found1;
@@ -60616,12 +60616,12 @@
     sqInt objOop1;
     sqInt objOop11;
     sqInt objOop12;
-    sqInt objOop13;
     sqInt objStackPage;
     sqInt objToScan;
     sqInt objToScan1;
     sqInt objToScan2;
     sqInt oop;
+    sqInt oop1;
     sqInt p;
     usqInt ptr;
     sqInt scanLargeObject;
@@ -60664,13 +60664,13 @@
 					assert(!((isForwarded(weakling))));
 					markAndTraceClassOf(weakling);
 					for (i = 0, iLimiT = ((numStrongSlotsOfWeakling(weakling)) - 1); i <= iLimiT; i += 1) {
-						/* begin followObjField:ofObject: */
-						objOop = longAt((weakling + BaseHeaderSize) + (((long)i) << (shiftForWord())));
-						assert(isNonImmediate(objOop));
-						if (((longAt(objOop)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun()))) == 0) {
-							objOop = fixFollowedFieldofObjectwithInitialValue(i, weakling, objOop);
+						/* begin followOopField:ofObject: */
+						oop = longAt((weakling + BaseHeaderSize) + (((long)i) << (shiftForWord())));
+						if (((oop & (tagMask())) == 0)
+						 && (((longAt(oop)) & (classIndexMask())) == (isForwardedObjectClassIndexPun()))) {
+							oop = fixFollowedFieldofObjectwithInitialValue(i, weakling, oop);
 						}
-						field = objOop;
+						field = oop;
 						if (!(((field & (tagMask())) != 0)
 							 || (((((usqInt) (longAt(field))) >> 55) & 1) != 0))) {
 							/* begin markAndTrace: */
@@ -60755,9 +60755,9 @@
 										}
 										if (fmt == (weakArrayFormat())) {
 											/* begin fixedFieldsOfClass: */
-											objOop11 = fetchClassOfNonImm(objToScan);
+											objOop1 = fetchClassOfNonImm(objToScan);
 											/* begin fixedFieldsOfClassFormat: */
-											numStrongSlots = (((longAt((objOop11 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
+											numStrongSlots = (((longAt((objOop1 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
 											goto l20;
 										}
 									}
@@ -60954,16 +60954,16 @@
 		ptr = ((GIV(unscannedEphemerons).top)) - BytesPerWord;
 		while (ptr >= ((GIV(unscannedEphemerons).start))) {
 			/* begin followedKeyOfEphemeron: */
-			objOop1 = (ephemeron = longAt(ptr));
-			assert((isNonImmediate(objOop1))
-			 && (isEphemeron(objOop1)));
+			objOop = (ephemeron = longAt(ptr));
+			assert((isNonImmediate(objOop))
+			 && (isEphemeron(objOop)));
 			/* begin followOopField:ofObject: */
-			oop = longAt((objOop1 + BaseHeaderSize) + (0LL << (shiftForWord())));
-			if (((oop & (tagMask())) == 0)
-			 && (((longAt(oop)) & (classIndexMask())) == (isForwardedObjectClassIndexPun()))) {
-				oop = fixFollowedFieldofObjectwithInitialValue(0, objOop1, oop);
+			oop1 = longAt((objOop + BaseHeaderSize) + (0LL << (shiftForWord())));
+			if (((oop1 & (tagMask())) == 0)
+			 && (((longAt(oop1)) & (classIndexMask())) == (isForwardedObjectClassIndexPun()))) {
+				oop1 = fixFollowedFieldofObjectwithInitialValue(0, objOop, oop1);
 			}
-			key = oop;
+			key = oop1;
 			/* begin markAndTrace: */
 
 			/* inline markAndShouldScan: */
@@ -61046,9 +61046,9 @@
 						}
 						if (fmt1 == (weakArrayFormat())) {
 							/* begin fixedFieldsOfClass: */
-							objOop12 = fetchClassOfNonImm(objToScan1);
+							objOop11 = fetchClassOfNonImm(objToScan1);
 							/* begin fixedFieldsOfClassFormat: */
-							numStrongSlots1 = (((longAt((objOop12 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
+							numStrongSlots1 = (((longAt((objOop11 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
 							goto l13;
 						}
 					}
@@ -61292,9 +61292,9 @@
 						}
 						if (fmt2 == (weakArrayFormat())) {
 							/* begin fixedFieldsOfClass: */
-							objOop13 = fetchClassOfNonImm(objToScan2);
+							objOop12 = fetchClassOfNonImm(objToScan2);
 							/* begin fixedFieldsOfClassFormat: */
-							numStrongSlots2 = (((longAt((objOop13 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
+							numStrongSlots2 = (((longAt((objOop12 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
 							goto l15;
 						}
 					}
@@ -61536,7 +61536,7 @@
     usqInt prevFree;
     usqInt prevFreeChunk;
     usqInt prevPrevFree;
-    sqInt prevPrevFreeChunk;
+    usqInt prevPrevFreeChunk;
     sqInt slotBytes;
     sqInt slotBytes1;
     usqInt there;
@@ -66901,7 +66901,7 @@
 bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
 {
     usqInt bridgeSpan;
-    sqInt clifton;
+    usqInt clifton;
     usqInt segEnd;
 
 	segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -67144,7 +67144,7 @@
     sqInt limit;
     sqInt newEndOfMemory;
     sqInt next;
-    sqInt node;
+    usqInt node;
     usqInt numSlots;
     usqInt numSlots1;
     SpurSegmentInfo *seg;
@@ -67273,7 +67273,7 @@
 static sqInt NoDbgRegParms
 readHeapFromImageFiledataBytes(sqImageFile f, sqInt numBytes)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    usqInt bridge;
+    sqInt bridge;
     usqInt bridgehead;
     usqLong bridgeSpan;
     sqInt bytesRead;

Modified: branches/Cog/nsspur64src/vm/cointerp.h
===================================================================
--- branches/Cog/nsspur64src/vm/cointerp.h	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspur64src/vm/cointerp.h	2016-02-20 20:20:49 UTC (rev 3617)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
 
 

Modified: branches/Cog/nsspur64src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspur64src/vm/gcc3x-cointerp.c	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspur64src/vm/gcc3x-cointerp.c	2016-02-20 20:20:49 UTC (rev 3617)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
    from
-	CoInterpreter VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9
+	CoInterpreter VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -80,55 +80,7 @@
 
 /* end StackInterpreter class>>preambleCCode */
 
-typedef struct {
-	usqInt	segStart;
-	usqInt	segSize;
-	sqInt	swizzle;
-	usqInt	containsPinned;
-	usqInt	savedSegSize;
-	usqInt	lastFreeObject;
- } SpurSegmentInfo;
 
-
-typedef struct {
-	usqInt	start;
-	usqInt	limit;
- } SpurNewSpaceSpace;
-
-
-typedef struct {
-	usqInt	start;
-	usqInt	limit;
-	usqInt	first;
-	usqInt	last;
- } SpurCircularBuffer;
-
-
-typedef struct {
-	usqInt	start;
-	usqInt	limit;
-	usqInt	top;
- } SpurContiguousObjStack;
-
-
-typedef struct _StackPage {
-	char *stackLimit;
-	char *headSP;
-	char *headFP;
-	char *baseFP;
-	char *baseAddress;
-	char *realStackLimit;
-	char *lastAddress;
-	int	trace;
-	int	padToWord;
-	struct _StackPage *nextPage;
-	struct _StackPage *prevPage;
- } StackPage;
-
-#define CogStackPage StackPage
-
-
-
 /*** Constants ***/
 #define AccessModifierPrivate 1
 #define AccessModifierProtected 2
@@ -414,7 +366,55 @@
 #define XIndex 0
 #define YIndex 1
 
+typedef struct {
+	usqInt	segStart;
+	usqInt	segSize;
+	sqInt	swizzle;
+	usqInt	containsPinned;
+	usqInt	savedSegSize;
+	usqInt	lastFreeObject;
+ } SpurSegmentInfo;
 
+
+typedef struct {
+	usqInt	start;
+	usqInt	limit;
+ } SpurNewSpaceSpace;
+
+
+typedef struct {
+	usqInt	start;
+	usqInt	limit;
+	usqInt	first;
+	usqInt	last;
+ } SpurCircularBuffer;
+
+
+typedef struct {
+	usqInt	start;
+	usqInt	limit;
+	usqInt	top;
+ } SpurContiguousObjStack;
+
+
+typedef struct _StackPage {
+	char *stackLimit;
+	char *headSP;
+	char *headFP;
+	char *baseFP;
+	char *baseAddress;
+	char *realStackLimit;
+	char *lastAddress;
+	int	trace;
+	int	padToWord;
+	struct _StackPage *nextPage;
+	struct _StackPage *prevPage;
+ } StackPage;
+
+#define CogStackPage StackPage
+
+
+
 /*** Function Prototypes ***/
 
 
@@ -2445,7 +2445,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.1680";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1685";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -17859,7 +17859,7 @@
 static sqInt
 checkForAndFollowForwardedPrimitiveState(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt accessorDepth;
+    signed char accessorDepth;
     sqInt firstBytecode;
     sqInt found;
     sqInt found1;
@@ -60625,12 +60625,12 @@
     sqInt objOop1;
     sqInt objOop11;
     sqInt objOop12;
-    sqInt objOop13;
     sqInt objStackPage;
     sqInt objToScan;
     sqInt objToScan1;
     sqInt objToScan2;
     sqInt oop;
+    sqInt oop1;
     sqInt p;
     usqInt ptr;
     sqInt scanLargeObject;
@@ -60673,13 +60673,13 @@
 					assert(!((isForwarded(weakling))));
 					markAndTraceClassOf(weakling);
 					for (i = 0, iLimiT = ((numStrongSlotsOfWeakling(weakling)) - 1); i <= iLimiT; i += 1) {
-						/* begin followObjField:ofObject: */
-						objOop = longAt((weakling + BaseHeaderSize) + (((long)i) << (shiftForWord())));
-						assert(isNonImmediate(objOop));
-						if (((longAt(objOop)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun()))) == 0) {
-							objOop = fixFollowedFieldofObjectwithInitialValue(i, weakling, objOop);
+						/* begin followOopField:ofObject: */
+						oop = longAt((weakling + BaseHeaderSize) + (((long)i) << (shiftForWord())));
+						if (((oop & (tagMask())) == 0)
+						 && (((longAt(oop)) & (classIndexMask())) == (isForwardedObjectClassIndexPun()))) {
+							oop = fixFollowedFieldofObjectwithInitialValue(i, weakling, oop);
 						}
-						field = objOop;
+						field = oop;
 						if (!(((field & (tagMask())) != 0)
 							 || (((((usqInt) (longAt(field))) >> 55) & 1) != 0))) {
 							/* begin markAndTrace: */
@@ -60764,9 +60764,9 @@
 										}
 										if (fmt == (weakArrayFormat())) {
 											/* begin fixedFieldsOfClass: */
-											objOop11 = fetchClassOfNonImm(objToScan);
+											objOop1 = fetchClassOfNonImm(objToScan);
 											/* begin fixedFieldsOfClassFormat: */
-											numStrongSlots = (((longAt((objOop11 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
+											numStrongSlots = (((longAt((objOop1 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
 											goto l20;
 										}
 									}
@@ -60963,16 +60963,16 @@
 		ptr = ((GIV(unscannedEphemerons).top)) - BytesPerWord;
 		while (ptr >= ((GIV(unscannedEphemerons).start))) {
 			/* begin followedKeyOfEphemeron: */
-			objOop1 = (ephemeron = longAt(ptr));
-			assert((isNonImmediate(objOop1))
-			 && (isEphemeron(objOop1)));
+			objOop = (ephemeron = longAt(ptr));
+			assert((isNonImmediate(objOop))
+			 && (isEphemeron(objOop)));
 			/* begin followOopField:ofObject: */
-			oop = longAt((objOop1 + BaseHeaderSize) + (0LL << (shiftForWord())));
-			if (((oop & (tagMask())) == 0)
-			 && (((longAt(oop)) & (classIndexMask())) == (isForwardedObjectClassIndexPun()))) {
-				oop = fixFollowedFieldofObjectwithInitialValue(0, objOop1, oop);
+			oop1 = longAt((objOop + BaseHeaderSize) + (0LL << (shiftForWord())));
+			if (((oop1 & (tagMask())) == 0)
+			 && (((longAt(oop1)) & (classIndexMask())) == (isForwardedObjectClassIndexPun()))) {
+				oop1 = fixFollowedFieldofObjectwithInitialValue(0, objOop, oop1);
 			}
-			key = oop;
+			key = oop1;
 			/* begin markAndTrace: */
 
 			/* inline markAndShouldScan: */
@@ -61055,9 +61055,9 @@
 						}
 						if (fmt1 == (weakArrayFormat())) {
 							/* begin fixedFieldsOfClass: */
-							objOop12 = fetchClassOfNonImm(objToScan1);
+							objOop11 = fetchClassOfNonImm(objToScan1);
 							/* begin fixedFieldsOfClassFormat: */
-							numStrongSlots1 = (((longAt((objOop12 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
+							numStrongSlots1 = (((longAt((objOop11 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
 							goto l13;
 						}
 					}
@@ -61301,9 +61301,9 @@
 						}
 						if (fmt2 == (weakArrayFormat())) {
 							/* begin fixedFieldsOfClass: */
-							objOop13 = fetchClassOfNonImm(objToScan2);
+							objOop12 = fetchClassOfNonImm(objToScan2);
 							/* begin fixedFieldsOfClassFormat: */
-							numStrongSlots2 = (((longAt((objOop13 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
+							numStrongSlots2 = (((longAt((objOop12 + BaseHeaderSize) + (((long)InstanceSpecificationIndex) << (shiftForWord())))) >> 3)) & ((1LL << (fixedFieldsFieldWidth())) - 1);
 							goto l15;
 						}
 					}
@@ -61545,7 +61545,7 @@
     usqInt prevFree;
     usqInt prevFreeChunk;
     usqInt prevPrevFree;
-    sqInt prevPrevFreeChunk;
+    usqInt prevPrevFreeChunk;
     sqInt slotBytes;
     sqInt slotBytes1;
     usqInt there;
@@ -66910,7 +66910,7 @@
 bridgeFromto(SpurSegmentInfo *aSegment, SpurSegmentInfo *nextSegmentOrNil)
 {
     usqInt bridgeSpan;
-    sqInt clifton;
+    usqInt clifton;
     usqInt segEnd;
 
 	segEnd = ((aSegment->segSize)) + ((aSegment->segStart));
@@ -67153,7 +67153,7 @@
     sqInt limit;
     sqInt newEndOfMemory;
     sqInt next;
-    sqInt node;
+    usqInt node;
     usqInt numSlots;
     usqInt numSlots1;
     SpurSegmentInfo *seg;
@@ -67282,7 +67282,7 @@
 static sqInt NoDbgRegParms
 readHeapFromImageFiledataBytes(sqImageFile f, sqInt numBytes)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    usqInt bridge;
+    sqInt bridge;
     usqInt bridgehead;
     usqLong bridgeSpan;
     sqInt bytesRead;

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspursrc/vm/cogit.h	2016-02-20 20:20:49 UTC (rev 3617)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9
+	CCodeGenerator VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c	2016-02-20 20:20:49 UTC (rev 3617)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37
+	CCodeGenerator VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -21,96 +21,7 @@
 #endif
 #include "cogit.h"
 
-typedef struct _AbstractInstruction {
-	unsigned char	opcode;
-	unsigned char	machineCodeSize;
-	unsigned char	maxSize;
-	unsigned char	annotation;
-	unsigned char	conditionOrNil;
-	unsigned long		operands [3];
-	unsigned long	address;
-	struct _AbstractInstruction *dependent;
-	unsigned long		machineCode [5];
- } AbstractInstruction;
 
-#define CogOutOfLineLiteralsARMCompiler AbstractInstruction
-#define CogARMCompiler AbstractInstruction
-#define CogAbstractInstruction AbstractInstruction
-
-
-typedef struct {
-	AbstractInstruction *fakeHeader;
-	AbstractInstruction *fillInstruction;
-	sqInt	numArgs;
-	sqInt	numCopied;
-	sqInt	numInitialNils;
-	sqInt	startpc;
-	AbstractInstruction *entryLabel;
-	AbstractInstruction *stackCheckLabel;
-	sqInt	span;
-	sqInt	hasInstVarRef;
- } BlockStart;
-
-#define CogBlockStart BlockStart
-
-
-typedef struct _BytecodeDescriptor {
-	sqInt (*generator )(void);
-	sqInt (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
-	sqInt (*needsFrameFunction )(sqInt);
-	signed char	stackDelta;
-	unsigned char	opcode;
-	unsigned char	numBytes;
-	unsigned		isBranchTrue : 1;
-	unsigned		isBranchFalse : 1;
-	unsigned		isReturn : 1;
-	unsigned		isBlockCreation : 1;
-	unsigned		isMapped : 1;
-	unsigned		isMappedInBlock : 1;
-	unsigned		isExtension : 1;
-	unsigned		isInstVarRef : 1;
-	unsigned		hasIRC : 1;
- } BytecodeDescriptor;
-
-#define CogBytecodeDescriptor BytecodeDescriptor
-
-
-typedef struct {
-	sqInt (*primitiveGenerator )(void);
-	sqInt	primNumArgs;
- } PrimitiveDescriptor;
-
-#define CogPrimitiveDescriptor PrimitiveDescriptor
-
-
-typedef struct {
-	AbstractInstruction *targetInstruction;
-	sqInt	instructionIndex;
-	sqInt	simStackPtr;
- } BytecodeFixup;
-
-#define CogSSBytecodeFixup BytecodeFixup
-#define CogBytecodeFixup BytecodeFixup
-
-
-typedef struct {
-	char	type;
-	char	spilled;
-	char	annotateUse;
-	sqInt	registerr;
-	sqInt	offset;
-	sqInt	constant;
-	sqInt	bcptr;
- } CogSimStackEntry;
-
-
-typedef struct {
-	sqInt	isReceiverResultRegLive;
-	CogSimStackEntry *ssEntry;
- } CogSSOptStatus;
-
-
-
 /*** Constants ***/
 #define AddCqR 95
 #define AddCwR 103
@@ -385,7 +296,96 @@
 #define XorRR 93
 #define YoungSelectorInPIC -5
 
+typedef struct _AbstractInstruction {
+	unsigned char	opcode;
+	unsigned char	machineCodeSize;
+	unsigned char	maxSize;
+	unsigned char	annotation;
+	unsigned char	conditionOrNil;
+	unsigned long		operands [3];
+	unsigned long	address;
+	struct _AbstractInstruction *dependent;
+	unsigned long		machineCode [5];
+ } AbstractInstruction;
 
+#define CogOutOfLineLiteralsARMCompiler AbstractInstruction
+#define CogARMCompiler AbstractInstruction
+#define CogAbstractInstruction AbstractInstruction
+
+
+typedef struct {
+	AbstractInstruction *fakeHeader;
+	AbstractInstruction *fillInstruction;
+	sqInt	numArgs;
+	sqInt	numCopied;
+	sqInt	numInitialNils;
+	sqInt	startpc;
+	AbstractInstruction *entryLabel;
+	AbstractInstruction *stackCheckLabel;
+	sqInt	span;
+	sqInt	hasInstVarRef;
+ } BlockStart;
+
+#define CogBlockStart BlockStart
+
+
+typedef struct _BytecodeDescriptor {
+	sqInt (*generator )(void);
+	sqInt (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
+	sqInt (*needsFrameFunction )(sqInt);
+	signed char	stackDelta;
+	unsigned char	opcode;
+	unsigned char	numBytes;
+	unsigned		isBranchTrue : 1;
+	unsigned		isBranchFalse : 1;
+	unsigned		isReturn : 1;
+	unsigned		isBlockCreation : 1;
+	unsigned		isMapped : 1;
+	unsigned		isMappedInBlock : 1;
+	unsigned		isExtension : 1;
+	unsigned		isInstVarRef : 1;
+	unsigned		hasIRC : 1;
+ } BytecodeDescriptor;
+
+#define CogBytecodeDescriptor BytecodeDescriptor
+
+
+typedef struct {
+	sqInt (*primitiveGenerator )(void);
+	sqInt	primNumArgs;
+ } PrimitiveDescriptor;
+
+#define CogPrimitiveDescriptor PrimitiveDescriptor
+
+
+typedef struct {
+	AbstractInstruction *targetInstruction;
+	sqInt	instructionIndex;
+	sqInt	simStackPtr;
+ } BytecodeFixup;
+
+#define CogSSBytecodeFixup BytecodeFixup
+#define CogBytecodeFixup BytecodeFixup
+
+
+typedef struct {
+	char	type;
+	char	spilled;
+	char	annotateUse;
+	sqInt	registerr;
+	sqInt	offset;
+	sqInt	constant;
+	sqInt	bcptr;
+ } CogSimStackEntry;
+
+
+typedef struct {
+	sqInt	isReceiverResultRegLive;
+	CogSimStackEntry *ssEntry;
+ } CogSSOptStatus;
+
+
+
 /*** Function Prototypes ***/
 
 
@@ -10558,12 +10558,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    usqInt delta;
+    sqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    usqInt location;
-    usqInt mapEntry;
+    sqInt location;
+    sqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 

Modified: branches/Cog/nsspursrc/vm/cogitIA32.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitIA32.c	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspursrc/vm/cogitIA32.c	2016-02-20 20:20:49 UTC (rev 3617)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37
+	CCodeGenerator VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -21,94 +21,7 @@
 #endif
 #include "cogit.h"
 
-typedef struct _AbstractInstruction {
-	unsigned char	opcode;
-	unsigned char	machineCodeSize;
-	unsigned char	maxSize;
-	unsigned char	annotation;
-	unsigned long		operands [3];
-	unsigned long	address;
-	struct _AbstractInstruction *dependent;
-	unsigned char		machineCode [10];
- } AbstractInstruction;
 
-#define CogIA32Compiler AbstractInstruction
-#define CogAbstractInstruction AbstractInstruction
-
-
-typedef struct {
-	AbstractInstruction *fakeHeader;
-	AbstractInstruction *fillInstruction;
-	sqInt	numArgs;
-	sqInt	numCopied;
-	sqInt	numInitialNils;
-	sqInt	startpc;
-	AbstractInstruction *entryLabel;
-	AbstractInstruction *stackCheckLabel;
-	sqInt	span;
-	sqInt	hasInstVarRef;
- } BlockStart;
-
-#define CogBlockStart BlockStart
-
-
-typedef struct _BytecodeDescriptor {
-	sqInt (*generator )(void);
-	sqInt (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
-	sqInt (*needsFrameFunction )(sqInt);
-	signed char	stackDelta;
-	unsigned char	opcode;
-	unsigned char	numBytes;
-	unsigned		isBranchTrue : 1;
-	unsigned		isBranchFalse : 1;
-	unsigned		isReturn : 1;
-	unsigned		isBlockCreation : 1;
-	unsigned		isMapped : 1;
-	unsigned		isMappedInBlock : 1;
-	unsigned		isExtension : 1;
-	unsigned		isInstVarRef : 1;
-	unsigned		hasIRC : 1;
- } BytecodeDescriptor;
-
-#define CogBytecodeDescriptor BytecodeDescriptor
-
-
-typedef struct {
-	sqInt (*primitiveGenerator )(void);
-	sqInt	primNumArgs;
- } PrimitiveDescriptor;
-
-#define CogPrimitiveDescriptor PrimitiveDescriptor
-
-
-typedef struct {
-	AbstractInstruction *targetInstruction;
-	sqInt	instructionIndex;
-	sqInt	simStackPtr;
- } BytecodeFixup;
-
-#define CogSSBytecodeFixup BytecodeFixup
-#define CogBytecodeFixup BytecodeFixup
-
-
-typedef struct {
-	char	type;
-	char	spilled;
-	char	annotateUse;
-	sqInt	registerr;
-	sqInt	offset;
-	sqInt	constant;
-	sqInt	bcptr;
- } CogSimStackEntry;
-
-
-typedef struct {
-	sqInt	isReceiverResultRegLive;
-	CogSimStackEntry *ssEntry;
- } CogSSOptStatus;
-
-
-
 /*** Constants ***/
 #define AddCqR 95
 #define AddCwR 103
@@ -369,7 +282,94 @@
 #define XorRR 93
 #define YoungSelectorInPIC -5
 
+typedef struct _AbstractInstruction {
+	unsigned char	opcode;
+	unsigned char	machineCodeSize;
+	unsigned char	maxSize;
+	unsigned char	annotation;
+	unsigned long		operands [3];
+	unsigned long	address;
+	struct _AbstractInstruction *dependent;
+	unsigned char		machineCode [10];
+ } AbstractInstruction;
 
+#define CogIA32Compiler AbstractInstruction
+#define CogAbstractInstruction AbstractInstruction
+
+
+typedef struct {
+	AbstractInstruction *fakeHeader;
+	AbstractInstruction *fillInstruction;
+	sqInt	numArgs;
+	sqInt	numCopied;
+	sqInt	numInitialNils;
+	sqInt	startpc;
+	AbstractInstruction *entryLabel;
+	AbstractInstruction *stackCheckLabel;
+	sqInt	span;
+	sqInt	hasInstVarRef;
+ } BlockStart;
+
+#define CogBlockStart BlockStart
+
+
+typedef struct _BytecodeDescriptor {
+	sqInt (*generator )(void);
+	sqInt (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
+	sqInt (*needsFrameFunction )(sqInt);
+	signed char	stackDelta;
+	unsigned char	opcode;
+	unsigned char	numBytes;
+	unsigned		isBranchTrue : 1;
+	unsigned		isBranchFalse : 1;
+	unsigned		isReturn : 1;
+	unsigned		isBlockCreation : 1;
+	unsigned		isMapped : 1;
+	unsigned		isMappedInBlock : 1;
+	unsigned		isExtension : 1;
+	unsigned		isInstVarRef : 1;
+	unsigned		hasIRC : 1;
+ } BytecodeDescriptor;
+
+#define CogBytecodeDescriptor BytecodeDescriptor
+
+
+typedef struct {
+	sqInt (*primitiveGenerator )(void);
+	sqInt	primNumArgs;
+ } PrimitiveDescriptor;
+
+#define CogPrimitiveDescriptor PrimitiveDescriptor
+
+
+typedef struct {
+	AbstractInstruction *targetInstruction;
+	sqInt	instructionIndex;
+	sqInt	simStackPtr;
+ } BytecodeFixup;
+
+#define CogSSBytecodeFixup BytecodeFixup
+#define CogBytecodeFixup BytecodeFixup
+
+
+typedef struct {
+	char	type;
+	char	spilled;
+	char	annotateUse;
+	sqInt	registerr;
+	sqInt	offset;
+	sqInt	constant;
+	sqInt	bcptr;
+ } CogSimStackEntry;
+
+
+typedef struct {
+	sqInt	isReceiverResultRegLive;
+	CogSimStackEntry *ssEntry;
+ } CogSSOptStatus;
+
+
+
 /*** Function Prototypes ***/
 
 
@@ -9626,12 +9626,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    usqInt delta;
+    sqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    usqInt location;
-    usqInt mapEntry;
+    sqInt location;
+    sqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 

Modified: branches/Cog/nsspursrc/vm/cogitMIPSEL.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitMIPSEL.c	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspursrc/vm/cogitMIPSEL.c	2016-02-20 20:20:49 UTC (rev 3617)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37
+	CCodeGenerator VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1677 uuid: 7056bb77-6aa0-4cb6-aa6c-cd921c231d37 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -22,94 +22,7 @@
 #endif
 #include "cogit.h"
 
-typedef struct _AbstractInstruction {
-	unsigned char	opcode;
-	unsigned char	machineCodeSize;
-	unsigned char	maxSize;
-	unsigned char	annotation;
-	unsigned long		operands [3];
-	unsigned long	address;
-	struct _AbstractInstruction *dependent;
-	unsigned long		machineCode [7];
- } AbstractInstruction;
 
-#define CogMIPSELCompiler AbstractInstruction
-#define CogAbstractInstruction AbstractInstruction
-
-
-typedef struct {
-	AbstractInstruction *fakeHeader;
-	AbstractInstruction *fillInstruction;
-	sqInt	numArgs;
-	sqInt	numCopied;
-	sqInt	numInitialNils;
-	sqInt	startpc;
-	AbstractInstruction *entryLabel;
-	AbstractInstruction *stackCheckLabel;
-	sqInt	span;
-	sqInt	hasInstVarRef;
- } BlockStart;
-
-#define CogBlockStart BlockStart
-
-
-typedef struct _BytecodeDescriptor {
-	sqInt (*generator )(void);
-	sqInt (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
-	sqInt (*needsFrameFunction )(sqInt);
-	signed char	stackDelta;
-	unsigned char	opcode;
-	unsigned char	numBytes;
-	unsigned		isBranchTrue : 1;
-	unsigned		isBranchFalse : 1;
-	unsigned		isReturn : 1;
-	unsigned		isBlockCreation : 1;
-	unsigned		isMapped : 1;
-	unsigned		isMappedInBlock : 1;
-	unsigned		isExtension : 1;
-	unsigned		isInstVarRef : 1;
-	unsigned		hasIRC : 1;
- } BytecodeDescriptor;
-
-#define CogBytecodeDescriptor BytecodeDescriptor
-
-
-typedef struct {
-	sqInt (*primitiveGenerator )(void);
-	sqInt	primNumArgs;
- } PrimitiveDescriptor;
-
-#define CogPrimitiveDescriptor PrimitiveDescriptor
-
-
-typedef struct {
-	AbstractInstruction *targetInstruction;
-	sqInt	instructionIndex;
-	sqInt	simStackPtr;
- } BytecodeFixup;
-
-#define CogSSBytecodeFixup BytecodeFixup
-#define CogBytecodeFixup BytecodeFixup
-
-
-typedef struct {
-	char	type;
-	char	spilled;
-	char	annotateUse;
-	sqInt	registerr;
-	sqInt	offset;
-	sqInt	constant;
-	sqInt	bcptr;
- } CogSimStackEntry;
-
-
-typedef struct {
-	sqInt	isReceiverResultRegLive;
-	CogSimStackEntry *ssEntry;
- } CogSSOptStatus;
-
-
-
 /*** Constants ***/
 #define A0 4
 #define A1 5
@@ -440,7 +353,94 @@
 #define YoungSelectorInPIC -5
 #define ZR 0
 
+typedef struct _AbstractInstruction {
+	unsigned char	opcode;
+	unsigned char	machineCodeSize;
+	unsigned char	maxSize;
+	unsigned char	annotation;
+	unsigned long		operands [3];
+	unsigned long	address;
+	struct _AbstractInstruction *dependent;
+	unsigned long		machineCode [7];
+ } AbstractInstruction;
 
+#define CogMIPSELCompiler AbstractInstruction
+#define CogAbstractInstruction AbstractInstruction
+
+
+typedef struct {
+	AbstractInstruction *fakeHeader;
+	AbstractInstruction *fillInstruction;
+	sqInt	numArgs;
+	sqInt	numCopied;
+	sqInt	numInitialNils;
+	sqInt	startpc;
+	AbstractInstruction *entryLabel;
+	AbstractInstruction *stackCheckLabel;
+	sqInt	span;
+	sqInt	hasInstVarRef;
+ } BlockStart;
+
+#define CogBlockStart BlockStart
+
+
+typedef struct _BytecodeDescriptor {
+	sqInt (*generator )(void);
+	sqInt (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
+	sqInt (*needsFrameFunction )(sqInt);
+	signed char	stackDelta;
+	unsigned char	opcode;
+	unsigned char	numBytes;
+	unsigned		isBranchTrue : 1;
+	unsigned		isBranchFalse : 1;
+	unsigned		isReturn : 1;
+	unsigned		isBlockCreation : 1;
+	unsigned		isMapped : 1;
+	unsigned		isMappedInBlock : 1;
+	unsigned		isExtension : 1;
+	unsigned		isInstVarRef : 1;
+	unsigned		hasIRC : 1;
+ } BytecodeDescriptor;
+
+#define CogBytecodeDescriptor BytecodeDescriptor
+
+
+typedef struct {
+	sqInt (*primitiveGenerator )(void);
+	sqInt	primNumArgs;
+ } PrimitiveDescriptor;
+
+#define CogPrimitiveDescriptor PrimitiveDescriptor
+
+
+typedef struct {
+	AbstractInstruction *targetInstruction;
+	sqInt	instructionIndex;
+	sqInt	simStackPtr;
+ } BytecodeFixup;
+
+#define CogSSBytecodeFixup BytecodeFixup
+#define CogBytecodeFixup BytecodeFixup
+
+
+typedef struct {
+	char	type;
+	char	spilled;
+	char	annotateUse;
+	sqInt	registerr;
+	sqInt	offset;
+	sqInt	constant;
+	sqInt	bcptr;
+ } CogSimStackEntry;
+
+
+typedef struct {
+	sqInt	isReceiverResultRegLive;
+	CogSimStackEntry *ssEntry;
+ } CogSSOptStatus;
+
+
+
 /*** Function Prototypes ***/
 
 
@@ -5738,12 +5738,12 @@
 generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
 {
     unsigned char annotation;
-    sqInt delta;
+    usqInt delta;
     sqInt i;
     AbstractInstruction *instruction;
     sqInt length;
-    sqInt location;
-    sqInt mapEntry;
+    usqInt location;
+    usqInt mapEntry;
     sqInt maxDelta;
     usqInt mcpc;
 

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspursrc/vm/cointerp.c	2016-02-20 20:20:49 UTC (rev 3617)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
    from
-	CoInterpreter VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9
+	CoInterpreter VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -77,54 +77,7 @@
 
 /* end StackInterpreter class>>preambleCCode */
 
-typedef struct {
-	usqInt	segStart;
-	usqInt	segSize;
-	sqInt	swizzle;
-	usqInt	containsPinned;
-	usqInt	savedSegSize;
-	usqInt	lastFreeObject;
- } SpurSegmentInfo;
 
-
-typedef struct {
-	usqInt	start;
-	usqInt	limit;
- } SpurNewSpaceSpace;
-
-
-typedef struct {
-	usqInt	start;
-	usqInt	limit;
-	usqInt	first;
-	usqInt	last;
- } SpurCircularBuffer;
-
-
-typedef struct {
-	usqInt	start;
-	usqInt	limit;
-	usqInt	top;
- } SpurContiguousObjStack;
-
-
-typedef struct _StackPage {
-	char *stackLimit;
-	char *headSP;
-	char *headFP;
-	char *baseFP;
-	char *baseAddress;
-	char *realStackLimit;
-	char *lastAddress;
-	int	trace;
-	struct _StackPage *nextPage;
-	struct _StackPage *prevPage;
- } StackPage;
-
-#define CogStackPage StackPage
-
-
-
 /*** Constants ***/
 #define AccessModifierPrivate 1
 #define AccessModifierProtected 2
@@ -402,7 +355,54 @@
 #define XIndex 0
 #define YIndex 1
 
+typedef struct {
+	usqInt	segStart;
+	usqInt	segSize;
+	sqInt	swizzle;
+	usqInt	containsPinned;
+	usqInt	savedSegSize;
+	usqInt	lastFreeObject;
+ } SpurSegmentInfo;
 
+
+typedef struct {
+	usqInt	start;
+	usqInt	limit;
+ } SpurNewSpaceSpace;
+
+
+typedef struct {
+	usqInt	start;
+	usqInt	limit;
+	usqInt	first;
+	usqInt	last;
+ } SpurCircularBuffer;
+
+
+typedef struct {
+	usqInt	start;
+	usqInt	limit;
+	usqInt	top;
+ } SpurContiguousObjStack;
+
+
+typedef struct _StackPage {
+	char *stackLimit;
+	char *headSP;
+	char *headFP;
+	char *baseFP;
+	char *baseAddress;
+	char *realStackLimit;
+	char *lastAddress;
+	int	trace;
+	struct _StackPage *nextPage;
+	struct _StackPage *prevPage;
+ } StackPage;
+
+#define CogStackPage StackPage
+
+
+
 /*** Function Prototypes ***/
 
 
@@ -2411,7 +2411,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.1680";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1685";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -59727,12 +59727,12 @@
     sqInt objOop1;
     sqInt objOop11;
     sqInt objOop12;
-    sqInt objOop13;
     sqInt objStackPage;
     sqInt objToScan;
     sqInt objToScan1;
     sqInt objToScan2;
     sqInt oop;
+    sqInt oop1;
     sqInt p;
     usqInt ptr;
     sqInt scanLargeObject;
@@ -59775,13 +59775,13 @@
 					assert(!((isForwarded(weakling))));
 					markAndTraceClassOf(weakling);
 					for (i = 0, iLimiT = ((numStrongSlotsOfWeakling(weakling)) - 1); i <= iLimiT; i += 1) {
-						/* begin followObjField:ofObject: */
-						objOop = longAt((weakling + BaseHeaderSize) + (i << (shiftForWord())));
-						assert(isNonImmediate(objOop));
-						if (((longAt(objOop)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun()))) == 0) {
-							objOop = fixFollowedFieldofObjectwithInitialValue(i, weakling, objOop);
+						/* begin followOopField:ofObject: */
+						oop = longAt((weakling + BaseHeaderSize) + (i << (shiftForWord())));
+						if (((oop & (tagMask())) == 0)
+						 && (((longAt(oop)) & (classIndexMask())) == (isForwardedObjectClassIndexPun()))) {
+							oop = fixFollowedFieldofObjectwithInitialValue(i, weakling, oop);
 						}
-						field = objOop;
+						field = oop;
 						if (!(((field & (tagMask())) != 0)
 							 || (((((usqInt) (longAt(field + 4))) >> 23) & 1) != 0))) {
 							/* begin markAndTrace: */
@@ -59864,9 +59864,9 @@
 										}
 										if (fmt == (weakArrayFormat())) {
 											/* begin fixedFieldsOfClass: */
-											objOop11 = fetchClassOfNonImm(objToScan);
+											objOop1 = fetchClassOfNonImm(objToScan);
 											/* begin fixedFieldsOfClassFormat: */
-											numStrongSlots = (((longAt((objOop11 + BaseHeaderSize) + (InstanceSpecificationIndex << (shiftForWord())))) >> 1)) & ((1 << (fixedFieldsFieldWidth())) - 1);
+											numStrongSlots = (((longAt((objOop1 + BaseHeaderSize) + (InstanceSpecificationIndex << (shiftForWord())))) >> 1)) & ((1 << (fixedFieldsFieldWidth())) - 1);
 											goto l20;
 										}
 									}
@@ -60059,16 +60059,16 @@
 		ptr = ((GIV(unscannedEphemerons).top)) - BytesPerWord;
 		while (ptr >= ((GIV(unscannedEphemerons).start))) {
 			/* begin followedKeyOfEphemeron: */
-			objOop1 = (ephemeron = longAt(ptr));
-			assert((isNonImmediate(objOop1))
-			 && (isEphemeron(objOop1)));
+			objOop = (ephemeron = longAt(ptr));
+			assert((isNonImmediate(objOop))
+			 && (isEphemeron(objOop)));
 			/* begin followOopField:ofObject: */
-			oop = longAt((objOop1 + BaseHeaderSize) + (0 << (shiftForWord())));
-			if (((oop & (tagMask())) == 0)
-			 && (((longAt(oop)) & (classIndexMask())) == (isForwardedObjectClassIndexPun()))) {
-				oop = fixFollowedFieldofObjectwithInitialValue(0, objOop1, oop);
+			oop1 = longAt((objOop + BaseHeaderSize) + (0 << (shiftForWord())));
+			if (((oop1 & (tagMask())) == 0)
+			 && (((longAt(oop1)) & (classIndexMask())) == (isForwardedObjectClassIndexPun()))) {
+				oop1 = fixFollowedFieldofObjectwithInitialValue(0, objOop, oop1);
 			}
-			key = oop;
+			key = oop1;
 			/* begin markAndTrace: */
 
 			/* inline markAndShouldScan: */
@@ -60149,9 +60149,9 @@
 						}
 						if (fmt1 == (weakArrayFormat())) {
 							/* begin fixedFieldsOfClass: */
-							objOop12 = fetchClassOfNonImm(objToScan1);
+							objOop11 = fetchClassOfNonImm(objToScan1);
 							/* begin fixedFieldsOfClassFormat: */
-							numStrongSlots1 = (((longAt((objOop12 + BaseHeaderSize) + (InstanceSpecificationIndex << (shiftForWord())))) >> 1)) & ((1 << (fixedFieldsFieldWidth())) - 1);
+							numStrongSlots1 = (((longAt((objOop11 + BaseHeaderSize) + (InstanceSpecificationIndex << (shiftForWord())))) >> 1)) & ((1 << (fixedFieldsFieldWidth())) - 1);
 							goto l13;
 						}
 					}
@@ -60389,9 +60389,9 @@
 						}
 						if (fmt2 == (weakArrayFormat())) {
 							/* begin fixedFieldsOfClass: */
-							objOop13 = fetchClassOfNonImm(objToScan2);
+							objOop12 = fetchClassOfNonImm(objToScan2);
 							/* begin fixedFieldsOfClassFormat: */
-							numStrongSlots2 = (((longAt((objOop13 + BaseHeaderSize) + (InstanceSpecificationIndex << (shiftForWord())))) >> 1)) & ((1 << (fixedFieldsFieldWidth())) - 1);
+							numStrongSlots2 = (((longAt((objOop12 + BaseHeaderSize) + (InstanceSpecificationIndex << (shiftForWord())))) >> 1)) & ((1 << (fixedFieldsFieldWidth())) - 1);
 							goto l15;
 						}
 					}
@@ -66350,7 +66350,7 @@
 static sqInt NoDbgRegParms
 readHeapFromImageFiledataBytes(sqImageFile f, sqInt numBytes)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    usqInt bridge;
+    sqInt bridge;
     usqInt bridgehead;
     usqInt bridgeSpan;
     sqInt bytesRead;
@@ -66565,7 +66565,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	2016-02-20 00:19:08 UTC (rev 3616)
+++ branches/Cog/nsspursrc/vm/cointerp.h	2016-02-20 20:20:49 UTC (rev 3617)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1680 uuid: 6fe34e1e-a5e0-4966-a2cd-3f21ccb0bde9
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1685 uuid: 59633283-8843-4826-a68a-b23ea22d1fa8
  */
 
 


@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list