[Vm-dev] [commit][3312] CogVM source as per VMMaker.oscog-eem.1207

commits at squeakvm.org commits at squeakvm.org
Fri Apr 17 19:34:27 UTC 2015


Revision: 3312
Author:   eliot
Date:     2015-04-17 12:34:25 -0700 (Fri, 17 Apr 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1207

Head slap!  Fix the copy-paste error that caused
the regression in VMMaker.oscog-eem.1160/3308.

And add the 64-bit Newspeak Stack 64-bit Spur VM for Ryan.

Modified Paths:
--------------
    branches/Cog/nsspursrc/vm/cogit.c
    branches/Cog/nsspursrc/vm/cogit.h
    branches/Cog/nsspursrc/vm/cointerp.c
    branches/Cog/nsspursrc/vm/cointerp.h
    branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
    branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsspurstacksrc/vm/interp.c
    branches/Cog/spursistasrc/vm/cogit.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.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/spurstacksrc/vm/interp.c
    branches/Cog/src/vm/cogit.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

Added Paths:
-----------
    branches/Cog/nsspurstack64src/
    branches/Cog/nsspurstack64src/examplePlugins.ext
    branches/Cog/nsspurstack64src/examplePlugins.int
    branches/Cog/nsspurstack64src/vm/
    branches/Cog/nsspurstack64src/vm/exampleSqNamedPrims.h
    branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
    branches/Cog/nsspurstack64src/vm/interp.c
    branches/Cog/nsspurstack64src/vm/interp.h
    branches/Cog/nsspurstack64src/vm/vmCallback.h

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

Modified: branches/Cog/nsspursrc/vm/cogit.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.c	2015-04-16 22:27:01 UTC (rev 3311)
+++ branches/Cog/nsspursrc/vm/cogit.c	2015-04-17 19:34:25 UTC (rev 3312)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1204 uuid: 45d34c98-fee8-4874-95b4-842de9ba8cbc
+	CCodeGenerator VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.1204 uuid: 45d34c98-fee8-4874-95b4-842de9ba8cbc
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1204 uuid: 45d34c98-fee8-4874-95b4-842de9ba8cbc " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h	2015-04-16 22:27:01 UTC (rev 3311)
+++ branches/Cog/nsspursrc/vm/cogit.h	2015-04-17 19:34:25 UTC (rev 3312)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.1204 uuid: 45d34c98-fee8-4874-95b4-842de9ba8cbc
+	CCodeGenerator VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c	2015-04-16 22:27:01 UTC (rev 3311)
+++ branches/Cog/nsspursrc/vm/cointerp.c	2015-04-17 19:34:25 UTC (rev 3312)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1202 uuid: 992991db-47cc-4d19-85cf-4959c54bd41f
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1
    from
-	CoInterpreter VMMaker.oscog-eem.1202 uuid: 992991db-47cc-4d19-85cf-4959c54bd41f
+	CoInterpreter VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1202 uuid: 992991db-47cc-4d19-85cf-4959c54bd41f " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1184,7 +1184,7 @@
 static sqInt storeImageSegmentIntooutPointersroots(sqInt segmentWordArray, sqInt outPointerArray, sqInt arrayOfRoots) NoDbgRegParms;
 sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
 sqInt storePointerofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-sqInt stringForCString(const char *aCString);
+usqInt stringForCString(const char *aCString);
 static sqInt sufficientSpaceAfterGC(sqInt numBytes) NoDbgRegParms;
 static sqInt swizzleObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
 void tenuringIncrementalGC(void);
@@ -2377,7 +2377,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.1202";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1207";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -28832,8 +28832,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    sqInt valueToStore;
-    sqInt valueToStore1;
+    usqInt valueToStore;
+    usqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -30146,7 +30146,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			s = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex);
+			s = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex)));
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -31466,7 +31466,7 @@
     sqInt arg;
     sqInt fmt;
     sqInt i;
-    sqInt length;
+    usqInt length;
     usqInt numBytes;
     usqInt numSlots;
     usqInt numSlots1;
@@ -31507,18 +31507,18 @@
 
 			/* bytes (the common case), including CompiledMethod */
 
-			length = numBytes - (fmt & 7);
+			length = ((sqInt) (numBytes - (fmt & 7)));
 			goto l1;
 		}
 		if (fmt <= 9) {
-			length = numBytes;
+			length = ((sqInt) numBytes);
 			goto l1;
 		}
 		if (fmt >= 12) {
-			length = numBytes - ((fmt & 3) << 1);
+			length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
 			goto l1;
 		}
-		length = numBytes - ((fmt & 1) << 2);
+		length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
 	l1:	/* end numBytesOf: */;
 		if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
 			 && (length == (numBytesOf(arg))))) {
@@ -31536,9 +31536,9 @@
 		flag("endianness");
 		assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 		numSlots1 = byteAt(rcvr + 7);
-		length = ((usqInt) ((numSlots1 == 0xFF
-	? longAt(rcvr - BaseHeaderSize)
-	: numSlots1)));
+		length = (numSlots1 == 0xFF
+			? longAt(rcvr - BaseHeaderSize)
+			: numSlots1);
 		if (!((isAppropriateForCopyObject(arg))
 			 && (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
 			(GIV(primFailCode) = PrimErrBadArgument);
@@ -35542,7 +35542,7 @@
     sqInt err;
     sqInt hash;
     sqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     sqInt numSlots;
@@ -35733,7 +35733,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			newObj = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex);
+			newObj = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex)));
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -38880,8 +38880,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    sqInt valueToStore;
-    sqInt valueToStore1;
+    usqInt valueToStore;
+    usqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -41559,7 +41559,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			newObj = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex);
+			newObj = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex)));
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -43391,7 +43391,7 @@
     sqInt ptr1;
     sqInt ptr2;
     sqInt slotBytes;
-    sqInt smallObj;
+    usqInt smallObj;
     sqInt start;
 
 	classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
@@ -43406,7 +43406,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			freeChunk = allocateSlotsInOldSpacebytesformatclassIndex(0, numBytes, 2, ClassArrayCompactIndex);
+			freeChunk = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(0, numBytes, 2, ClassArrayCompactIndex)));
 			goto l1;
 		}
 		long64Atput(newObj, (((((usqLong) 0)) << 56) + (2 << 24)) + ClassArrayCompactIndex);
@@ -46279,7 +46279,7 @@
     sqInt fmt;
     sqInt hasYoung;
     sqInt i;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -57416,13 +57416,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;
@@ -60655,8 +60655,8 @@
     sqInt prevPrevObj;
     sqInt prevPrevObj1;
     sqInt ptr;
-    sqInt savedInHashes;
-    sqInt savedOutHashes;
+    usqInt savedInHashes;
+    usqInt savedOutHashes;
     sqInt segAddr;
     sqInt segStart;
     sqInt slotBytes;
@@ -61123,13 +61123,13 @@
 /*	Answer a new String copied from a null-terminated C string,
 	or nil if out of memory. */
 
-sqInt
+usqInt
 stringForCString(const char *aCString)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt formatField;
     sqInt len;
     usqInt newObj;
