[Vm-dev] [commit][3260] CogVM source as per VMMaker.oscog-eem.1072

commits at squeakvm.org commits at squeakvm.org
Sat Feb 21 06:09:29 UTC 2015


Revision: 3260
Author:   eliot
Date:     2015-02-20 22:09:27 -0800 (Fri, 20 Feb 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1072

Fix typing multiple assignments to a variable
- promote the type to the largest integral type of all assignments
	(primitiveDecompressFromByteArray)
- do /not/ promote a variable typed with integral type to a floating point type
	(transformColor:)

Provide size of short int.

Do a much better job at typeForArithmetic:in:;
answering the longest type for integral types.

In inferTypesForImplicitlyTypedVariablesIn:, observe assignments from both sends
and typed vars.  Comment the method better so that alreadyExplicitlyTyped's
usage is clear(er).

On type compatibility of inlined expressions, insist on signed compatibility or
accept an untyped actual.

Provide a return type for asFloat (so inlining in primitiveAsFloat still occurs)

Provide an exception in unsignedTypeForBitwiseSend:in:
for currentBytecode to preserve the nice constant
inlining of currentBytecode & N in the bytecode cases.

Improve the type inferrence machinery further to
support pointer subtraction.  Eliminate code duplication
(determineTypeFor:in: now uses returnTypeForSend:, etc).

Eliminate the funky code generation scheme for translated primitive plugins
(MiscPrimitives et al) and use the same inlining and code generation path as
normal plugins.  Finally implement a time stamp checker that looks at the
source method timestamps.

Type some InterpreterProxy methods to generate valid signatures.

...and add type inference support for at: to rescue
inlining in the Klatt plugin.

Add support for type inferrence of simple arithmetic
(+,-,*,/) but *not* >> << et al, so that inlining is still
done for e.g. pointer arithmetic expressions.

Fix a bug in TMethod>>typeFor:in: which was causing
the failure to find the types of global variables.

Change the heuristic for inlining expressions to include a maximum usage count.

Modified Paths:
--------------
    branches/Cog/nscogsrc/plugins/AioPlugin/AioPlugin.c
    branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c
    branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c
    branches/Cog/nscogsrc/plugins/DSAPrims/DSAPrims.c
    branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c
    branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c
    branches/Cog/nscogsrc/plugins/JPEGReaderPlugin/JPEGReaderPlugin.c
    branches/Cog/nscogsrc/plugins/LargeIntegers/LargeIntegers.c
    branches/Cog/nscogsrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
    branches/Cog/nscogsrc/plugins/RePlugin/RePlugin.c
    branches/Cog/nscogsrc/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c
    branches/Cog/nscogsrc/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
    branches/Cog/nscogsrc/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c
    branches/Cog/nscogsrc/plugins/ZipPlugin/ZipPlugin.c
    branches/Cog/nscogsrc/vm/cogit.c
    branches/Cog/nscogsrc/vm/cogit.h
    branches/Cog/nscogsrc/vm/cointerp.c
    branches/Cog/nscogsrc/vm/cointerp.h
    branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
    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/sistasrc/vm/cogit.c
    branches/Cog/sistasrc/vm/cogit.h
    branches/Cog/sistasrc/vm/cointerp.c
    branches/Cog/sistasrc/vm/cointerp.h
    branches/Cog/sistasrc/vm/gcc3x-cointerp.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/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/ADPCMCodecPlugin/ADPCMCodecPlugin.c
    branches/Cog/src/plugins/AioPlugin/AioPlugin.c
    branches/Cog/src/plugins/B2DPlugin/B2DPlugin.c
    branches/Cog/src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
    branches/Cog/src/plugins/BitBltPlugin/BitBltPlugin.c
    branches/Cog/src/plugins/BochsIA32Plugin/BochsIA32Plugin.c
    branches/Cog/src/plugins/CroquetPlugin/CroquetPlugin.c
    branches/Cog/src/plugins/DSAPrims/DSAPrims.c
    branches/Cog/src/plugins/FFTPlugin/FFTPlugin.c
    branches/Cog/src/plugins/FilePlugin/FilePlugin.c
    branches/Cog/src/plugins/GdbARMPlugin/GdbARMPlugin.c
    branches/Cog/src/plugins/GeniePlugin/GeniePlugin.c
    branches/Cog/src/plugins/IA32ABI/IA32ABI.c
    branches/Cog/src/plugins/JPEGReaderPlugin/JPEGReaderPlugin.c
    branches/Cog/src/plugins/LargeIntegers/LargeIntegers.c
    branches/Cog/src/plugins/MIDIPlugin/MIDIPlugin.c
    branches/Cog/src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
    branches/Cog/src/plugins/RePlugin/RePlugin.c
    branches/Cog/src/plugins/ScratchPlugin/ScratchPlugin.c
    branches/Cog/src/plugins/SoundGenerationPlugin/SoundGenerationPlugin.c
    branches/Cog/src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c
    branches/Cog/src/plugins/SqueakFFIPrims/IA32FFIPlugin.c
    branches/Cog/src/plugins/UnicodePlugin/UnicodePlugin.c
    branches/Cog/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c
    branches/Cog/src/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
    branches/Cog/src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c
    branches/Cog/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
    branches/Cog/src/plugins/ZipPlugin/ZipPlugin.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

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

Modified: branches/Cog/nscogsrc/plugins/AioPlugin/AioPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/AioPlugin/AioPlugin.c	2015-02-21 01:44:49 UTC (rev 3259)
+++ branches/Cog/nscogsrc/plugins/AioPlugin/AioPlugin.c	2015-02-21 06:09:27 UTC (rev 3260)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+	VMPluginCodeGenerator VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
    from
 	UnixAioPlugin VMConstruction-Plugins-AioPlugin-eem.17 uuid: a2b39cb2-e681-4bc3-a777-f03b2e3f2de0
  */
@@ -60,7 +60,7 @@
 static sqInt isSQFileObject(sqInt objectPointer);
 static sqInt isSQSocketObject(sqInt objectPointer);
 static sqInt isValidFileSession(sqInt objectPointer);
-EXPORT(sqInt) moduleUnloaded(char *aModuleName);
+EXPORT(void) moduleUnloaded(char *aModuleName);
 EXPORT(sqInt) primitiveAioDisable(void);
 EXPORT(sqInt) primitiveAioEnable(void);
 EXPORT(sqInt) primitiveAioHandle(void);
@@ -71,7 +71,7 @@
 EXPORT(sqInt) primitiveVersionString(void);
 static SESSIONIDENTIFIERTYPE sessionIdentifierFromSqFile(SQFile *sqFile);
 EXPORT(sqInt) setInterpreter(struct VirtualMachine*anInterpreter);
-EXPORT(sqInt) shutdownModule(void);
+EXPORT(void) shutdownModule(void);
 static int socketDescriptorFrom(sqInt sqSocketOop);
 static sqInt socketRecordSize(void);
 static SQSocket * socketValueOf(sqInt anSQSocketRecord);
@@ -310,7 +310,7 @@
 /*	The module with the given name was just unloaded.
 	Make sure we have no dangling references. */
 
-EXPORT(sqInt)
+EXPORT(void)
 moduleUnloaded(char *aModuleName)
 {
 }
@@ -394,7 +394,7 @@
 {
     sqInt exceptionWatch;
     sqInt fd;
-    sqInt flags;
+    usqInt flags;
     sqInt readWatch;
     sqInt writeWatch;
 
@@ -440,7 +440,7 @@
 {
     sqInt exceptionWatch;
     sqInt fd;
-    sqInt flags;
+    usqInt flags;
     sqInt readWatch;
     sqInt writeWatch;
 
@@ -590,7 +590,7 @@
 	return ok;
 }
 
-EXPORT(sqInt)
+EXPORT(void)
 shutdownModule(void)
 {
 }

Modified: branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c	2015-02-21 01:44:49 UTC (rev 3259)
+++ branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c	2015-02-21 06:09:27 UTC (rev 3260)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
+	VMPluginCodeGenerator VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
    from
-	BalloonEnginePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
+	BalloonEnginePlugin VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
  */
-static char __buildInfo[] = "BalloonEnginePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
+static char __buildInfo[] = "BalloonEnginePlugin VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554 " __DATE__ ;
 
 
 
@@ -836,9 +836,9 @@
 static void * loadBBFn;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-	"B2DPlugin VMMaker.oscog-eem.1064 (i)"
+	"B2DPlugin VMMaker.oscog-eem.1072 (i)"
 #else
-	"B2DPlugin VMMaker.oscog-eem.1064 (e)"
+	"B2DPlugin VMMaker.oscog-eem.1072 (e)"
 #endif
 ;
 static int* objBuffer;
@@ -877,7 +877,7 @@
 static sqInt
 aaFirstPixelFromto(sqInt leftX, sqInt rightX)
 {
-    sqInt firstPixel;
+    usqInt firstPixel;
 
 	firstPixel = ((leftX + (workBuffer[GWAALevel])) - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
 	if (firstPixel > rightX) {
@@ -952,8 +952,8 @@
 static sqInt
 absoluteSquared8Dot24(sqInt value)
 {
-    sqInt word1;
-    sqInt word2;
+    usqInt word1;
+    usqInt word2;
 
 	word1 = value & 0xFFFF;
 	word2 = (((usqInt) value >> 16)) & 0xFF;
@@ -1018,7 +1018,7 @@
 {
     sqInt adjustMask;
     sqInt adjustShift;
-    sqInt pixelValue;
+    unsigned int pixelValue;
     sqInt x0;
     sqInt x1;
 
@@ -1596,7 +1596,7 @@
     sqInt r;
     sqInt rShift;
     sqInt someIntegerValue;
-    sqInt value;
+    int value;
 
 	bmDepth = objBuffer[bmFill + GBBitmapDepth];
 	bmRaster = objBuffer[bmFill + GBBitmapRaster];
@@ -1644,7 +1644,7 @@
 		else {
 			/* begin makeUnsignedFrom: */
 			someIntegerValue = (colormapOf(bmFill))[value];
-			value = someIntegerValue;
+			value = ((sqInt) someIntegerValue);
 		}
 	}
 	return uncheckedTransformColor(value);
@@ -1768,7 +1768,7 @@
 static sqInt
 checkCompressedFills(sqInt indexList)
 {
-    sqInt fillIndex;
+    int fillIndex;
     int *fillPtr;
     sqInt i;
     sqInt length;
@@ -2819,7 +2819,7 @@
     sqInt bmRaster1;
     sqInt bmRaster2;
     sqInt bmWidth;
-    sqInt cMask;
+    usqInt cMask;
     sqInt cMask1;
     sqInt cMask2;
     sqInt cMask3;
@@ -2832,7 +2832,7 @@
     sqInt dtX;
     sqInt fillValue;
     sqInt firstPixel;
-    sqInt firstPixel1;
+    usqInt firstPixel1;
     sqInt g;
     sqInt g1;
     sqInt g2;
@@ -2854,9 +2854,9 @@
     sqInt someIntegerValue1;
     sqInt someIntegerValue2;
     sqInt tileFlag;
-    sqInt value;
-    sqInt value1;
-    sqInt value2;
+    int value;
+    int value1;
+    int value2;
     sqInt x;
     sqInt xp;
     sqInt yp;
@@ -3000,7 +3000,7 @@
 				else {
 					/* begin makeUnsignedFrom: */
 					someIntegerValue = (colormapOf(bmFill))[value];
-					value = someIntegerValue;
+					value = ((sqInt) someIntegerValue);
 				}
 			}
 			fillValue = uncheckedTransformColor(value);
@@ -3124,7 +3124,7 @@
 				else {
 					/* begin makeUnsignedFrom: */
 					someIntegerValue1 = (colormapOf(bmFill))[value1];
-					value1 = someIntegerValue1;
+					value1 = ((sqInt) someIntegerValue1);
 				}
 			}
 			fillValue = uncheckedTransformColor(value1);
@@ -3248,7 +3248,7 @@
 				else {
 					/* begin makeUnsignedFrom: */
 					someIntegerValue2 = (colormapOf(bmFill))[value2];
-					value2 = someIntegerValue2;
+					value2 = ((sqInt) someIntegerValue2);
 				}
 			}
 			fillValue = uncheckedTransformColor(value2);
@@ -3278,7 +3278,7 @@
     sqInt bitX;
     sqInt colorMask;
     sqInt colorShift;
-    sqInt fillValue;
+    int fillValue;
     sqInt x;
     sqInt x0;
     sqInt x1;
@@ -3347,7 +3347,7 @@
     sqInt rShift;
     sqInt someIntegerValue;
     sqInt tileFlag;
-    sqInt value;
+    int value;
     sqInt x;
     sqInt x1;
     sqInt xp;
@@ -3480,7 +3480,7 @@
 				else {
 					/* begin makeUnsignedFrom: */
 					someIntegerValue = (colormapOf(bmFill))[value];
-					value = someIntegerValue;
+					value = ((sqInt) someIntegerValue);
 				}
 			}
 			fillValue = uncheckedTransformColor(value);
@@ -3505,9 +3505,9 @@
 {
     sqInt aaLevel;
     sqInt baseShift;
-    sqInt colorMask;
+    usqInt colorMask;
     sqInt firstPixel;
-    sqInt firstPixel1;
+    usqInt firstPixel1;
     sqInt idx;
     sqInt lastPixel;
     sqInt pv32;
@@ -3635,11 +3635,11 @@
 {
     sqInt aaLevel;
     sqInt baseShift;
-    sqInt colorMask;
+    usqInt colorMask;
     sqInt colorShift;
     sqInt ds;
     sqInt firstPixel;
-    sqInt firstPixel1;
+    usqInt firstPixel1;
     sqInt idx;
     sqInt lastPixel;
     sqInt rampIndex;
@@ -3969,12 +3969,12 @@
 {
     sqInt aaLevel;
     sqInt baseShift;
-    sqInt colorMask;
+    usqInt colorMask;
     sqInt colorShift;
-    sqInt ds;
-    sqInt dt;
+    int ds;
+    int dt;
     sqInt firstPixel;
-    sqInt firstPixel1;
+    usqInt firstPixel1;
     sqInt index;
     sqInt lastPixel;
     sqInt length2;
@@ -4099,8 +4099,8 @@
 static sqInt
 fillRadialDecreasingrampdeltaSTdsXdtXfromto(sqInt fill, sqInt ramp, sqInt deltaST, sqInt dsX, sqInt dtX, sqInt leftX, sqInt rightX)
 {
-    sqInt ds;
-    sqInt dt;
+    int ds;
+    int dt;
     sqInt length2;
     sqInt nextLength;
     sqInt rampIndex;
@@ -4157,12 +4157,12 @@
     sqInt deltaX;
     sqInt deltaY;
     sqInt ds;
-    sqInt ds1;
-    sqInt ds2;
+    int ds1;
+    int ds2;
     sqInt dsX;
     sqInt dt;
-    sqInt dt1;
-    sqInt dt2;
+    int dt1;
+    int dt2;
     sqInt dtX;
     sqInt lastLength;
     sqInt length2;
@@ -4365,10 +4365,10 @@
     sqInt baseShift;
     sqInt colorMask;
     sqInt colorShift;
-    sqInt ds;
-    sqInt dt;
+    int ds;
+    int dt;
     sqInt firstPixel;
-    sqInt firstPixel1;
+    usqInt firstPixel1;
     sqInt index;
     sqInt lastLength;
     sqInt lastPixel;
@@ -4502,8 +4502,8 @@
 static sqInt
 fillRadialIncreasingrampdeltaSTdsXdtXfromto(sqInt fill, sqInt ramp, sqInt deltaST, sqInt dsX, sqInt dtX, sqInt leftX, sqInt rightX)
 {
-    sqInt ds;
-    sqInt dt;
+    int ds;
+    int dt;
     sqInt lastLength;
     sqInt length2;
     sqInt nextLength;
@@ -4680,7 +4680,7 @@
 findNextAETEdgeFrom(sqInt leftEdge)
 {
     sqInt depth;
-    sqInt rightEdge;
+    int rightEdge;
 
 	depth = objBuffer[leftEdge + GEZValue];
 	while ((workBuffer[GWAETStart]) < (workBuffer[GWAETUsed])) {
@@ -4703,7 +4703,7 @@
 static sqInt
 findNextExternalEntryFromGET(void)
 {
-    sqInt edge;
+    int edge;
     sqInt type;
     sqInt yValue;
 
@@ -4767,7 +4767,7 @@
     sqInt fill1;
     sqInt leftEdge;
     sqInt leftX;
-    sqInt rightEdge;
+    int rightEdge;
     sqInt rightX;
     sqInt someIntegerValue;
     sqInt someIntegerValue1;
@@ -5008,7 +5008,7 @@
 findNextExternalUpdateFromAET(void)
 {
     sqInt count;
-    sqInt edge;
+    int edge;
     sqInt type;
 
 	while ((workBuffer[GWAETStart]) < (workBuffer[GWAETUsed])) {
@@ -5740,8 +5740,8 @@
     float *transform2;
     float *transform3;
     sqInt x;
-    sqInt x0;
-    sqInt x1;
+    int x0;
+    int x1;
     sqInt x2;
     sqInt x3;
     sqInt x4;
@@ -5750,8 +5750,8 @@
     double  xValue2;
     double  xValue3;
     sqInt y;
-    sqInt y0;
-    sqInt y1;
+    int y0;
+    int y1;
     sqInt y2;
     sqInt y3;
     sqInt y4;
@@ -5912,7 +5912,7 @@
     sqInt x;
     sqInt x0;
     sqInt x1;
-    sqInt x2;
+    int x2;
     sqInt x3;
     sqInt x4;
     sqInt x5;
@@ -5923,7 +5923,7 @@
     sqInt y;
     sqInt y0;
     sqInt y1;
-    sqInt y2;
+    int y2;
     sqInt y3;
     sqInt y4;
     sqInt y5;
@@ -7132,16 +7132,16 @@
 static sqInt
 loadFillOrientationfromalongnormalwidthheight(sqInt fill, int *point1, int *point2, int *point3, sqInt fillWidth, sqInt fillHeight)
 {
-    sqInt dirX;
-    sqInt dirY;
-    sqInt dsLength2;
+    int dirX;
+    int dirY;
+    int dsLength2;
     sqInt dsX;
     sqInt dsY;
-    sqInt dtLength2;
+    int dtLength2;
     sqInt dtX;
     sqInt dtY;
-    sqInt nrmX;
-    sqInt nrmY;
+    int nrmX;
+    int nrmY;
     float *transform;
     float *transform1;
     float *transform2;
@@ -9155,12 +9155,9 @@
 		return primitiveFailFor(GEFBadPoint);
 	}
 	/* begin loadBitmapFill:colormap:tile:from:along:normal:xIndex: */
-	if (tileFlag) {
-		tileFlag1 = 1;
-	}
-	else {
-		tileFlag1 = 0;
-	}
+	tileFlag1 = (tileFlag
+		? 1
+		: 0);
 	/* begin point1Get */
 	point1 = ((int *) (workBuffer + GWPoint1));
 	/* begin point2Get */
@@ -9665,9 +9662,9 @@
     float *transform6;
     float *transform7;
     sqInt x;
-    sqInt x0;
+    int x0;
     short x01;
-    sqInt x1;
+    int x1;
     short x11;
     sqInt x2;
     sqInt x3;
@@ -9685,9 +9682,9 @@
     double  xValue6;
     double  xValue7;
     sqInt y;
-    sqInt y0;
+    int y0;
     short y01;
-    sqInt y1;
+    int y1;
     short y11;
     sqInt y2;
     sqInt y3;
@@ -10422,7 +10419,7 @@
 primitiveDoProfileStats(void)
 {
     sqInt newValue;
-    sqInt oldValue;
+    int oldValue;
 
 	oldValue = doProfileStats;
 	newValue = stackObjectValue(0);
@@ -10865,7 +10862,7 @@
 EXPORT(sqInt)
 primitiveNextActiveEdgeEntry(void)
 {
-    sqInt edge;
+    int edge;
     sqInt edgeOop;
     sqInt failureCode;
     sqInt hasEdge;
@@ -10981,7 +10978,7 @@
 EXPORT(sqInt)
 primitiveNextGlobalEdgeEntry(void)
 {
-    sqInt edge;
+    int edge;
     sqInt edgeOop;
     sqInt failureCode;
     sqInt hasEdge;
@@ -11733,15 +11730,15 @@
 {
     sqInt again;
     sqInt before;
-    sqInt di;
-    sqInt dij;
-    sqInt dj;
+    int di;
+    int dij;
+    int dj;
     sqInt ij;
     sqInt k;
     sqInt l;
     sqInt n;
-    sqInt tmp;
-    sqInt tt;
+    int tmp;
+    int tt;
 
 
 	/* The prefix d means the data at that index. */
@@ -11898,8 +11895,8 @@
 static sqInt
 resortFirstAETEntry(void)
 {
-    sqInt edge;
-    sqInt leftEdge;
+    int edge;
+    int leftEdge;
     sqInt xValue;
 
 	if ((workBuffer[GWAETStart]) == 0) {
@@ -12263,15 +12260,15 @@
     sqInt fwDDx;
     sqInt fwDDy;
     sqInt fwDx;
-    sqInt fwDx1;
+    int fwDx1;
     sqInt fwDy;
-    sqInt fwDy1;
+    int fwDy1;
     sqInt fwX1;
     sqInt fwX2;
     sqInt fwY1;
     sqInt fwY2;
-    sqInt lastX;
-    sqInt lastY;
+    int lastX;
+    int lastY;
     sqInt maxSteps;
     sqInt minY;
     sqInt scaledStepSize;
@@ -12282,8 +12279,8 @@
     int *updateData1;
     sqInt viaX;
     sqInt viaY;
-    sqInt word1;
-    sqInt word2;
+    usqInt word1;
+    usqInt word2;
     sqInt xValue;
 
 
@@ -12685,10 +12682,10 @@
 static sqInt
 stepToNextBezier(void)
 {
-    sqInt fwDx;
-    sqInt fwDy;
-    sqInt lastX;
-    sqInt lastY;
+    int fwDx;
+    int fwDy;
+    int lastX;
+    int lastY;
     sqInt minY;
     int *updateData;
     sqInt xValue;
@@ -12732,10 +12729,10 @@
 static sqInt
 stepToNextBezierForwardat(int *updateData, sqInt yValue)
 {
-    sqInt fwDx;
-    sqInt fwDy;
-    sqInt lastX;
-    sqInt lastY;
+    int fwDx;
+    int fwDy;
+    int lastX;
+    int lastY;
     sqInt minY;
 
 	lastX = updateData[GBUpdateX];
@@ -12769,10 +12766,10 @@
 static sqInt
 stepToNextBezierInat(sqInt bezier, sqInt yValue)
 {
-    sqInt fwDx;
-    sqInt fwDy;
-    sqInt lastX;
-    sqInt lastY;
+    int fwDx;
+    int fwDy;
+    int lastX;
+    int lastY;
     sqInt minY;
     int *updateData;
     sqInt xValue;
@@ -12813,19 +12810,21 @@
 stepToNextLine(void)
 {
     sqInt err;
+    sqInt line;
     sqInt x;
     sqInt yValue;
 
 	/* begin stepToNextLineIn:at: */
+	line = aetBuffer[workBuffer[GWAETStart]];
 	yValue = workBuffer[GWCurrentY];
-	x = (objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEXValue]) + (objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLXIncrement]);
-	err = (objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLError]) + (objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLErrorAdjUp]);
+	x = (objBuffer[line + GEXValue]) + (objBuffer[line + GLXIncrement]);
+	err = (objBuffer[line + GLError]) + (objBuffer[line + GLErrorAdjUp]);
 	if (err > 0) {
-		x += objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLXDirection];
-		err -= objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLErrorAdjDown];
+		x += objBuffer[line + GLXDirection];
+		err -= objBuffer[line + GLErrorAdjDown];
 	}
-	objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLError] = err;
-	objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEXValue] = x;
+	objBuffer[line + GLError] = err;
+	objBuffer[line + GEXValue] = x;
 	return null;
 }
 
@@ -12865,14 +12864,14 @@
 static sqInt
 stepToNextWideBezierInat(sqInt bezier, sqInt yValue)
 {
-    sqInt fwDx;
-    sqInt fwDx1;
-    sqInt fwDy;
-    sqInt fwDy1;
-    sqInt lastX;
-    sqInt lastX1;
-    sqInt lastY;
-    sqInt lastY1;
+    int fwDx;
+    int fwDx1;
+    int fwDy;
+    int fwDy1;
+    int lastX;
+    int lastX1;
+    int lastY;
+    int lastY1;
     sqInt lineOffset;
     sqInt lineWidth;
     sqInt minY;
@@ -12968,6 +12967,7 @@
 {
     sqInt err;
     sqInt lastX;
+    sqInt line;
     sqInt lineOffset;
     sqInt lineWidth;
     sqInt nextX;
@@ -12977,39 +12977,40 @@
     sqInt yValue;
 
 	/* begin stepToNextWideLineIn:at: */
+	line = aetBuffer[workBuffer[GWAETStart]];
 	yValue = workBuffer[GWCurrentY];
-	yEntry = (objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLWideEntry]) + 1;
-	yExit = (objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLWideExit]) + 1;
-	objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLWideEntry] = yEntry;
-	objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLWideExit] = yExit;
-	lineWidth = objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLWideExtent];
+	yEntry = (objBuffer[line + GLWideEntry]) + 1;
+	yExit = (objBuffer[line + GLWideExit]) + 1;
+	objBuffer[line + GLWideEntry] = yEntry;
+	objBuffer[line + GLWideExit] = yExit;
+	lineWidth = objBuffer[line + GLWideExtent];
 	lineOffset = lineWidth / 2;
 	if (yEntry >= lineOffset) {
-		objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEObjectType] = (((objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEObjectType]) & GEPrimitiveTypeMask) & ((unsigned int)~GEEdgeFillsInvalid));
+		objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) & ((unsigned int)~GEEdgeFillsInvalid));
 	}
 	if (yExit >= 0) {
-		objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEObjectType] = (((objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEObjectType]) & GEPrimitiveTypeMask) | GEEdgeFillsInvalid);
+		objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) | GEEdgeFillsInvalid);
 	}
-	lastX = objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEXValue];
+	lastX = objBuffer[line + GEXValue];
 	/* begin stepToNextLineIn:at: */
-	x = (objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEXValue]) + (objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLXIncrement]);
-	err = (objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLError]) + (objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLErrorAdjUp]);
+	x = (objBuffer[line + GEXValue]) + (objBuffer[line + GLXIncrement]);
+	err = (objBuffer[line + GLError]) + (objBuffer[line + GLErrorAdjUp]);
 	if (err > 0) {
-		x += objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLXDirection];
-		err -= objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLErrorAdjDown];
+		x += objBuffer[line + GLXDirection];
+		err -= objBuffer[line + GLErrorAdjDown];
 	}
-	objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLError] = err;
-	objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEXValue] = x;
+	objBuffer[line + GLError] = err;
+	objBuffer[line + GEXValue] = x;
 
 	/* Check for special start/end adjustments */
 
-	nextX = objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEXValue];
+	nextX = objBuffer[line + GEXValue];
 	if ((yEntry <= lineWidth)
 	 || ((yExit + lineOffset) >= 0)) {
 
 		/* Yes, need an update */
 
-		adjustWideLineafterSteppingFromto(aetBuffer[workBuffer[GWAETStart]], lastX, nextX);
+		adjustWideLineafterSteppingFromto(line, lastX, nextX);
 	}
 	return null;
 }
@@ -13128,7 +13129,7 @@
 static sqInt
 storeRenderingState(void)
 {
-    sqInt edge;
+    int edge;
     sqInt edgeOop;
     sqInt fillOop;
     sqInt reason;
@@ -13166,7 +13167,7 @@
 static sqInt
 storeStopStateIntoEdgefill(sqInt edgeOop, sqInt fillOop)
 {
-    sqInt edge;
+    int edge;
     sqInt reason;
 
 	reason = workBuffer[GWStopReason];
@@ -13553,11 +13554,11 @@
 static sqInt
 transformColor(sqInt fillIndex)
 {
-    sqInt a;
+    usqInt a;
     double  alphaScale;
-    sqInt b;
-    sqInt g;
-    sqInt r;
+    usqInt b;
+    usqInt g;
+    usqInt r;
     float *transform;
 
 	if (!((fillIndex == 0)
@@ -13997,10 +13998,10 @@
 static sqInt
 uncheckedTransformColor(sqInt fillIndex)
 {
-    sqInt a;
-    sqInt b;
-    sqInt g;
-    sqInt r;
+    usqInt a;
+    usqInt b;
+    usqInt g;
+    usqInt r;
     float *transform;
 
 	if (!((workBuffer[GWHasColorTransform]) != 0)) {

Modified: branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c	2015-02-21 01:44:49 UTC (rev 3259)
+++ branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c	2015-02-21 06:09:27 UTC (rev 3260)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
+	SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
    from
-	BitBltSimulation VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
+	BitBltSimulation VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
  */
-static char __buildInfo[] = "BitBltSimulation VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
+static char __buildInfo[] = "BitBltSimulation VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554 " __DATE__ ;
 
 
 
@@ -344,9 +344,9 @@
 };
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-	"BitBltPlugin VMMaker.oscog-eem.1064 (i)"
+	"BitBltPlugin VMMaker.oscog-eem.1072 (i)"
 #else
-	"BitBltPlugin VMMaker.oscog-eem.1064 (e)"
+	"BitBltPlugin VMMaker.oscog-eem.1072 (e)"
 #endif
 ;
 static sqInt noHalftone;
@@ -439,21 +439,21 @@
 alphaBlendConstwithpaintMode(unsigned int sourceWord, unsigned int destinationWord, sqInt paintMode)
 {
 	sqInt bitsPerColor;
-	sqInt blend;
+	usqInt blend;
 	unsigned int blendAG;
 	unsigned int blendRB;
-	sqInt destPixVal;
-	sqInt destShifted;
+	unsigned int destPixVal;
+	unsigned int destShifted;
 	sqInt i;
 	sqInt j;
 	sqInt maskShifted;
-	sqInt pixBlend;
-	sqInt pixMask;
+	usqInt pixBlend;
+	int pixMask;
 	unsigned int result;
 	sqInt rgbMask;
 	sqInt shift;
-	sqInt sourcePixVal;
-	sqInt sourceShifted;
+	unsigned int sourcePixVal;
+	unsigned int sourceShifted;
 	unsigned int unAlpha;
 
 	if (destDepth < 16) {
@@ -626,9 +626,9 @@
 	sqInt deltaX;
 	sqInt deltaY;
 	sqInt destWord;
-	sqInt ditherBase;
-	sqInt ditherIndex;
-	sqInt ditherThreshold;
+	usqInt ditherBase;
+	usqInt ditherIndex;
+	int ditherThreshold;
 	sqInt dstIndex;
 	sqInt dstMask;
 	sqInt dstValue;
@@ -637,7 +637,7 @@
 	sqInt sourceWord;
 	sqInt srcAlpha;
 	sqInt srcIndex;
-	sqInt srcShift;
+	usqInt srcShift;
 	sqInt srcY;
 
 
@@ -873,18 +873,18 @@
 static sqInt
 alphaSourceBlendBits8(void)
 {
-	sqInt adjust;
+	usqInt adjust;
 	sqInt deltaX;
 	sqInt deltaY;
 	sqInt destWord;
 	sqInt dstIndex;
-	sqInt dstMask;
+	usqInt dstMask;
 	sqInt dstValue;
 	sqInt dstY;
-	sqInt mapperFlags;
+	usqInt mapperFlags;
 	unsigned int *mappingTable;
 	sqInt pv;
-	sqInt sourceWord;
+	usqInt sourceWord;
 	sqInt srcAlpha;
 	sqInt srcIndex;
 	sqInt srcShift;
@@ -995,7 +995,7 @@
 						pv = cmLookupTable[pv & cmMask];
 					}
 				}
-				sourceWord = pv;
+				sourceWord = ((sqInt) pv);
 
 				/* Store back */
 
@@ -1356,12 +1356,12 @@
 {
 	sqInt done;
 	sqInt dWid;
-	sqInt dxLowBits;
-	sqInt endBits;
+	usqInt dxLowBits;
+	usqInt endBits;
 	sqInt pixPerM1;
 	sqInt pixPerM11;
 	sqInt startBits;
-	sqInt sxLowBits;
+	usqInt sxLowBits;
 	sqInt t;
 
 	copyBitsRule41Test();
@@ -1693,12 +1693,12 @@
 {
 	sqInt done;
 	sqInt dWid;
-	sqInt dxLowBits;
-	sqInt endBits;
+	usqInt dxLowBits;
+	usqInt endBits;
 	sqInt pixPerM1;
 	sqInt pixPerM11;
 	sqInt startBits;
-	sqInt sxLowBits;
+	usqInt sxLowBits;
 	sqInt t;
 
 	
@@ -1996,7 +1996,7 @@
 	sqInt notSkewMask;
 	sqInt prevWord;
 	sqInt skewMask;
-	sqInt skewWord;
+	usqInt skewWord;
 	sqInt thisWord;
 	sqInt unskew;
 	sqInt word;
@@ -2253,20 +2253,20 @@
 static sqInt
 copyLoopPixMap(void)
 {
-	sqInt destPix;
-	sqInt destPixMask;
+	unsigned int destPix;
+	int destPixMask;
 	sqInt destWord;
-	sqInt destWord1;
-	sqInt dstShift;
+	usqInt destWord1;
+	usqInt dstShift;
 	sqInt dstShift1;
 	sqInt dstShiftInc;
 	sqInt dstShiftLeft;
-	sqInt endBits;
+	usqInt endBits;
 	sqInt halftoneWord;
 	sqInt i;
 	sqInt idx;
 	sqInt idx1;
-	sqInt mapperFlags;
+	usqInt mapperFlags;
 	sqInt (*mergeFnwith)(sqInt, sqInt);
 	sqInt mergeWord;
 	sqInt nPix;
@@ -2275,10 +2275,10 @@
 	sqInt pv;
 	sqInt scrStartBits;
 	sqInt skewWord;
-	sqInt sourcePix;
-	sqInt sourcePixMask;
+	usqInt sourcePix;
+	int sourcePixMask;
 	sqInt sourceWord;
-	sqInt srcShift;
+	usqInt srcShift;
 	sqInt srcShift1;
 	sqInt srcShiftInc;
 	sqInt startBits;
@@ -2410,7 +2410,7 @@
 							pv = cmLookupTable[pv & cmMask];
 						}
 					}
-					destPix = pv;
+					destPix = ((sqInt) pv);
 
 					/* adjust dest pix index */
 
@@ -2562,7 +2562,7 @@
 static sqInt
 destMaskAndPointerInit(void)
 {
-	sqInt endBits;
+	usqInt endBits;
 	sqInt pixPerM1;
 	sqInt startBits;
 
@@ -2800,10 +2800,10 @@
 static sqInt
 expensiveDither32To16threshold(sqInt srcWord, sqInt ditherValue)
 {
-	sqInt out;
-	sqInt pv;
-	sqInt threshold;
-	sqInt value;
+	int out;
+	usqInt pv;
+	int threshold;
+	int value;
 
 
 	/* You bet */
@@ -3007,12 +3007,12 @@
 initDither8Lookup(void)
 {
 	sqInt b;
-	sqInt out;
-	sqInt pv;
+	int out;
+	usqInt pv;
 	sqInt t;
-	sqInt threshold;
+	int threshold;
 	sqInt value;
-	sqInt value1;
+	int value1;
 
 	for (b = 0; b <= 0xFF; b += 1) {
 		for (t = 0; t <= 15; t += 1) {
@@ -4005,8 +4005,8 @@
 static sqInt
 OLDrgbDiffwith(sqInt sourceWord, sqInt destinationWord)
 {
-	sqInt diff;
-	sqInt pixMask;
+	usqInt diff;
+	int pixMask;
 
 	if (destDepth < 16) {
 
@@ -4050,16 +4050,17 @@
 	sqInt d;
 	sqInt d1;
 	sqInt d2;
-	sqInt destPix;
-	sqInt destPix1;
-	sqInt destPix2;
+	usqInt destPix;
+	usqInt destPix1;
+	usqInt destPix2;
 	sqInt i;
-	sqInt mapIndex;
+	usqInt mapIndex;
 	sqInt mask;
 	sqInt mask3;
 	sqInt mask4;
-	sqInt pixMask;
+	unsigned int pixMask;
 	sqInt shiftWord;
+	sqInt sourcePixel;
 	sqInt srcPix;
 	sqInt srcPix1;
 	sqInt srcPix2;
@@ -4085,6 +4086,7 @@
 		/* Two pixels  Tally the right half... */
 
 		/* begin rgbMap:from:to: */
+		sourcePixel = destinationWord & 0xFFFF;
 		if (((d = cmBitsPerColor - 5)) > 0) {
 
 			/* Expand to more bits by zero-fill */
@@ -4093,12 +4095,12 @@
 			/* Transfer mask */
 
 			mask = (1 << 5) - 1;
-			srcPix = (destinationWord & 0xFFFF) << d;
+			srcPix = sourcePixel << d;
 			mask = mask << d;
 			destPix = srcPix & mask;
 			mask = mask << cmBitsPerColor;
 			srcPix = srcPix << d;
-			mapIndex = (destPix + (srcPix & mask)) + ((srcPix << d) & (mask << cmBitsPerColor));
+			mapIndex = ((sqInt) ((destPix + (srcPix & mask)) + ((srcPix << d) & (mask << cmBitsPerColor))));
 			goto l1;
 		}
 		else {
@@ -4111,7 +4113,7 @@
 					/* Sometimes called with 16 bits, though pixel is 15,
 					   but we must never return more than 15. */
 
-					mapIndex = (destinationWord & 0xFFFF) & 0x7FFF;
+					mapIndex = ((sqInt) (sourcePixel & 0x7FFF));
 					goto l1;
 				}
 				if (5 == 8) {
@@ -4119,14 +4121,14 @@
 					/* Sometimes called with 32 bits, though pixel is 24,
 					   but we must never return more than 24. */
 
-					mapIndex = (destinationWord & 0xFFFF) & 0xFFFFFF;
+					mapIndex = ((sqInt) (sourcePixel & 0xFFFFFF));
 					goto l1;
 				}
-				mapIndex = destinationWord & 0xFFFF;
+				mapIndex = ((sqInt) sourcePixel);
 				goto l1;
 			}
-			if ((destinationWord & 0xFFFF) == 0) {
-				mapIndex = destinationWord & 0xFFFF;
+			if (sourcePixel == 0) {
+				mapIndex = ((sqInt) sourcePixel);
 				goto l1;
 			}
 			d = 5 - cmBitsPerColor;
@@ -4134,16 +4136,16 @@
 			/* Transfer mask */
 
 			mask = (1 << cmBitsPerColor) - 1;
-			srcPix = ((usqInt) (destinationWord & 0xFFFF)) >> d;
+			srcPix = ((usqInt) sourcePixel) >> d;
 			destPix = srcPix & mask;
 			mask = mask << cmBitsPerColor;
 			srcPix = ((usqInt) srcPix) >> d;
 			destPix = (destPix + (srcPix & mask)) + ((((usqInt) srcPix) >> d) & (mask << cmBitsPerColor));
 			if (destPix == 0) {
-				mapIndex = 1;
+				mapIndex = ((sqInt) 1);
 				goto l1;
 			}
-			mapIndex = destPix;
+			mapIndex = ((sqInt) destPix);
 			goto l1;
 		}
 	l1:	/* end rgbMap:from:to: */;
@@ -4162,7 +4164,7 @@
 			destPix1 = srcPix1 & mask3;
 			mask3 = mask3 << cmBitsPerColor;
 			srcPix1 = srcPix1 << d1;
-			mapIndex = (destPix1 + (srcPix1 & mask3)) + ((srcPix1 << d1) & (mask3 << cmBitsPerColor));
+			mapIndex = ((sqInt) ((destPix1 + (srcPix1 & mask3)) + ((srcPix1 << d1) & (mask3 << cmBitsPerColor))));
 			goto l2;
 		}
 		else {
@@ -4175,7 +4177,7 @@
 					/* Sometimes called with 16 bits, though pixel is 15,
 					   but we must never return more than 15. */
 
-					mapIndex = (((usqInt) destinationWord) >> 16) & 0x7FFF;
+					mapIndex = ((sqInt) ((((usqInt) destinationWord) >> 16) & 0x7FFF));
 					goto l2;
 				}
 				if (5 == 8) {
@@ -4183,14 +4185,14 @@
 					/* Sometimes called with 32 bits, though pixel is 24,
 					   but we must never return more than 24. */
 
-					mapIndex = (((usqInt) destinationWord) >> 16) & 0xFFFFFF;
+					mapIndex = ((sqInt) ((((usqInt) destinationWord) >> 16) & 0xFFFFFF));
 					goto l2;
 				}
-				mapIndex = ((usqInt) destinationWord) >> 16;
+				mapIndex = ((sqInt) (((usqInt) destinationWord) >> 16));
 				goto l2;
 			}
 			if ((((usqInt) destinationWord) >> 16) == 0) {
-				mapIndex = ((usqInt) destinationWord) >> 16;
+				mapIndex = ((sqInt) (((usqInt) destinationWord) >> 16));
 				goto l2;
 			}
 			d1 = 5 - cmBitsPerColor;
@@ -4204,10 +4206,10 @@
 			srcPix1 = ((usqInt) srcPix1) >> d1;
 			destPix1 = (destPix1 + (srcPix1 & mask3)) + ((((usqInt) srcPix1) >> d1) & (mask3 << cmBitsPerColor));
 			if (destPix1 == 0) {
-				mapIndex = 1;
+				mapIndex = ((sqInt) 1);
 				goto l2;
 			}
-			mapIndex = destPix1;
+			mapIndex = ((sqInt) destPix1);
 			goto l2;
 		}
 	l2:	/* end rgbMap:from:to: */;
@@ -4231,7 +4233,7 @@
 			destPix2 = srcPix2 & mask4;
 			mask4 = mask4 << cmBitsPerColor;
 			srcPix2 = srcPix2 << d2;
-			mapIndex = (destPix2 + (srcPix2 & mask4)) + ((srcPix2 << d2) & (mask4 << cmBitsPerColor));
+			mapIndex = ((sqInt) ((destPix2 + (srcPix2 & mask4)) + ((srcPix2 << d2) & (mask4 << cmBitsPerColor))));
 			goto l3;
 		}
 		else {
@@ -4244,7 +4246,7 @@
 					/* Sometimes called with 16 bits, though pixel is 15,
 					   but we must never return more than 15. */
 
-					mapIndex = destinationWord & 0x7FFF;
+					mapIndex = ((sqInt) (destinationWord & 0x7FFF));
 					goto l3;
 				}
 				if (8 == 8) {
@@ -4252,14 +4254,14 @@
 					/* Sometimes called with 32 bits, though pixel is 24,
 					   but we must never return more than 24. */
 
-					mapIndex = destinationWord & 0xFFFFFF;
+					mapIndex = ((sqInt) (destinationWord & 0xFFFFFF));
 					goto l3;
 				}
-				mapIndex = destinationWord;
+				mapIndex = ((sqInt) destinationWord);
 				goto l3;
 			}
 			if (destinationWord == 0) {
-				mapIndex = destinationWord;
+				mapIndex = ((sqInt) destinationWord);
 				goto l3;
 			}
 			d2 = 8 - cmBitsPerColor;
@@ -4273,10 +4275,10 @@
 			srcPix2 = ((usqInt) srcPix2) >> d2;
 			destPix2 = (destPix2 + (srcPix2 & mask4)) + ((((usqInt) srcPix2) >> d2) & (mask4 << cmBitsPerColor));
 			if (destPix2 == 0) {
-				mapIndex = 1;
+				mapIndex = ((sqInt) 1);
 				goto l3;
 			}
-			mapIndex = destPix2;
+			mapIndex = ((sqInt) destPix2);
 			goto l3;
 		}
 	l3:	/* end rgbMap:from:to: */;
@@ -4325,8 +4327,8 @@
 partitionedANDtonBitsnPartitions(sqInt word1, sqInt word2, sqInt nBits, sqInt nParts)
 {
 	sqInt i;
-	sqInt mask;
-	sqInt result;
+	int mask;
+	usqInt result;
 
 
 	/* partition mask starts at the right */
@@ -4422,9 +4424,9 @@
 partitionedMulwithnBitsnPartitions(sqInt word1, sqInt word2, sqInt nBits, sqInt nParts)
 {
 	sqInt dMask;
-	sqInt product;
+	usqInt product;
 	sqInt result;
-	sqInt sMask;
+	int sMask;
 
 
 	/* partition mask starts at the right */
@@ -4457,13 +4459,13 @@
 partitionedRgbComponentAlphadestnBitsnPartitions(sqInt sourceWord, sqInt destWord, sqInt nBits, sqInt nParts)
 {
 	sqInt d;
-	sqInt destPix;
+	usqInt destPix;
 	sqInt i;
-	sqInt mask;
+	int mask;
 	sqInt mask3;
 	sqInt p1;
 	sqInt p2;
-	sqInt result;
+	usqInt result;
 	sqInt srcPix;
 	sqInt v;
 
@@ -4613,12 +4615,12 @@
 performCopyLoop(void)
 {
 	sqInt dWid;
-	sqInt dxLowBits;
-	sqInt endBits;
+	usqInt dxLowBits;
+	usqInt endBits;
 	sqInt pixPerM1;
 	sqInt pixPerM11;
 	sqInt startBits;
-	sqInt sxLowBits;
+	usqInt sxLowBits;
 	sqInt t;
 
 	/* begin destMaskAndPointerInit */
@@ -4776,14 +4778,14 @@
 static sqInt
 pickSourcePixelsflagssrcMaskdestMasksrcShiftIncdstShiftInc(sqInt nPixels, sqInt mapperFlags, sqInt srcMask, sqInt dstMask, sqInt srcShiftInc, sqInt dstShiftInc)
 {
-	sqInt destPix;
-	sqInt destWord;
+	unsigned int destPix;
+	usqInt destWord;
 	sqInt dstShift;
 	sqInt idx;
 	sqInt idx1;
 	sqInt nPix;
 	sqInt pv;
-	sqInt sourcePix;
+	usqInt sourcePix;
 	sqInt sourceWord;
 	sqInt srcShift;
 	sqInt val;
@@ -4858,7 +4860,7 @@
 					pv = cmLookupTable[pv & cmMask];
 				}
 			}
-			destPix = pv;
+			destPix = ((sqInt) pv);
 
 			/* adjust dest pix index */
 
@@ -4895,7 +4897,7 @@
 static sqInt
 pickWarpPixelAtXy(sqInt xx, sqInt yy)
 {
-	sqInt sourcePix;
+	usqInt sourcePix;
 	sqInt sourceWord;
 	sqInt srcIndex;
 	sqInt x;
@@ -4931,10 +4933,10 @@
 pixClearwith(sqInt sourceWord, sqInt destinationWord)
 {
 	sqInt i;
-	sqInt mask;
+	int mask;
 	sqInt nBits;
-	sqInt pv;
-	sqInt result;
+	usqInt pv;
+	usqInt result;
 
 	if (destDepth == 32) {
 		if (sourceWord == destinationWord) {
@@ -4988,7 +4990,7 @@
 	sqInt highMask;
 	sqInt i;
 	sqInt lowMask;
-	sqInt result;
+	usqInt result;
 	sqInt shift;
 
 	if (destPPW == 1) {
@@ -5031,18 +5033,12 @@
 	sqInt val;
 	sqInt _return_value;
 
-	if (BytesPerOop == 4) {
-		colorA = positive32BitValueOf(stackValue(2));
-	}
-	else {
-		colorA = positive64BitValueOf(stackValue(2));
-	}
-	if (BytesPerOop == 4) {
-		colorB = positive32BitValueOf(stackValue(1));
-	}
-	else {
-		colorB = positive64BitValueOf(stackValue(1));
-	}
+	colorA = (BytesPerOop == 4
+		? positive32BitValueOf(stackValue(2))
+		: positive64BitValueOf(stackValue(2)));
+	colorB = (BytesPerOop == 4
+		? positive32BitValueOf(stackValue(1))
+		: positive64BitValueOf(stackValue(1)));
 	testID = stackIntegerValue(0);
 	rcvr = stackValue(3);
 	if (failed()) {
@@ -5140,7 +5136,7 @@
 	sqInt ascii;
 	sqInt bbObj;
 	sqInt charIndex;
-	sqInt endBits;
+	usqInt endBits;
 	sqInt glyphIndex;
 	sqInt glyphMap;
 	sqInt kernDelta;
@@ -5453,7 +5449,7 @@
 	sqInt bitsSize;
 	sqInt depth;
 	sqInt mask;
-	sqInt pixel;
+	usqInt pixel;
 	sqInt ppW;
 	sqInt rcvr;
 	sqInt shift;
@@ -5559,7 +5555,7 @@
 EXPORT(sqInt)
 primitiveWarpBits(void)
 {
-	sqInt endBits;
+	usqInt endBits;
 	sqInt ns;
 	sqInt pixPerM1;
 	sqInt rcvr;
@@ -5742,17 +5738,17 @@
 	sqInt deltaX;
 	sqInt deltaY;
 	sqInt destWord;
-	sqInt ditherBase;
-	sqInt ditherIndex;
-	sqInt ditherThreshold;
+	usqInt ditherBase;
+	usqInt ditherIndex;
+	int ditherThreshold;
 	sqInt dstIndex;
 	sqInt dstMask;
 	sqInt dstValue;
 	sqInt dstY;
 	sqInt sourceWord;
-	sqInt srcAlpha;
+	usqInt srcAlpha;
 	sqInt srcIndex;
-	sqInt srcShift;
+	usqInt srcShift;
 	sqInt srcY;
 
 
@@ -5866,7 +5862,7 @@
 	register long dstIndex;
 	sqInt dstY;
 	register long sourceWord;
-	sqInt srcAlpha;
+	unsigned register long srcAlpha;
 	register long srcIndex;
 	sqInt srcY;
 
@@ -5950,19 +5946,19 @@
 rgbComponentAlpha32with(sqInt sourceWord, sqInt destinationWord)
 {
 	sqInt a;
-	sqInt aA;
-	sqInt aB;
-	sqInt aG;
+	usqInt aA;
+	usqInt aB;
+	usqInt aG;
 	sqInt alpha;
 	sqInt answer;
-	sqInt aR;
+	usqInt aR;
 	sqInt b;
-	sqInt d;
+	usqInt d;
 	sqInt dstMask;
 	sqInt g;
 	sqInt r;
-	sqInt s;
-	sqInt srcAlpha;
+	usqInt s;
+	usqInt srcAlpha;
 	sqInt srcColor;
 
 	alpha = sourceWord;
@@ -6053,19 +6049,19 @@
 static sqInt
 rgbComponentAlpha8(void)
 {
-	sqInt adjust;
+	usqInt adjust;
 	sqInt deltaX;
 	sqInt deltaY;
 	sqInt destWord;
 	sqInt dstIndex;
-	sqInt dstMask;
+	usqInt dstMask;
 	sqInt dstValue;
 	sqInt dstY;
-	sqInt mapperFlags;
+	usqInt mapperFlags;
 	unsigned int *mappingTable;
 	sqInt pv;
-	sqInt sourceWord;
-	sqInt srcAlpha;
+	usqInt sourceWord;
+	usqInt srcAlpha;
 	sqInt srcIndex;
 	sqInt srcShift;
 	sqInt srcY;
@@ -6183,7 +6179,7 @@
 						pv = cmLookupTable[pv & cmMask];
 					}
 				}
-				sourceWord = pv;
+				sourceWord = ((sqInt) pv);
 
 				/* Store back */
 
@@ -6246,13 +6242,13 @@
 {
 	sqInt alpha;
 	sqInt d;
-	sqInt destPix;
+	usqInt destPix;
 	sqInt i;
-	sqInt mask;
+	int mask;
 	sqInt mask3;
 	sqInt p1;
 	sqInt p2;
-	sqInt result;
+	usqInt result;
 	sqInt srcPix;
 	sqInt v;
 
@@ -6363,14 +6359,14 @@
 rgbDiffwith(sqInt sourceWord, sqInt destinationWord)
 {
 	sqInt bitsPerColor;
-	sqInt destPixVal;
+	usqInt destPixVal;
 	sqInt destShifted;
 	sqInt diff;
 	sqInt i;
 	sqInt maskShifted;
-	sqInt pixMask;
+	int pixMask;
 	sqInt rgbMask;
-	sqInt sourcePixVal;
+	usqInt sourcePixVal;
 	sqInt sourceShifted;
 
 	pixMask = maskTable[destDepth];
@@ -6457,7 +6453,7 @@
 rgbMapfromto(sqInt sourcePixel, sqInt nBitsIn, sqInt nBitsOut)
 {
 	sqInt d;
-	sqInt destPix;
+	usqInt destPix;
 	sqInt mask;
 	sqInt srcPix;
 
@@ -6784,9 +6780,9 @@
 sourceSkewAndPointerInit(void)
 {
 	sqInt dWid;
-	sqInt dxLowBits;
+	usqInt dxLowBits;
 	sqInt pixPerM1;
-	sqInt sxLowBits;
+	usqInt sxLowBits;
 
 
 	/* A mask, assuming power of two */
@@ -6871,16 +6867,16 @@
 {
 	sqInt d;
 	sqInt d1;
-	sqInt destPix;
-	sqInt destPix1;
+	usqInt destPix;
+	usqInt destPix1;
 	sqInt destShifted;
 	sqInt i;
-	sqInt mapIndex;
+	usqInt mapIndex;
 	sqInt mask;
 	sqInt mask3;
 	sqInt maskShifted;
-	sqInt pixMask;
-	sqInt pixVal;
+	int pixMask;
+	usqInt pixVal;
 	sqInt srcPix;
 	sqInt srcPix1;
 
@@ -6915,7 +6911,7 @@
 						destPix = srcPix & mask;
 						mask = mask << cmBitsPerColor;
 						srcPix = srcPix << d;
-						mapIndex = (destPix + (srcPix & mask)) + ((srcPix << d) & (mask << cmBitsPerColor));
+						mapIndex = ((sqInt) ((destPix + (srcPix & mask)) + ((srcPix << d) & (mask << cmBitsPerColor))));
 						goto l1;
 					}
 					else {
@@ -6928,7 +6924,7 @@
 								/* Sometimes called with 16 bits, though pixel is 15,
 								   but we must never return more than 15. */
 
-								mapIndex = pixVal & 0x7FFF;
+								mapIndex = ((sqInt) (pixVal & 0x7FFF));
 								goto l1;
 							}
 							if (5 == 8) {
@@ -6936,14 +6932,14 @@
 								/* Sometimes called with 32 bits, though pixel is 24,
 								   but we must never return more than 24. */
 
-								mapIndex = pixVal & 0xFFFFFF;
+								mapIndex = ((sqInt) (pixVal & 0xFFFFFF));
 								goto l1;
 							}
-							mapIndex = pixVal;
+							mapIndex = ((sqInt) pixVal);
 							goto l1;
 						}
 						if (pixVal == 0) {
-							mapIndex = pixVal;
+							mapIndex = ((sqInt) pixVal);
 							goto l1;
 						}
 						d = 5 - cmBitsPerColor;
@@ -6957,10 +6953,10 @@
 						srcPix = ((usqInt) srcPix) >> d;
 						destPix = (destPix + (srcPix & mask)) + ((((usqInt) srcPix) >> d) & (mask << cmBitsPerColor));
 						if (destPix == 0) {
-							mapIndex = 1;
+							mapIndex = ((sqInt) 1);
 							goto l1;
 						}
-						mapIndex = destPix;
+						mapIndex = ((sqInt) destPix);
 						goto l1;
 					}
 				l1:	/* end rgbMap:from:to: */;
@@ -6980,7 +6976,7 @@
 						destPix1 = srcPix1 & mask3;
 						mask3 = mask3 << cmBitsPerColor;
 						srcPix1 = srcPix1 << d1;
-						mapIndex = (destPix1 + (srcPix1 & mask3)) + ((srcPix1 << d1) & (mask3 << cmBitsPerColor));
+						mapIndex = ((sqInt) ((destPix1 + (srcPix1 & mask3)) + ((srcPix1 << d1) & (mask3 << cmBitsPerColor))));
 						goto l2;
 					}
 					else {
@@ -6993,7 +6989,7 @@
 								/* Sometimes called with 16 bits, though pixel is 15,
 								   but we must never return more than 15. */
 
-								mapIndex = pixVal & 0x7FFF;
+								mapIndex = ((sqInt) (pixVal & 0x7FFF));
 								goto l2;
 							}
 							if (8 == 8) {
@@ -7001,14 +6997,14 @@
 								/* Sometimes called with 32 bits, though pixel is 24,
 								   but we must never return more than 24. */
 
-								mapIndex = pixVal & 0xFFFFFF;
+								mapIndex = ((sqInt) (pixVal & 0xFFFFFF));
 								goto l2;
 							}
-							mapIndex = pixVal;
+							mapIndex = ((sqInt) pixVal);
 							goto l2;
 						}
 						if (pixVal == 0) {
-							mapIndex = pixVal;
+							mapIndex = ((sqInt) pixVal);
 							goto l2;
 						}
 						d1 = 8 - cmBitsPerColor;
@@ -7022,10 +7018,10 @@
 						srcPix1 = ((usqInt) srcPix1) >> d1;
 						destPix1 = (destPix1 + (srcPix1 & mask3)) + ((((usqInt) srcPix1) >> d1) & (mask3 << cmBitsPerColor));
 						if (destPix1 == 0) {
-							mapIndex = 1;
+							mapIndex = ((sqInt) 1);
 							goto l2;
 						}
-						mapIndex = destPix1;
+						mapIndex = ((sqInt) destPix1);
 						goto l2;
 					}
 				l2:	/* end rgbMap:from:to: */;
@@ -7185,7 +7181,7 @@
 static sqInt
 warpBits(void)
 {
-	sqInt endBits;
+	usqInt endBits;
 	sqInt ns;
 	sqInt pixPerM1;
 	sqInt startBits;
@@ -7273,13 +7269,13 @@
 	sqInt deltaP12y;
 	sqInt deltaP43x;
 	sqInt deltaP43y;
-	sqInt destPix;
+	unsigned int destPix;
 	sqInt destWord;
-	sqInt destWord1;
-	sqInt dstMask;
+	usqInt destWord1;
+	int dstMask;
 	sqInt dstShiftInc;
 	sqInt dstShiftLeft;
-	sqInt endBits;
+	usqInt endBits;
 	sqInt fieldOop;
 	sqInt fieldOop1;
 	sqInt fieldOop2;
@@ -7299,7 +7295,7 @@
 	sqInt halftoneWord;
 	sqInt i;
 	sqInt i1;
-	sqInt mapperFlags;
+	usqInt mapperFlags;
 	sqInt (*mergeFnwith)(sqInt, sqInt);
 	sqInt mergeWord;
 	sqInt nPix;
@@ -7314,8 +7310,8 @@
 	sqInt smoothingCount;
 	sqInt sourceMapOop;
 	sqInt sourcePix;
-	sqInt sourcePix1;
-	sqInt sourcePix2;
+	usqInt sourcePix1;
+	usqInt sourcePix2;
 	sqInt sourceWord;
 	sqInt sourceWord1;
 	sqInt srcIndex;
@@ -7773,7 +7769,7 @@
 								pv = cmLookupTable[pv & cmMask];
 							}
 						}
-						destPix = pv;
+						destPix = ((sqInt) pv);
 						destWord1 = destWord1 | ((destPix & dstMask) << dstBitShift);
 						dstBitShift += dstShiftInc;
 						sx += xDelta;
@@ -7884,8 +7880,8 @@
 {
 	sqInt a;
 	sqInt b;
-	sqInt destWord;
-	sqInt dstMask;
+	usqInt destWord;
+	int dstMask;
 	sqInt g;
 	sqInt i;
 	sqInt j;
@@ -7894,7 +7890,7 @@
 	sqInt pv;
 	sqInt r;
 	sqInt rgb;
-	sqInt sourcePix;
+	usqInt sourcePix;
 	sqInt sourceWord;
 	sqInt srcIndex;
 	sqInt val;
@@ -8073,14 +8069,14 @@
 static sqInt
 warpPickSourcePixelsxDeltahyDeltahxDeltavyDeltavdstShiftIncflags(sqInt nPixels, sqInt xDeltah, sqInt yDeltah, sqInt xDeltav, sqInt yDeltav, sqInt dstShiftInc, sqInt mapperFlags)
 {
-	sqInt destPix;
-	sqInt destWord;
-	sqInt dstMask;
+	unsigned int destPix;
+	usqInt destWord;
+	int dstMask;
 	sqInt nPix;
 	sqInt pv;
 	sqInt sourcePix;
-	sqInt sourcePix1;
-	sqInt sourcePix2;
+	usqInt sourcePix1;
+	usqInt sourcePix2;
 	sqInt sourceWord;
 	sqInt sourceWord1;
 	sqInt srcIndex;
@@ -8167,7 +8163,7 @@
 					pv = cmLookupTable[pv & cmMask];
 				}
 			}
-			destPix = pv;
+			destPix = ((sqInt) pv);
 			destWord = destWord | ((destPix & dstMask) << dstBitShift);
 			dstBitShift += dstShiftInc;
 			sx += xDeltah;

Modified: branches/Cog/nscogsrc/plugins/DSAPrims/DSAPrims.c
===================================================================
--- branches/Cog/nscogsrc/plugins/DSAPrims/DSAPrims.c	2015-02-21 01:44:49 UTC (rev 3259)
+++ branches/Cog/nscogsrc/plugins/DSAPrims/DSAPrims.c	2015-02-21 06:09:27 UTC (rev 3260)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	VMPluginCodeGenerator VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
+	VMPluginCodeGenerator VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
    from
-	DSAPlugin VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
+	DSAPlugin VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
  */
-static char __buildInfo[] = "DSAPlugin VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a " __DATE__ ;
+static char __buildInfo[] = "DSAPlugin VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554 " __DATE__ ;
 
 
 
@@ -91,9 +91,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-	"DSAPrims VMMaker.oscog-eem.990 (i)"
+	"DSAPrims VMMaker.oscog-eem.1072 (i)"
 #else
-	"DSAPrims VMMaker.oscog-eem.990 (e)"
+	"DSAPrims VMMaker.oscog-eem.1072 (e)"
 #endif
 ;
 static sqInt remainderDigitCount;
@@ -146,10 +146,10 @@
 {
     sqInt borrow;
     sqInt carry;
-    sqInt d1;
-    sqInt d2;
+    unsigned char d1;
+    unsigned char d2;
     sqInt digitShift;
-    sqInt firstDigit;
+    unsigned char firstDigit;
     sqInt firstTwoDigits;
     sqInt i;
     sqInt i1;
@@ -161,7 +161,7 @@
     sqInt rIndex;
     sqInt rIndex1;
     sqInt sum;
-    sqInt thirdDigit;
+    unsigned char thirdDigit;
 
 	d1 = dsaDivisor[divisorDigitCount];
 	d2 = dsaDivisor[divisorDigitCount - 1];
@@ -282,11 +282,11 @@
 {
     sqInt borrow;
     sqInt carry;
-    sqInt d1;
-    sqInt d2;
+    unsigned char d1;
+    unsigned char d2;
     sqInt digitShift;
     sqInt div;
-    sqInt firstDigit;
+    unsigned char firstDigit;
     sqInt firstTwoDigits;
     sqInt i;
     sqInt i1;
@@ -300,7 +300,7 @@
     sqInt rIndex;
     sqInt rIndex1;
     sqInt sum;
-    sqInt thirdDigit;
+    unsigned char thirdDigit;
 
 	quo = stackObjectValue(0);
 	div = stackObjectValue(1);
@@ -419,7 +419,7 @@
 primitiveBigMultiply(void)
 {
     sqInt carry;
-    sqInt digit;
+    unsigned char digit;
     sqInt f1;
     sqInt f1Len;
     unsigned char *f1Ptr;
@@ -529,13 +529,13 @@
 EXPORT(sqInt)
 primitiveHashBlock(void)
 {
-    sqInt a;
-    sqInt b;
+    unsigned int a;
+    unsigned int b;
     sqInt buf;
     unsigned int *bufPtr;
-    sqInt c;
-    sqInt d;
-    sqInt e;
+    unsigned int c;
+    unsigned int d;
+    unsigned int e;
     sqInt i;
     sqInt state;
     unsigned int *statePtr;

Modified: branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c	2015-02-21 01:44:49 UTC (rev 3259)
+++ branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c	2015-02-21 06:09:27 UTC (rev 3260)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
+	VMPluginCodeGenerator VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
    from
-	FilePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
+	FilePlugin VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
  */
-static char __buildInfo[] = "FilePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
+static char __buildInfo[] = "FilePlugin VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554 " __DATE__ ;
 
 
 
@@ -177,9 +177,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-	"FilePlugin VMMaker.oscog-eem.1064 (i)"
+	"FilePlugin VMMaker.oscog-eem.1072 (i)"
 #else
-	"FilePlugin VMMaker.oscog-eem.1064 (e)"
+	"FilePlugin VMMaker.oscog-eem.1072 (e)"
 #endif
 ;
 static void * sCCPfn;
@@ -853,12 +853,9 @@
 		 || (!(isWordsOrBytes(array)))) {
 			return primitiveFailFor(PrimErrBadArgument);
 		}
-		if (isWords(array)) {
-			elementSize = 4;
-		}
-		else {
-			elementSize = 1;
-		}
+		elementSize = (isWords(array)
+			? 4
+			: 1);
 		if (!((startIndex >= 1)
 			 && (((startIndex + count) - 1) <= (slotSizeOf(array))))) {
 			return primitiveFailFor(PrimErrBadIndex);
@@ -1083,12 +1080,9 @@
 	 || (!(isWordsOrBytes(array)))) {
 		return primitiveFailFor(PrimErrBadArgument);
 	}
-	if (isWords(array)) {
-		elementSize = 4;
-	}
-	else {
-		elementSize = 1;
-	}
+	elementSize = (isWords(array)
+		? 4
+		: 1);
 	if (!((startIndex >= 1)
 		 && (((startIndex + count) - 1) <= (slotSizeOf(array))))) {
 		return primitiveFailFor(PrimErrBadIndex);

Modified: branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c
===================================================================
--- branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c	2015-02-21 01:44:49 UTC (rev 3259)
+++ branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c	2015-02-21 06:09:27 UTC (rev 3260)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
+	VMPluginCodeGenerator VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
    from
-	NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
+	NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554
  */
-static char __buildInfo[] = "NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
+static char __buildInfo[] = "NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1072 uuid: bd9d8dd5-dea0-49da-8be7-cb246f49f554 " __DATE__ ;
 
 
 
@@ -223,9 +223,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-	"IA32ABI VMMaker.oscog-eem.1064 (i)"
+	"IA32ABI VMMaker.oscog-eem.1072 (i)"
 #else
-	"IA32ABI VMMaker.oscog-eem.1064 (e)"
+	"IA32ABI VMMaker.oscog-eem.1072 (e)"
 #endif
 ;
 
@@ -288,12 +288,9 @@
 
 	rcvr = stackValue(0);
 	value = longAt((rcvr + BaseHeaderSize) + BytesPerOop);
-	if (BytesPerWord == 8) {
-		valueOop = positive64BitIntegerFor(value);
-	}
-	else {
-		valueOop = positive32BitIntegerFor(value);
-	}
+	valueOop = (BytesPerWord == 8
+		? positive64BitIntegerFor(value)
+		: positive32BitIntegerFor(value));
 	return methodReturnValue(valueOop);
 }
 
@@ -707,9 +704,9 @@
 		 || (((((usqInt)byteOffset)) + 8) <= (abs(dataSize))))) {
 		return primitiveFailFor(PrimErrBadIndex);
 	}
-	if ((((longAt(rcvr + BaseHeaderSize)) > 0
-	? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
-	: (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+	if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
+	? (rcvr + BaseHeaderSize) + BytesPerOop
+	: longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
 		return primitiveFailFor(PrimErrBadReceiver);
 	}
 	addr = startAddr + byteOffset;
@@ -755,9 +752,9 @@
 	if (isOopImmutable(rcvr)) {
 		return primitiveFailFor(PrimErrNoModification);
 	}
-	if ((((longAt(rcvr + BaseHeaderSize)) > 0
-	? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
-	: (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+	if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
+	? (rcvr + BaseHeaderSize) + BytesPerOop
+	: longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
 		return primitiveFailFor(PrimErrBadReceiver);
 	}
 	addr = startAddr + byteOffset;
@@ -796,9 +793,9 @@
 		 || (((((usqInt)byteOffset)) + 4) <= (abs(dataSize))))) {
 		return primitiveFailFor(PrimErrBadIndex);
 	}
-	if ((((longAt(rcvr + BaseHeaderSize)) > 0
-	? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
-	: (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+	if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
+	? (rcvr + BaseHeaderSize) + BytesPerOop
+	: longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
 		return primitiveFailFor(PrimErrBadReceiver);
 	}
 	addr = startAddr + byteOffset;
@@ -844,9 +841,9 @@
 	if (isOopImmutable(rcvr)) {
 		return primitiveFailFor(PrimErrNoModification);
 	}
-	if ((((longAt(rcvr + BaseHeaderSize)) > 0
-	? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
-	: (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+	if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
+	? (rcvr + BaseHeaderSize) + BytesPerOop
+	: longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
 		return primitiveFailFor(PrimErrBadReceiver);
 	}
 	addr = startAddr + byteOffset;
@@ -1089,9 +1086,9 @@
 		 || (((((usqInt)byteOffset)) + 1) <= (abs(dataSize))))) {
 		return primitiveFailFor(PrimErrBadIndex);
 	}
-	if ((((longAt(rcvr + BaseHeaderSize)) > 0
-	? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
-	: (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+	if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
+	? (rcvr + BaseHeaderSize) + BytesPerOop
+	: longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
 		return primitiveFailFor(PrimErrBadReceiver);
 	}
 	addr = startAddr + byteOffset;
@@ -1134,9 +1131,9 @@
 	if (isOopImmutable(rcvr)) {
 		return primitiveFailFor(PrimErrNoModification);
 	}
-	if ((((longAt(rcvr + BaseHeaderSize)) > 0
-	? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
-	: (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+	if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
+	? (rcvr + BaseHeaderSize) + BytesPerOop
+	: longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
 		return primitiveFailFor(PrimErrBadReceiver);
 	}
 	addr = startAddr + byteOffset;
@@ -1171,9 +1168,9 @@
 		 || (((((usqInt)byteOffset)) + 4) <= (abs(dataSize))))) {
 		return primitiveFailFor(PrimErrBadIndex);
 	}
-	if ((((longAt(rcvr + BaseHeaderSize)) > 0
-	? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
-	: (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+	if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
+	? (rcvr + BaseHeaderSize) + BytesPerOop

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list