-    sqInt newString;
+    usqInt newString;
     usqInt numBytes;
     sqInt numSlots;
 
@@ -62359,7 +62359,7 @@
     usqLong firstSavedBridgeWord;
     sqInt nWritten;
     usqInt pier1;
-    sqInt pier2;
+    usqInt pier2;
     usqLong secondSavedBridgeWord;
 
 	pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);
@@ -62865,7 +62865,7 @@
 static sqInt
 checkForAndFollowForwardedPrimitiveState(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt accessorDepth;
+    signed char accessorDepth;
     sqInt firstBytecode;
     sqInt found;
     sqInt header;
@@ -73649,7 +73649,7 @@
     sqInt sp1;
     sqInt stSize;
     sqInt totalLength;
-    sqInt valueToStore;
+    usqInt valueToStore;
 
 	hdr = long64At(array);
 	fmt = (((unsigned sqLong)hdr) >> 24) & 0x1F;
@@ -74912,8 +74912,8 @@
     sqInt totalLength;
     sqInt totalLength1;
     sqInt value;
-    sqInt valueToStore;
-    sqInt valueToStore1;
+    usqInt valueToStore;
+    usqInt valueToStore1;
 
 	value = longAt(GIV(stackPointer));
 	index = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -76693,7 +76693,7 @@
     sqInt rcvr;
     char *sp;
     sqInt totalLength;
-    sqInt valueToStore;
+    usqInt valueToStore;
 
 	newValue = longAt(GIV(stackPointer));
 	/* begin stackIntegerValue: */

Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h	2015-04-16 22:27:01 UTC (rev 3311)
+++ branches/Cog/nsspursrc/vm/cointerp.h	2015-04-17 19:34:25 UTC (rev 3312)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1202 uuid: 992991db-47cc-4d19-85cf-4959c54bd41f
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1
  */
 
 
@@ -260,7 +260,7 @@
 sqInt splObj(sqInt index);
 usqInt storeCheckBoundary(void);
 sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-sqInt stringForCString(const char *aCString);
+usqInt stringForCString(const char *aCString);
 void tenuringIncrementalGC(void);
 sqInt topRemappableOop(void);
 sqInt validFreeTree(void);

Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2015-04-16 22:27:01 UTC (rev 3311)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2015-04-17 19:34:25 UTC (rev 3312)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1202 uuid: 992991db-47cc-4d19-85cf-4959c54bd41f
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1
    from
-	CoInterpreter VMMaker.oscog-eem.1202 uuid: 992991db-47cc-4d19-85cf-4959c54bd41f
+	CoInterpreter VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1202 uuid: 992991db-47cc-4d19-85cf-4959c54bd41f " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1187,7 +1187,7 @@
 static sqInt storeImageSegmentIntooutPointersroots(sqInt segmentWordArray, sqInt outPointerArray, sqInt arrayOfRoots) NoDbgRegParms;
 sqInt storePointerUncheckedofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
 sqInt storePointerofObjectwithValue(sqInt fieldIndex, sqInt objOop, sqInt valuePointer);
-sqInt stringForCString(const char *aCString);
+usqInt stringForCString(const char *aCString);
 static sqInt sufficientSpaceAfterGC(sqInt numBytes) NoDbgRegParms;
 static sqInt swizzleObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
 void tenuringIncrementalGC(void);
@@ -2380,7 +2380,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.1202";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1207";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -28841,8 +28841,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    sqInt valueToStore;
-    sqInt valueToStore1;
+    usqInt valueToStore;
+    usqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -30155,7 +30155,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			s = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex);
+			s = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, formatField, ClassByteStringCompactIndex)));
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -31475,7 +31475,7 @@
     sqInt arg;
     sqInt fmt;
     sqInt i;
-    sqInt length;
+    usqInt length;
     usqInt numBytes;
     usqInt numSlots;
     usqInt numSlots1;
@@ -31516,18 +31516,18 @@
 
 			/* bytes (the common case), including CompiledMethod */
 
-			length = numBytes - (fmt & 7);
+			length = ((sqInt) (numBytes - (fmt & 7)));
 			goto l1;
 		}
 		if (fmt <= 9) {
-			length = numBytes;
+			length = ((sqInt) numBytes);
 			goto l1;
 		}
 		if (fmt >= 12) {
-			length = numBytes - ((fmt & 3) << 1);
+			length = ((sqInt) (numBytes - ((fmt & 3) << 1)));
 			goto l1;
 		}
-		length = numBytes - ((fmt & 1) << 2);
+		length = ((sqInt) (numBytes - ((fmt & 1) << 2)));
 	l1:	/* end numBytesOf: */;
 		if (!((((((usqInt) (longAt(rcvr))) >> 24) & 0x1F) == ((((usqInt) (longAt(arg))) >> 24) & 0x1F))
 			 && (length == (numBytesOf(arg))))) {
@@ -31545,9 +31545,9 @@
 		flag("endianness");
 		assert((classIndexOf(rcvr)) > (isForwardedObjectClassIndexPun()));
 		numSlots1 = byteAt(rcvr + 7);
-		length = ((usqInt) ((numSlots1 == 0xFF
-	? longAt(rcvr - BaseHeaderSize)
-	: numSlots1)));
+		length = (numSlots1 == 0xFF
+			? longAt(rcvr - BaseHeaderSize)
+			: numSlots1);
 		if (!((isAppropriateForCopyObject(arg))
 			 && (length == (lengthOfformat(arg, (((usqInt) (longAt(arg))) >> 24) & 0x1F))))) {
 			(GIV(primFailCode) = PrimErrBadArgument);
@@ -35551,7 +35551,7 @@
     sqInt err;
     sqInt hash;
     sqInt instSpec;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     sqInt numSlots;
@@ -35742,7 +35742,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			newObj = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex);
+			newObj = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex)));
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -38889,8 +38889,8 @@
     sqInt totalLength1;
     sqInt value;
     sqInt value1;
-    sqInt valueToStore;
-    sqInt valueToStore1;
+    usqInt valueToStore;
+    usqInt valueToStore1;
 
 	/* begin commonAtPut: */
 	value = longAt(GIV(stackPointer));
@@ -41568,7 +41568,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			newObj = allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex);
+			newObj = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(numSlots, numBytes, instSpec, classIndex)));
 			goto l1;
 		}
 		if (numSlots >= 0xFF) {
@@ -43400,7 +43400,7 @@
     sqInt ptr1;
     sqInt ptr2;
     sqInt slotBytes;
-    sqInt smallObj;
+    usqInt smallObj;
     sqInt start;
 
 	classIndex = (long32At(aClass + 4)) & 0x3FFFFF;
@@ -43415,7 +43415,7 @@
 				GIV(needGCFlag) = 1;
 				forceInterruptCheck();
 			}
-			freeChunk = allocateSlotsInOldSpacebytesformatclassIndex(0, numBytes, 2, ClassArrayCompactIndex);
+			freeChunk = ((usqInt) (allocateSlotsInOldSpacebytesformatclassIndex(0, numBytes, 2, ClassArrayCompactIndex)));
 			goto l1;
 		}
 		long64Atput(newObj, (((((usqLong) 0)) << 56) + (2 << 24)) + ClassArrayCompactIndex);
@@ -46288,7 +46288,7 @@
     sqInt fmt;
     sqInt hasYoung;
     sqInt i;
-    sqInt newObj;
+    usqInt newObj;
     usqInt newObj1;
     usqInt numBytes;
     usqInt numSlots;
@@ -57425,13 +57425,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;
@@ -60664,8 +60664,8 @@
     sqInt prevPrevObj;
     sqInt prevPrevObj1;
     sqInt ptr;
-    sqInt savedInHashes;
-    sqInt savedOutHashes;
+    usqInt savedInHashes;
+    usqInt savedOutHashes;
     sqInt segAddr;
     sqInt segStart;
     sqInt slotBytes;
@@ -61132,13 +61132,13 @@
 /*	Answer a new String copied from a null-terminated C string,
 	or nil if out of memory. */
 
-sqInt
+usqInt
 stringForCString(const char *aCString)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt formatField;
     sqInt len;
     usqInt newObj;
-    sqInt newString;
+    usqInt newString;
     usqInt numBytes;
     sqInt numSlots;
 
@@ -62368,7 +62368,7 @@
     usqLong firstSavedBridgeWord;
     sqInt nWritten;
     usqInt pier1;
-    sqInt pier2;
+    usqInt pier2;
     usqLong secondSavedBridgeWord;
 
 	pier1 = (((segment->segSize)) + ((segment->segStart))) - (2 * BaseHeaderSize);
@@ -62874,7 +62874,7 @@
 static sqInt
 checkForAndFollowForwardedPrimitiveState(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
-    sqInt accessorDepth;
+    signed char accessorDepth;
     sqInt firstBytecode;
     sqInt found;
     sqInt header;
@@ -73658,7 +73658,7 @@
     sqInt sp1;
     sqInt stSize;
     sqInt totalLength;
-    sqInt valueToStore;
+    usqInt valueToStore;
 
 	hdr = long64At(array);
 	fmt = (((unsigned sqLong)hdr) >> 24) & 0x1F;
@@ -74921,8 +74921,8 @@
     sqInt totalLength;
     sqInt totalLength1;
     sqInt value;
-    sqInt valueToStore;
-    sqInt valueToStore1;
+    usqInt valueToStore;
+    usqInt valueToStore1;
 
 	value = longAt(GIV(stackPointer));
 	index = longAt(GIV(stackPointer) + (1 * BytesPerWord));
@@ -76702,7 +76702,7 @@
     sqInt rcvr;
     char *sp;
     sqInt totalLength;
-    sqInt valueToStore;
+    usqInt valueToStore;
 
 	newValue = longAt(GIV(stackPointer));
 	/* begin stackIntegerValue: */

Added: branches/Cog/nsspurstack64src/examplePlugins.ext
===================================================================
--- branches/Cog/nsspurstack64src/examplePlugins.ext	                        (rev 0)
+++ branches/Cog/nsspurstack64src/examplePlugins.ext	2015-04-17 19:34:25 UTC (rev 3312)
@@ -0,0 +1,2 @@
+# Automatically generated makefile include for external plugins
+EXTERNAL_PLUGINS =

Added: branches/Cog/nsspurstack64src/examplePlugins.int
===================================================================
--- branches/Cog/nsspurstack64src/examplePlugins.int	                        (rev 0)
+++ branches/Cog/nsspurstack64src/examplePlugins.int	2015-04-17 19:34:25 UTC (rev 3312)
@@ -0,0 +1,2 @@
+# Automatically generated makefile include for internal plugins
+INTERNAL_PLUGINS =

Added: branches/Cog/nsspurstack64src/vm/exampleSqNamedPrims.h
===================================================================
--- branches/Cog/nsspurstack64src/vm/exampleSqNamedPrims.h	                        (rev 0)
+++ branches/Cog/nsspurstack64src/vm/exampleSqNamedPrims.h	2015-04-17 19:34:25 UTC (rev 3312)
@@ -0,0 +1,12 @@
+/* This is an automatically generated table of all builtin modules in the VM
+   StackInterpreterPrimitives VMMaker.oscog-eem.1207
+ */
+
+extern sqExport vm_exports[];
+extern sqExport os_exports[];
+
+sqExport *pluginExports[] = {
+	vm_exports,
+	os_exports,
+	NULL
+};

Added: branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstack64src/vm/gcc3x-interp.c	                        (rev 0)
+++ branches/Cog/nsspurstack64src/vm/gcc3x-interp.c	2015-04-17 19:34:25 UTC (rev 3312)
@@ -0,0 +1,73819 @@
+/* This file has been post-processed for GNU C */
+
+
+/* Automatically generated by
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1
+   from
+	StackInterpreter VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1
+ */
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1207 uuid: 4a338677-029f-42ac-b38d-2bc5ecc213f1 " __DATE__ ;
+char *__interpBuildInfo = __buildInfo;
+
+
+
+#if USE_GLOBAL_STRUCT
+# define SQ_USE_GLOBAL_STRUCT 1
+#else
+# define SQ_USE_GLOBAL_STRUCT 0
+#endif
+#if USE_GLOBAL_STRUCT_REG 
+# define SQ_USE_GLOBAL_STRUCT_REG 1
+#else
+# define SQ_USE_GLOBAL_STRUCT_REG 0
+#endif
+
+#include <stddef.h> /* for e.g. alloca */
+#include <setjmp.h>
+#include <wchar.h> /* for wint_t */
+#include "sqGnu.h"
+#include "vmCallback.h"
+#include "sqMemoryFence.h"
+#include "dispdbg.h"
+#include "sqMemoryAccess.h"
+
+
+/* StackInterpreter class>>preambleCCode */
+/* Disable Intel compiler inlining of warning which is used for breakpoints */
+#pragma auto_inline off
+sqInt warnpid, erroronwarn;
+void
+warning(char *s) { /* Print an error message but don't necessarily exit. */
+	if (erroronwarn) error(s);
+	if (warnpid)
+		printf("\n%s pid %ld\n", s, (long)warnpid);
+	else
+		printf("\n%s\n", s);
+}
+void
+warningat(char *s, int l) { /* ditto with line number. */
+	/* use alloca to call warning so one does not have to remember to set two breakpoints... */
+	char *sl = alloca(strlen(s) + 16);
+	sprintf(sl, "%s %d", s, l);
+	warning(sl);
+}
+#pragma auto_inline on
+
+void
+invalidCompactClassError(char *s) { /* Print a (compact) class index error message and exit. */
+#if SPURVM
+	printf("\nClass %s does not have the required class index\n", s);
+#else
+	printf("\nClass %s does not have the required compact class index\n", s);
+#endif
+	exit(-1);
+}
+
+/*
+ * Define sigsetjmp and siglongjmp to be the most minimal setjmp/longjmp available on the platform.
+ */
+#if WIN32
+# define sigsetjmp(jb,ssmf) setjmp(jb)
+# define siglongjmp(jb,v) longjmp(jb,v)
+#else
+# define sigsetjmp(jb,ssmf) _setjmp(jb)
+# define siglongjmp(jb,v) _longjmp(jb,v)
+#endif
+
+/* 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 InterpreterStackPage StackPage
+
+
+
+/*** Constants ***/
+#define AccessModifierPublic 0
+#define ActiveProcessIndex 1
+#define AlternateHeaderHasPrimFlag 0x80000
+#define AlternateHeaderNumLiteralsMask 0x7FFF
+#define AltLongStoreBytecode 234
+#define AtCacheFixedFields 4
+#define AtCacheFmt 3
+#define AtCacheMask 0x1C
+#define AtCacheOop 1
+#define AtCacheSize 2
+#define AtCacheTotalSize 64
+#define AtPutBase 32
+#define BecameActiveClassFlag 8
+#define BecameCompiledMethodFlag 2
+#define BecamePointerObjectFlag 1
+#define Byte0Mask 0xFF
+#define Byte1Mask 0xFF00
+#define Byte1Shift 8
+#define Byte1ShiftNegated -8
+#define Byte2Mask 0xFF0000
+#define Byte3Mask 0xFF000000ULL
+#define Byte3Shift 24
+#define Byte3ShiftNegated -24
+#define Byte4Mask 0xFF00000000ULL
+#define Byte5Mask 0xFF0000000000ULL
+#define Byte5Shift 40
+#define Byte5ShiftNegated -40
+#define Byte6Mask 0xFF000000000000ULL
+#define Byte7Mask 0xFF00000000000000ULL
+#define Byte7Shift 56
+#define Byte7ShiftNegated -56
+#define CacheProbeMax 3
+#define CharacterTable null
+#define CharacterValueIndex 0
+#define CheckPrivacyViolations 1
+#define ClassAlien 52
+#define ClassArray 7
+#define ClassArrayCompactIndex 51
+#define ClassBitmap 4
+#define ClassBlockClosure 36
+#define ClassBlockClosureCompactIndex 37
+#define ClassByteArray 26
+#define ClassByteString 6
+#define ClassByteStringCompactIndex 52
+#define ClassCharacter 19
+#define ClassExternalAddress 43
+#define ClassExternalData 45
+#define ClassExternalFunction 46
+#define ClassExternalLibrary 47
+#define ClassExternalStructure 44
+#define ClassFloat 9
+#define ClassFloatCompactIndex 34
+#define ClassLargeNegativeInteger 42
+#define ClassLargeNegativeIntegerCompactIndex 32
+#define ClassLargePositiveInteger 13
+#define ClassLargePositiveIntegerCompactIndex 33
+#define ClassMessage 15
+#define ClassMessageCompactIndex 35
+#define ClassMethodContext 10
+#define ClassMethodContextCompactIndex 36
+#define ClassMutex 39
+#define ClassPoint 12
+#define ClassSemaphore 18
+#define ClassSmallInteger 5
+#define ClassUnsafeAlien 54
+#define ClosureFirstCopiedValueIndex 3
+#define ClosureIndex 4
+#define ClosureNumArgsIndex 2
+#define ClosureOuterContextIndex 0
+#define ClosureStartPCIndex 1
+#define CompactionPassesForGC 2
+#define CompactionPassesForSnapshot 3
+#define ConstMinusOne 0xFFFFFFFFFFFFFFF9ULL
+#define ConstOne 9
+#define ConstTwo 17
+#define ConstZero 1
+#define CrossedX 258
+#define CtxtTempFrameStart 6
+#define DontTenureButDoUnmark 4
+#define DumpStackOnLowSpace 0
+#define EnclosingMixinIndex 3
+#define EnclosingObjectIndex 4
+#define EndOfRun 0x101
+#define EphemeronQueueRootIndex 4098
+#define ExcessSignalsIndex 2
+#define ExternalObjectsArray 38
+#define ExtraRootsSize 2048
+#define FailImbalancedPrimitives 0
+#define FalseObject 1
+#define FirstLinkIndex 0
+#define FoxCallerContext 8
+#define FoxCallerSavedIP 8
+#define FoxFrameFlags -16
+#define FoxMethod -8
+#define FoxReceiver -32
+#define FoxSavedFP 0
+#define FoxThisContext -24
+#define FrameSlots 6
+#define GCModeBecome 8
+#define GCModeFull 1
+#define GCModeImageSegment 16
+#define GCModeIncremental 4
+#define GCModeNewSpace 2
+#define HeaderIndex 0
+#define InstanceSpecificationIndex 2
+#define InstructionPointerIndex 1
+#define KeyIndex 0
+#define LargeContextBit 0x100000
+#define LargeContextSlots 62
+#define LastLinkIndex 1
+#define LiteralStart 1
+#define LongStoreBytecode 129
+#define MarkObjectsForEnumerationPrimitives 0
+#define MarkOnTenure 5
+#define MarkStackRootIndex 0x1000
+#define MaxExternalPrimitiveTableSize 4096
+#define MaxJumpBuf 32
+#define MaxPrimitiveIndex 575
+#define MaxQuickPrimitiveIndex 519
+#define MessageArgumentsIndex 1
+#define MessageLookupClassIndex 2
+#define MessageSelectorIndex 0
+#define MethodArrayIndex 1
+#define MethodCacheClass 2
+#define MethodCacheEntries 0x400
+#define MethodCacheEntrySize 4
+#define MethodCacheMask 0xFFC
+#define MethodCacheMethod 3
+#define MethodCachePrimFunction 4
+#define MethodCacheSelector 1
+#define MethodCacheSize 4096
+#define MethodDictionaryIndex 1
+#define MethodHeaderArgCountShift 27
+#define MethodHeaderFlagBitPosition 31
+#define MethodHeaderTempCountShift 21
+#define MethodIndex 3
+#define MillisecondClockMask 0x1FFFFFFF
+#define MixinIndex 3
+#define MULTIPLEBYTECODESETS 1
+#define MyListIndex 3
+#define NewspeakVM 1
+#define NextLinkIndex 0
+#define NilObject 0
+#define ObjStackFixedSlots 4
+#define ObjStackFreex 2
+#define ObjStackLimit 0xFF8
+#define ObjStackMyx 1
+#define ObjStackNextx 3
+#define ObjStackPageSlots 0xFFC
+#define ObjStackTopx 0
+#define OldBecameNewFlag 4
+#define PrimErrBadArgument 3
+#define PrimErrBadIndex 4
+#define PrimErrBadMethod 12
+#define PrimErrBadNumArgs 5
+#define PrimErrBadReceiver 2
+#define PrimErrGenericFailure 1
+#define PrimErrInappropriate 6
+#define PrimErrLimitExceeded 15
+#define PrimErrNamedInternal 13
+#define PrimErrNoCMemory 10
+#define PrimErrNoMemory 9
+#define PrimErrNotFound 11
+#define PrimErrObjectIsPinned 16
+#define PrimErrTableIndex 51
+#define PrimErrUnsupported 7
+#define PrimErrWritePastObject 17
+#define PrimitiveExternalCallIndex 117
+#define PrimNoErr 0
+#define PriorityIndex 2
+#define ProcessListsIndex 0
+#define ProcessSignalingLowSpace 22
+#define ReceiverIndex 5
+#define RemapBufferSize 25
+#define RememberedSetRootIndex 4099
+#define SchedulerAssociation 3
+#define SelectorAboutToReturn 48
+#define SelectorCannotInterpret 34
+#define SelectorCannotReturn 21
+#define SelectorDoesNotUnderstand 20
+#define SelectorInvokeCallback 53
+#define SelectorMustBeBoolean 25
+#define SelectorRunWithIn 49
+#define SelectorStart 2
+#define SelectorUnknownBytecode 57
+#define SenderIndex 0
+#define SistaVM 0
+#define SmallContextSlots 22
+#define SpecialSelectors 23
+#define StackPageReachedButUntraced 1
+#define StackPageTraced 2
+#define StackPageTraceInvalid -1
+#define StackPageUnreached 0
+#define StackPointerIndex 2
+#define SuperclassIndex 0
+#define SuspendedContextIndex 1
+#define TenureByAge 1
+#define TenureByClass 2
+#define TheDisplay 14
+#define TheFinalizationSemaphore 41
+#define TheInputSemaphore null
+#define TheInterruptSemaphore 30
+#define TheLowSpaceSemaphore 17
+#define TheTimerSemaphore 29
+#define TopHashBit 0x200000
+#define TopOopBit 0x8000000000000000ULL
+#define TrueObject 2
+#define V3PrimitiveBitsMask 0x80000FF8ULL
+#define ValueIndex 1
+#define WeaklingStackRootIndex 0x1001
+#define XIndex 0
+#define YIndex 1
+
+
+/*** Function Prototypes ***/
+
+
+#if !PRODUCTION && defined(__GNUC__) && !defined(NoDbgRegParms)
+# define NoDbgRegParms __attribute__ ((regparm (0)))
+#endif
+
+#if !defined(NoDbgRegParms)
+# define NoDbgRegParms /*empty*/
+#endif
+
+
+
+#if defined(__GNUC__) && !defined(NeverInline)
+# define NeverInline __attribute__ ((noinline))
+#endif
+
+#if !defined(NeverInline)
+# define NeverInline /*empty*/
+#endif
+
+sqInt interpret(void);
+static unsigned long asUnsigned(sqInt anInteger) NoDbgRegParms;
+char * cStringOrNullFor(sqInt oop);
+sqInt failed(void);
+static sqInt isNegativeIntegerValueOf(sqInt oop) NoDbgRegParms;
+static sqInt magnitude64BitIntegerForneg(usqLong magnitude, sqInt isNegative) NoDbgRegParms;
+static usqLong magnitude64BitValueOf(sqInt oop) NoDbgRegParms;
+usqInt positive32BitValueOf(sqInt oop);
+usqLong positive64BitValueOf(sqInt oop);
+unsigned long positiveMachineIntegerValueOf(sqInt oop);
+static void primitiveAdd(void);
+EXPORT(void) primitiveAddLargeIntegers(void);
+static void primitiveAdoptInstance(void);
+EXPORT(void) primitiveAllInstances(void);
+EXPORT(void) primitiveAllObjects(void);
+static void primitiveArctan(void);
+static void primitiveArrayBecome(void);
+static void primitiveArrayBecomeOneWay(void);
+static void primitiveArrayBecomeOneWayCopyHash(void);
+static void primitiveAsCharacter(void);
+static void primitiveAsFloat(void);
+static void primitiveAt(void);
+static void primitiveAtPut(void);
+static void primitiveBeCursor(void);
+static void primitiveBeDisplay(void);
+static void primitiveBeep(void);
+static void primitiveBehaviorHash(void);
+static void primitiveBitAnd(void);
+EXPORT(void) primitiveBitAndLargeIntegers(void);
+static void primitiveBitOr(void);
+EXPORT(void) primitiveBitOrLargeIntegers(void);
+static void primitiveBitShift(void);
+EXPORT(void) primitiveBitShiftLargeIntegers(void);
+static void primitiveBitXor(void);
+EXPORT(void) primitiveBitXorLargeIntegers(void);
+static void primitiveBytesLeft(void);
+static void primitiveCalloutToFFI(void);
+static void primitiveChangeClass(void);
+static void primitiveClass(void);
+static void primitiveClearVMProfile(void);
+static void primitiveClipboardText(void);
+EXPORT(sqInt) primitiveClockLogAddresses(void);
+static void primitiveClosureValue(void);
+void primitiveClosureValueNoContextSwitch(void);
+static void primitiveClosureValueWithArgs(void);
+EXPORT(void) primitiveCompareBytes(void);
+static void primitiveConstantFill(void);
+static void primitiveControlVMProfiling(void);
+static void primitiveCopyObject(void);
+EXPORT(sqInt) primitiveCrashVM(void);
+EXPORT(sqInt) primitiveDisablePowerManager(void);
+static void primitiveDiv(void);
+static void primitiveDivide(void);
+EXPORT(void) primitiveDivideLargeIntegers(void);
+EXPORT(void) primitiveDivLargeIntegers(void);
+static void primitiveEnterCriticalSection(void);
+static void primitiveEqual(void);
+EXPORT(void) primitiveEqualLargeIntegers(void);
+static void primitiveExitCriticalSection(void);
+static void primitiveExitToDebugger(void);
+static void primitiveExp(void);
+static void primitiveExponent(void);
+sqInt primitiveFail(void);
+sqInt primitiveFailFor(sqInt reasonCode);
+sqInt primitiveFailureCode(void);
+static void primitiveFloatAdd(void);
+static void primitiveFloatAt(void);
+static void primitiveFloatAtPut(void);
+static void primitiveFloatDivide(void);
+static void primitiveFloatEqual(void);
+static void primitiveFloatGreaterOrEqual(void);
+static void primitiveFloatGreaterThan(void);
+static void primitiveFloatLessOrEqual(void);
+static void primitiveFloatLessThan(void);
+static void primitiveFloatMultiply(void);
+static void primitiveFloatNotEqual(void);
+static void primitiveFloatSubtract(void);
+static void primitiveFlushCache(void);
+static void primitiveFlushExternalPrimitives(void);
+static void primitiveForceDisplayUpdate(void);
+static void primitiveFormPrint(void);
+static void primitiveFractionalPart(void);
+static void primitiveGetAttribute(void);
+EXPORT(sqInt) primitiveGetLogDirectory(void);
+static void primitiveGetNextEvent(void);
+EXPORT(sqInt) primitiveGetWindowLabel(void);
+EXPORT(sqInt) primitiveGetWindowSize(void);
+static void primitiveGreaterOrEqual(void);
+EXPORT(void) primitiveGreaterOrEqualLargeIntegers(void);
+static void primitiveGreaterThan(void);
+EXPORT(void) primitiveGreaterThanLargeIntegers(void);
+static void primitiveGrowMemoryByAtLeast(void);
+EXPORT(sqInt) primitiveHeartbeatFrequency(void);
+EXPORT(sqInt) primitiveHighResClock(void);
+static void primitiveIdentical(void);
+static void primitiveIdentityHash(void);
+static void primitiveImageName(void);
+static void primitiveImmediateAsInteger(void);
+static void primitiveInputSemaphore(void);
+static void primitiveInputWord(void);
+static void primitiveIntegerAt(void);
+static void primitiveIntegerAtPut(void);
+EXPORT(sqInt) primitiveInterruptChecksPerMSec(void);
+static void primitiveInterruptSemaphore(void);
+static void primitiveInvokeObjectAsMethod(void);
+EXPORT(sqInt) primitiveIsBigEnder(void);
+static void primitiveIsPinned(void);
+EXPORT(sqInt) primitiveIsWindowObscured(void);
+static void primitiveKbdNext(void);
+static void primitiveKbdPeek(void);
+static void primitiveLessOrEqual(void);
+EXPORT(void) primitiveLessOrEqualLargeIntegers(void);
+static void primitiveLessThan(void);
+EXPORT(void) primitiveLessThanLargeIntegers(void);
+static void primitiveListBuiltinModule(void);
+static void primitiveListExternalModule(void);
+static void primitiveLoadImageSegment(void);
+static void primitiveLocalMicrosecondClock(void);
+static void primitiveLogN(void);
+static void primitiveLowSpaceSemaphore(void);
+static void primitiveMakePoint(void);
+static void primitiveMaxIdentityHash(void);
+usqInt primitiveMethod(void);
+static void primitiveMillisecondClock(void);
+EXPORT(sqInt) primitiveMillisecondClockMask(void);
+static void primitiveMod(void);
+EXPORT(void) primitiveModLargeIntegers(void);
+static void primitiveMouseButtons(void);
+static void primitiveMousePoint(void);
+static void primitiveMultiply(void);
+EXPORT(void) primitiveMultiplyLargeIntegers(void);
+static void primitiveNew(void);
+static void primitiveNewMethod(void);
+static void primitiveNewWithArg(void);
+static void primitiveNextInstance(void);
+static void primitiveNextObject(void);
+static void primitiveNoop(void);
+static void primitiveNotEqual(void);
+EXPORT(void) primitiveNotEqualLargeIntegers(void);
+static void primitiveNotIdentical(void);
+static void primitiveObjectAt(void);
+static void primitiveObjectAtPut(void);
+EXPORT(sqInt) primitiveOriginalMillisecondClock(void);
+EXPORT(sqInt) primitivePathToUsing(void);
+static void primitivePerformInSuperclass(void);
+static void primitivePerformWithArgs(void);
+EXPORT(sqInt) primitiveProfilePrimitive(void);
+EXPORT(sqInt) primitiveProfileSample(void);
+EXPORT(sqInt) primitiveProfileSemaphore(void);
+EXPORT(sqInt) primitiveProfileStart(void);
+static void primitiveQuit(void);
+static void primitiveQuo(void);
+EXPORT(void) primitiveQuoLargeIntegers(void);
+static void primitiveRelinquishProcessor(void);
+EXPORT(void) primitiveRemLargeIntegers(void);
+static void primitiveResume(void);
+static void primitiveScanCharacters(void);
+EXPORT(sqInt) primitiveScreenDepth(void);
+static void primitiveScreenSize(void);
+static void primitiveSecondsClock(void);
+static void primitiveSetDisplayMode(void);
+static void primitiveSetFullScreen(void);
+static void primitiveSetIdentityHash(void);
+static void primitiveSetInterruptKey(void);
+EXPORT(sqInt) primitiveSetLogDirectory(void);
+EXPORT(sqInt) primitiveSetWindowLabel(void);
+EXPORT(sqInt) primitiveSetWindowSize(void);
+static void primitiveShortAt(void);
+static void primitiveShortAtPut(void);
+static void primitiveShowDisplayRect(void);
+static void primitiveSignal(void);
+static void primitiveSignalAtBytesLeft(void);
+static void primitiveSine(void);
+static void primitiveSize(void);
+static void primitiveSizeInBytes(void);
+static void primitiveSizeInBytesOfInstance(void);
+static void primitiveSmallFloatAdd(void);
+static void primitiveSmallFloatArctan(void);
+static void primitiveSmallFloatDivide(void);
+static void primitiveSmallFloatEqual(void);
+static void primitiveSmallFloatExp(void);
+static void primitiveSmallFloatExponent(void);
+static void primitiveSmallFloatFractionalPart(void);
+static void primitiveSmallFloatGreaterOrEqual(void);
+static void primitiveSmallFloatGreaterThan(void);
+static void primitiveSmallFloatLessOrEqual(void);
+static void primitiveSmallFloatLessThan(void);
+static void primitiveSmallFloatLogN(void);
+static void primitiveSmallFloatMultiply(void);
+static void primitiveSmallFloatNotEqual(void);
+static void primitiveSmallFloatSine(void);
+static void primitiveSmallFloatSquareRoot(void);
+static void primitiveSmallFloatSubtract(void);
+static void primitiveSmallFloatTimesTwoPower(void);
+static void primitiveSmallFloatTruncated(void);
+static void primitiveSnapshot(void);
+static void primitiveSnapshotEmbedded(void);
+static void primitiveSomeInstance(void);
+static void primitiveSomeObject(void);
+static void primitiveSpecialObjectsOop(void);
+static void primitiveSquareRoot(void);
+static void primitiveStoreImageSegment(void);
+static void primitiveStringAt(void);
+static void primitiveStringAtPut(void);
+static void primitiveStringReplace(void);
+static void primitiveSubtract(void);
+EXPORT(void) primitiveSubtractLargeIntegers(void);
+static void primitiveSuspend(void);
+static void primitiveTestAndSetOwnershipOfCriticalSection(void);
+static void primitiveTestDisplayDepth(void);
+static void primitiveTimesTwoPower(void);
+static void primitiveTruncated(void);
+static void primitiveUnloadModule(void);
+static void primitiveUpdateTimezone(void);
+static void primitiveUTCMicrosecondClock(void);
+EXPORT(sqInt) primitiveUtcWithOffset(void);
+static void primitiveVMPath(void);
+static void primitiveVMProfileSamplesInto(void);
+static void primitiveWait(void);
+static void primitiveYield(void);
+sqInt signalNoResume(sqInt aSemaphore);
+int signed32BitValueOf(sqInt oop);
+sqLong signed64BitValueOf(sqInt oop);
+long signedMachineIntegerValueOf(sqInt oop);
+usqInt sizeOfAlienData(sqInt oop);
+void * startOfAlienData(sqInt oop);
+sqInt success(sqInt successBoolean);
+static sqInt addressIsInPage(StackPage * self_in_addressIsInPage, char *address) NoDbgRegParms;
+static sqInt isFree(StackPage * self_in_isFree) NoDbgRegParms;
+static sqInt extraStackBytes(void);
+static sqInt freeStackPageNoAssert(StackPage *aPage) NoDbgRegParms;
+static sqInt initializeStacknumSlotspageSize(char *theStackPages, sqInt stackSlots, sqInt slotsPerPage) NoDbgRegParms;
+static sqInt markStackPageMostRecentlyUsed(StackPage *page) NoDbgRegParms;
+static sqInt markStackPageNextMostRecentlyUsed(StackPage *page) NoDbgRegParms;
+static sqInt pageIndexFor(void *pointer) NoDbgRegParms;
+static sqInt pageListIsWellFormed(void);
+static StackPage * stackPageAt(sqInt index) NoDbgRegParms;
+static StackPage * stackPageFor(void *pointer) NoDbgRegParms;
+static sqInt addressAfter(sqInt objOop) NoDbgRegParms;
+static sqInt allocateSlotsForPinningInOldSpacebytesformatclassIndex(sqInt numSlots, usqInt totalBytes, sqInt formatField, sqInt classIndex) NoDbgRegParms;
+static sqInt allocateSlotsInOldSpacebytesformatclassIndex(sqInt numSlots, usqInt totalBytes, sqInt formatField, sqInt classIndex) NoDbgRegParms;
+sqInt byteSwapped(sqInt w);
+static usqInt bytesInObject(sqInt objOop) NoDbgRegParms;
+static sqInt changeClassOfto(sqInt rcvr, sqInt argClass) NoDbgRegParms;
+static double dbgFloatValueOf(sqInt oop) NoDbgRegParms;
+static sqInt exponentOfSmallFloat(sqInt oop) NoDbgRegParms;
+sqInt floatObjectOf(double aFloat);
+double floatValueOf(sqInt oop);
+static sqInt initFreeChunkWithBytesat(usqLong numBytes, sqInt address) NoDbgRegParms;
+static void initSegmentBridgeWithBytesat(usqLong numBytes, sqInt address) NoDbgRegParms;
+sqInt instantiateClassindexableSize(sqInt classObj, usqInt nElements);
+sqInt integerObjectOf(sqInt value);
+sqInt integerValueOf(sqInt oop);
+static sqInt isImmediateFloat(sqInt oop) NoDbgRegParms;
+sqInt isIntegerObject(sqInt oop);
+sqInt isIntegerValue(sqInt intValue);
+sqInt isMarked(sqInt objOop);
+static sqInt isSmallFloatValue(double aFloat) NoDbgRegParms;
+static sqInt isSmallFloatZero(sqInt aSmallFloat) NoDbgRegParms;
+static sqInt lengthOfformat(sqInt objOop, sqInt fmt) NoDbgRegParms;
+static sqInt maxSlotsForAlloc(void);
+static sqInt numFreeLists(void);
+sqInt numTagBits(void);
+static sqInt objectAfterlimit(sqInt objOop, sqInt limit) NoDbgRegParms;
+static sqInt smallFloatTag(void);
+static double smallFloatValueOf(sqInt oop) NoDbgRegParms;
+sqInt tagMask(void);
+static sqInt wordIndexableFormat(void);
+static void addToEphemeronList(sqInt ephemeronCorpse) NoDbgRegParms NeverInline;
+static void addToWeakList(sqInt weakCorpse) NoDbgRegParms NeverInline;
+static sqInt allWeakSurvivorsOnWeakList(void);
+static sqInt copyAndForward(sqInt survivor) NoDbgRegParms;
+static sqInt copyToOldSpacebytesformat(sqInt survivor, sqInt bytesInObject, sqInt formatOfSurvivor) NoDbgRegParms NeverInline;
+static sqInt firstCorpse(sqInt headOfCorpseList) NoDbgRegParms;
+static void growRememberedSet(void);
+static sqInt isInRememberedSet(sqInt objOop) NoDbgRegParms;
+static sqInt isMaybeOldScavengeSurvivor(sqInt oop) NoDbgRegParms;
+static sqInt isScavengeSurvivor(sqInt oop) NoDbgRegParms;
+static sqInt isonWeaklingList(sqInt oop, sqInt listHead) NoDbgRegParms;
+static usqInt newSpaceCapacity(void);
+static sqInt noUnfiredEphemeronsAtEndOfRememberedSet(void);
+static void processEphemerons(void);
+static void processWeaklings(void);
+static sqInt processWeakSurvivor(sqInt weakObj) NoDbgRegParms;
+sqInt remember(sqInt objOop);
+static void scavengeFutureSurvivorSpaceStartingAt(sqInt initialAddress) NoDbgRegParms;
+static void scavengeLoop(void);
+static sqInt scavengeReferentsOf(sqInt referrer) NoDbgRegParms;
+static void scavengeRememberedSetStartingAt(sqInt n) NoDbgRegParms;
+static float scavengerTenuringThreshold(void);
+static sqInt scavengeUnfiredEphemeronsOnEphemeronList(void);
+static sqInt accessibleObjectAfter(sqInt objOop) NoDbgRegParms;
+static sqInt activeAndDeferredScan(sqInt anEphemeron) NoDbgRegParms NeverInline;
+static void addFreeSubTree(sqInt freeTree) NoDbgRegParms;
+sqInt addGCRoot(sqInt *varLoc);
+sqInt addressCouldBeObj(sqInt address);
+sqInt addressCouldBeOop(sqInt address);
+static sqInt addToFreeListbytes(sqInt freeChunk, sqInt chunkBytes) NoDbgRegParms;
+static sqInt addToFreeTreebytes(sqInt freeChunk, sqInt chunkBytes) NoDbgRegParms;
+static sqInt allInstancesOf(sqInt aClass) NoDbgRegParms;
+static sqInt allObjects(void);
+static sqInt allObjectsUnmarked(void);
+static sqInt allOldMarkedWeakObjectsOnWeaklingStack(void);
+static sqInt allocateLargestFreeChunk(void);
+static sqInt allocateNewSpaceSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex) NoDbgRegParms;
+static sqInt allocateOldSpaceChunkOfBytes(usqInt chunkBytes) NoDbgRegParms;
+sqInt allocatePinnedSlots(sqInt nSlots);
+static sqInt allocationUnit(void);
+static sqInt allStrongSlotsOfWeaklingAreMarked(sqInt aWeakling) NoDbgRegParms;
+static sqInt allUnscannedEphemeronsAreActive(void);
+static sqInt arrayClassIndexPun(void);
+sqInt arrayFormat(void);
+static sqInt becomeEffectFlagsFor(sqInt objOop) NoDbgRegParms;
+sqInt becomewith(sqInt array1, sqInt array2);
+static sqInt becomewithtwoWaycopyHash(sqInt array1, sqInt array2, sqInt twoWayFlag, sqInt copyHashFlag) NoDbgRegParms;
+void beRootIfOld(sqInt oop);
+static sqInt bitsSetInFreeSpaceMaskForAllFreeLists(void);
+static sqInt bridgeSize(void);
+static sqInt byteFormatMask(void);
+sqInt byteSizeOf(sqInt oop);
+sqInt characterObjectOf(sqInt characterCode);
+void characterTable(void);
+sqInt characterTag(void);
+sqInt characterValueOf(sqInt oop);
+sqInt checkedLongAt(sqInt byteAddress);
+static sqInt checkHeapIntegrityclassIndicesShouldBeValid(sqInt excludeUnmarkedNewSpaceObjs, sqInt classIndicesShouldBeValid) NoDbgRegParms;
+sqInt checkOkayOop(usqInt oop);
+sqInt checkOopHasOkayClass(usqInt obj);
+static sqInt checkOopIntegritynamed(sqInt obj, char *name) NoDbgRegParms;
+static sqInt checkOopIntegritynamedindex(sqInt obj, char *name, sqInt i) NoDbgRegParms;
+sqInt checkTraversableSortedFreeList(void);
+sqInt classAlien(void);
+sqInt classArray(void);
+sqInt classAtIndex(sqInt classIndex);
+static sqInt classAtIndexput(sqInt classIndex, sqInt objOop) NoDbgRegParms;
+sqInt classBitmap(void);
+sqInt classByteArray(void);
+sqInt classCharacter(void);
+sqInt classExternalAddress(void);
+sqInt classExternalData(void);
+sqInt classExternalFunction(void);
+sqInt classExternalLibrary(void);
+sqInt classExternalStructure(void);
+sqInt classFloat(void);
+static sqInt classForClassTag(sqInt classIndex) NoDbgRegParms;
+static sqInt classIndexFieldWidth(void);
+sqInt classIndexMask(void);
+sqInt classIndexOf(sqInt objOop);
+sqInt classLargeNegativeInteger(void);
+sqInt classLargePositiveInteger(void);
+sqInt classOrNilAtIndex(sqInt classIndex);
+sqInt classPoint(void);
+sqInt classSemaphore(void);
+sqInt classSmallInteger(void);
+sqInt classString(void);
+sqInt classTableMajorIndexShift(void);
+sqInt classTableMinorIndexMask(void);
+sqInt classTablePageSize(void);
+sqInt classTableRootObj(void);
+static sqInt classTableRootSlots(void);
+sqInt classTagForClass(sqInt classObj);
+sqInt classUnsafeAlien(void);
+static void clearLeakMapAndMapAccessibleObjects(void);
+static sqInt cloneInOldSpaceForPinning(sqInt objOop) NoDbgRegParms;
+sqInt clone(sqInt objOop);
+static void compact(void) NeverInline;
+sqInt compactClassIndexOf(sqInt objOop);
+static sqInt copyObjtoAddrstartAtstopAt(sqInt objOop, sqInt segAddr, sqInt segStart, sqInt endSeg) NoDbgRegParms;
+void countMarkedAndUnmarkdObjects(sqInt printFlags);
+static sqInt defaultEdenBytes(void);
+static void detachFreeObject(sqInt freeChunk) NoDbgRegParms;
+sqInt displayObject(void);
+static void doScavenge(sqInt tenuringCriterion) NoDbgRegParms;
+sqInt eeInstantiateClassIndexformatnumSlots(sqInt knownClassIndex, sqInt objFormat, sqInt numSlots);
+static void eliminateAndFreeForwardersForPigCompact(void);
+static void emptyObjStack(sqInt objStack) NoDbgRegParms;
+static sqInt ensureBehaviorHash(sqInt aBehavior) NoDbgRegParms;
+static sqInt ensureRoomOnObjStackAt(sqInt objStackRootIndex) NoDbgRegParms;
+static sqInt enterIntoClassTable(sqInt aBehavior) NoDbgRegParms;
+static sqInt ephemeronFormat(void);
+static sqInt existInstancesInNewSpaceOf(sqInt classObj) NoDbgRegParms;
+static void expungeFromClassTable(sqInt aBehavior) NoDbgRegParms;
+sqInt falseObject(void);
+sqInt fetchByteofObject(sqInt byteIndex, sqInt objOop);
+static sqInt fetchClassOfNonImm(sqInt objOop) NoDbgRegParms NeverInline;
+sqInt fetchClassOf(sqInt oop);
+static sqInt fetchClassTagOfNonImm(sqInt obj) NoDbgRegParms;
+sqInt fetchLong32ofObject(sqInt fieldIndex, sqInt oop);
+static sqInt fetchPointerofFreeChunk(sqInt fieldIndex, sqInt objOop) NoDbgRegParms;
+sqInt fetchPointerofObject(sqInt fieldIndex, sqInt objOop);
+static sqInt findLargestFreeChunk(void);
+void findStringBeginningWith(char *aCString);
+void findString(char *aCString);
+static sqInt firstAccessibleObject(void);
+sqInt firstByteFormat(void);
+sqInt firstCompiledMethodFormat(void);
+static void * firstFixedFieldOfMaybeImmediate(sqInt oop) NoDbgRegParms;
+void * firstFixedField(sqInt objOop);
+void * firstIndexableField(sqInt objOop);
+sqInt firstLongFormat(void);
+sqInt firstShortFormat(void);
+sqInt fixedFieldsFieldWidth(void);
+sqInt fixedFieldsOfClassFormatMask(void);
+static sqInt fixedFieldsOfformatlength(sqInt objOop, sqInt fmt, sqInt wordLength) NoDbgRegParms;
+static sqInt fixFollowedFieldofObjectwithInitialValue(sqInt fieldIndex, sqInt anObject, sqInt initialValue) NoDbgRegParms NeverInline;
+static sqInt followFieldofObject(sqInt fieldIndex, sqInt anObject) NoDbgRegParms;
+static sqInt followForwardedInObjStackatIndex(sqInt objStack, sqInt objStackRootIndex) NoDbgRegParms;
+sqInt followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth);
+sqInt followForwarded(sqInt objOop);
+static sqInt followObjFieldofObject(sqInt fieldIndex, sqInt anObject) NoDbgRegParms;
+sqInt formatMask(void);
+sqInt formatOfClass(sqInt classPointer);
+static sqInt formatOf(sqInt objOop) NoDbgRegParms;
+sqInt formatShift(void);
+static sqInt forwardedFormat(void);
+static sqInt freeChunkNextIndex(void);
+static sqInt freeChunkParentIndex(void);
+static sqInt freeChunkWithBytesat(sqInt bytes, sqInt address) NoDbgRegParms;
+static sqInt freeListHeadsEmpty(void);
+static sqInt freeListsObj(void);
+sqInt freeObject(sqInt objOop);
+static void freeUnmarkedObjectsAndSortAndCoalesceFreeSpaceForPigCompact(void) NeverInline;
+usqLong fullGC(void) NeverInline;
+static float getHeapGrowthToSizeGCRatio(void);
+static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
+static usqInt growOldSpaceByAtLeast(sqInt minAmmount) NoDbgRegParms;
+usqLong headerForSlotsformatclassIndex(sqInt numSlots, sqInt formatField, sqInt classIndex);
+static sqInt hiddenRootSlots(void);
+sqInt identityHashHalfWordMask(void);
+static sqInt imageSegmentVersion(void);
+void incrementalGC(void);
+sqInt indexablePointersFormat(void);
+static void inFreeTreeReplacewith(sqInt treeNode, sqInt newNode) NoDbgRegParms;
+static sqInt initialInstanceOf(sqInt classObj) NoDbgRegParms;
+static void initializeObjectMemory(sqInt bytesToShift) NoDbgRegParms;
+void inOrderPrintFreeTreeprintList(sqInt freeChunk, sqInt printNextList);

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list