[commit][3190] CogVM source as per VMMaker.oscog-eem.991

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

[commit][3190] CogVM source as per VMMaker.oscog-eem.991

commits-3
 
Revision: 3190
Author:   eliot
Date:     2014-12-17 14:30:32 -0800 (Wed, 17 Dec 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.991

Fix bitInvert32 for 64-bits.  Now window border
colours are correct in the 64-bit Spur Stack linux VM.

Cast a left shift to long if in the 64-bit interpreter code.

Fix printFreeListHeads

Update the ScratchPlugin bilinear scaling prim to include the correct alpha channel value for non-transparent output pixels.

Add boundary cases for isSmallFloatValue:
Fix isSmallFloatValue: for the low boundary case.

Fix generateIsIntegerObject:on:indent: for 64-bit Spur.

Make primitiveFloatAt support immedate floats.

Fix the regression of breakmnu (breakSelectorLength must be initialized early).

Make shortPrintOop: print immediate floats.

Double the stack page size for 64-bits.

No longer build or upload the Newspeak V3 VMs, now superceded by Spur.

Modified Paths:
--------------
    branches/Cog/build.linux32ARM/makeproduct
    branches/Cog/build.linux32x86/makeproduct
    branches/Cog/build.macos32x86/makeproduct
    branches/Cog/build.win32x86/makeproduct
    branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c
    branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c
    branches/Cog/nscogsrc/plugins/DSAPrims/DSAPrims.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/scripts/mkcogvmarchives
    branches/Cog/scripts/uploadvms
    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/B2DPlugin/B2DPlugin.c
    branches/Cog/src/plugins/BitBltPlugin/BitBltPlugin.c
    branches/Cog/src/plugins/DSAPrims/DSAPrims.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/build.linux32ARM/makeproduct
===================================================================
--- branches/Cog/build.linux32ARM/makeproduct 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/build.linux32ARM/makeproduct 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,6 +1,6 @@
 #!/bin/bash
 trap 'exit 2' HUP INT PIPE TERM
-for d in newspeak.cog.spur newspeak.cog.spur squeak.cog.spur squeak.cog.v3; do
+for d in newspeak.cog.spur squeak.cog.spur squeak.cog.v3; do
  if test -d "$d"; then
  (cd $d;./makeallclean "$@")
  else

Modified: branches/Cog/build.linux32x86/makeproduct
===================================================================
--- branches/Cog/build.linux32x86/makeproduct 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/build.linux32x86/makeproduct 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,6 +1,6 @@
 #!/bin/bash
 trap 'exit 2' HUP INT PIPE TERM
-for d in newspeak.cog.spur newspeak.cog.v3 squeak.cog.spur squeak.cog.v3; do
+for d in newspeak.cog.spur squeak.cog.spur squeak.cog.v3; do
  if test -d "$d"; then
  (cd $d;./makeallclean "$@")
  else

Modified: branches/Cog/build.macos32x86/makeproduct
===================================================================
--- branches/Cog/build.macos32x86/makeproduct 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/build.macos32x86/makeproduct 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,6 +1,6 @@
 #!/bin/bash
 trap 'exit 2' HUP INT PIPE TERM
-PRODUCTDIRS="newspeak.cog.spur newspeak.cog.v3 squeak.cog.spur squeak.cog.v3"
+PRODUCTDIRS="newspeak.cog.spur squeak.cog.spur squeak.cog.v3"
 for d in $PRODUCTDIRS; do
  if test -d "$d"; then
  (cd $d;./mvm -A)

Modified: branches/Cog/build.win32x86/makeproduct
===================================================================
--- branches/Cog/build.win32x86/makeproduct 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/build.win32x86/makeproduct 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,6 +1,6 @@
 #!/bin/bash
 trap 'exit 2' HUP INT PIPE TERM
-for d in newspeak.cog.spur newspeak.cog.v3 squeak.cog.spur squeak.cog.v3; do
+for d in newspeak.cog.spur squeak.cog.spur squeak.cog.v3; do
  if test -d "$d"; then
  (cd $d;./mvm)
  else

Modified: branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ VMPluginCodeGenerator VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
    from
- BalloonEnginePlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ BalloonEnginePlugin VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
  */
-static char __buildInfo[] = "BalloonEnginePlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d " __DATE__ ;
+static char __buildInfo[] = "BalloonEnginePlugin VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a " __DATE__ ;
 
 
 
@@ -836,9 +836,9 @@
 static void * loadBBFn;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "B2DPlugin VMMaker.oscog-eem.983 (i)"
+ "B2DPlugin VMMaker.oscog-eem.990 (i)"
 #else
- "B2DPlugin VMMaker.oscog-eem.983 (e)"
+ "B2DPlugin VMMaker.oscog-eem.990 (e)"
 #endif
 ;
 static int* objBuffer;
@@ -879,7 +879,7 @@
 {
     sqInt firstPixel;
 
- firstPixel = ((leftX + (workBuffer[GWAALevel])) - 1) & (~((workBuffer[GWAALevel]) - 1));
+ firstPixel = ((leftX + (workBuffer[GWAALevel])) - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  if (firstPixel > rightX) {
  return rightX;
  }
@@ -906,7 +906,7 @@
 static sqInt
 aaLastPixelFromto(sqInt leftX, sqInt rightX)
 {
- return (rightX - 1) & (~((workBuffer[GWAALevel]) - 1));
+ return (rightX - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
 }
 
 static sqInt
@@ -1023,7 +1023,7 @@
     sqInt x1;
 
  adjustShift = 8 - (workBuffer[GWAAColorShift]);
- adjustMask = ~(workBuffer[GWAAColorMask]);
+ adjustMask = (unsigned int)~(workBuffer[GWAAColorMask]);
  x0 = ((usqInt) (workBuffer[GWSpanStart])) >> (workBuffer[GWAAShift]);
  x1 = ((usqInt) (workBuffer[GWSpanEnd])) >> (workBuffer[GWAAShift]);
  while (x0 < x1) {
@@ -2567,7 +2567,7 @@
 static sqInt
 edgeFillsValidate(sqInt edge)
 {
- return objBuffer[edge + GEObjectType] = (((objBuffer[edge + GEObjectType]) & GEPrimitiveTypeMask) & (~GEEdgeFillsInvalid));
+ return objBuffer[edge + GEObjectType] = (((objBuffer[edge + GEObjectType]) & GEPrimitiveTypeMask) & ((unsigned int)~GEEdgeFillsInvalid));
 }
 
 static sqInt
@@ -2876,7 +2876,7 @@
  dt = (deltaX * dtX) + (deltaY * (objBuffer[bmFill + GFNormalY]));
  aaLevel = workBuffer[GWAALevel];
  /* begin aaFirstPixelFrom:to: */
- firstPixel1 = ((leftX + (workBuffer[GWAALevel])) - 1) & (~((workBuffer[GWAALevel]) - 1));
+ firstPixel1 = ((leftX + (workBuffer[GWAALevel])) - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  if (firstPixel1 > rightX) {
  firstPixel = rightX;
  goto l10;
@@ -2886,7 +2886,7 @@
  goto l10;
  }
 l10: /* end aaFirstPixelFrom:to: */;
- lastPixel = (rightX - 1) & (~((workBuffer[GWAALevel]) - 1));
+ lastPixel = (rightX - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  baseShift = workBuffer[GWAAShift];
  cMask = workBuffer[GWAAColorMask];
  cShift = workBuffer[GWAAColorShift];
@@ -3518,7 +3518,7 @@
  /* Compute the pixel boundaries. */
 
  /* begin aaFirstPixelFrom:to: */
- firstPixel1 = ((leftX + (workBuffer[GWAALevel])) - 1) & (~((workBuffer[GWAALevel]) - 1));
+ firstPixel1 = ((leftX + (workBuffer[GWAALevel])) - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  if (firstPixel1 > rightX) {
  firstPixel = rightX;
  goto l1;
@@ -3528,7 +3528,7 @@
  goto l1;
  }
 l1: /* end aaFirstPixelFrom:to: */;
- lastPixel = (rightX - 1) & (~((workBuffer[GWAALevel]) - 1));
+ lastPixel = (rightX - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  aaLevel = workBuffer[GWAALevel];
  baseShift = workBuffer[GWAAShift];
 
@@ -3654,7 +3654,7 @@
  x = leftX;
  rampIndex = ds / 65536;
  /* begin aaFirstPixelFrom:to: */
- firstPixel1 = ((leftX + (workBuffer[GWAALevel])) - 1) & (~((workBuffer[GWAALevel]) - 1));
+ firstPixel1 = ((leftX + (workBuffer[GWAALevel])) - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  if (firstPixel1 > rightX) {
  firstPixel = rightX;
  goto l1;
@@ -3667,7 +3667,7 @@
 
  /* Deal with the first n sub-pixels */
 
- lastPixel = (rightX - 1) & (~((workBuffer[GWAALevel]) - 1));
+ lastPixel = (rightX - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  colorMask = workBuffer[GWAAColorMask];
  colorShift = workBuffer[GWAAColorShift];
  while ((x < firstPixel)
@@ -3996,7 +3996,7 @@
  x1 = rightX;
  }
  /* begin aaFirstPixelFrom:to: */
- firstPixel1 = ((leftX + (workBuffer[GWAALevel])) - 1) & (~((workBuffer[GWAALevel]) - 1));
+ firstPixel1 = ((leftX + (workBuffer[GWAALevel])) - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  if (firstPixel1 > x1) {
  firstPixel = x1;
  goto l1;
@@ -4009,7 +4009,7 @@
 
  /* Deal with the first n sub-pixels */
 
- lastPixel = (x1 - 1) & (~((workBuffer[GWAALevel]) - 1));
+ lastPixel = (x1 - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  if (x < firstPixel) {
  colorMask = workBuffer[GWAAColorMask];
  colorShift = workBuffer[GWAAColorShift];
@@ -4393,7 +4393,7 @@
  lastLength = ((ds / 65536) * (ds / 65536)) + ((dt / 65536) * (dt / 65536));
  x = leftX;
  /* begin aaFirstPixelFrom:to: */
- firstPixel1 = ((leftX + (workBuffer[GWAALevel])) - 1) & (~((workBuffer[GWAALevel]) - 1));
+ firstPixel1 = ((leftX + (workBuffer[GWAALevel])) - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  if (firstPixel1 > rightX) {
  firstPixel = rightX;
  goto l1;
@@ -4406,7 +4406,7 @@
 
  /* Deal with the first n subPixels */
 
- lastPixel = (rightX - 1) & (~((workBuffer[GWAALevel]) - 1));
+ lastPixel = (rightX - 1) & ((unsigned int)~((workBuffer[GWAALevel]) - 1));
  if ((x < firstPixel)
  && (lastLength < length2)) {
  colorMask = workBuffer[GWAAColorMask];
@@ -12541,7 +12541,7 @@
  objBuffer[bezier + GBWideExit] = yExit;
  if ((yEntry >= lineOffset)
  && (yExit < 0)) {
- objBuffer[bezier + GEObjectType] = (((objBuffer[bezier + GEObjectType]) & GEPrimitiveTypeMask) & (~GEEdgeFillsInvalid));
+ objBuffer[bezier + GEObjectType] = (((objBuffer[bezier + GEObjectType]) & GEPrimitiveTypeMask) & ((unsigned int)~GEEdgeFillsInvalid));
  }
  else {
  objBuffer[bezier + GEObjectType] = (((objBuffer[bezier + GEObjectType]) & GEPrimitiveTypeMask) | GEEdgeFillsInvalid);
@@ -12630,7 +12630,7 @@
  objBuffer[line + GLWideExit] = yExit;
  if ((yEntry >= lineOffset)
  && (yExit < 0)) {
- objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) & (~GEEdgeFillsInvalid));
+ objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) & ((unsigned int)~GEEdgeFillsInvalid));
  }
  else {
  objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) | GEEdgeFillsInvalid);
@@ -12645,7 +12645,7 @@
  lineWidth1 = objBuffer[line + GLWideExtent];
  lineOffset1 = lineWidth1 / 2;
  if (yEntry1 >= lineOffset1) {
- objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) & (~GEEdgeFillsInvalid));
+ objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) & ((unsigned int)~GEEdgeFillsInvalid));
  }
  if (yExit1 >= 0) {
  objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) | GEEdgeFillsInvalid);
@@ -12889,7 +12889,7 @@
  objBuffer[bezier + GBWideEntry] = yEntry;
  objBuffer[bezier + GBWideExit] = yExit;
  if (yEntry >= lineOffset) {
- objBuffer[bezier + GEObjectType] = (((objBuffer[bezier + GEObjectType]) & GEPrimitiveTypeMask) & (~GEEdgeFillsInvalid));
+ objBuffer[bezier + GEObjectType] = (((objBuffer[bezier + GEObjectType]) & GEPrimitiveTypeMask) & ((unsigned int)~GEEdgeFillsInvalid));
  }
  if (yExit >= 0) {
  objBuffer[bezier + GEObjectType] = (((objBuffer[bezier + GEObjectType]) & GEPrimitiveTypeMask) | GEEdgeFillsInvalid);
@@ -12982,7 +12982,7 @@
  lineWidth = objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GLWideExtent];
  lineOffset = lineWidth / 2;
  if (yEntry >= lineOffset) {
- objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEObjectType] = (((objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEObjectType]) & GEPrimitiveTypeMask) & (~GEEdgeFillsInvalid));
+ objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEObjectType] = (((objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEObjectType]) & GEPrimitiveTypeMask) & ((unsigned int)~GEEdgeFillsInvalid));
  }
  if (yExit >= 0) {
  objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEObjectType] = (((objBuffer[(aetBuffer[workBuffer[GWAETStart]]) + GEObjectType]) & GEPrimitiveTypeMask) | GEEdgeFillsInvalid);
@@ -13036,7 +13036,7 @@
  lineWidth = objBuffer[line + GLWideExtent];
  lineOffset = lineWidth / 2;
  if (yEntry >= lineOffset) {
- objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) & (~GEEdgeFillsInvalid));
+ objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) & ((unsigned int)~GEEdgeFillsInvalid));
  }
  if (yExit >= 0) {
  objBuffer[line + GEObjectType] = (((objBuffer[line + GEObjectType]) & GEPrimitiveTypeMask) | GEEdgeFillsInvalid);

Modified: branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
    from
- BitBltSimulation VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ BitBltSimulation VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
  */
-static char __buildInfo[] = "BitBltSimulation VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d " __DATE__ ;
+static char __buildInfo[] = "BitBltSimulation VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a " __DATE__ ;
 
 
 
@@ -342,9 +342,9 @@
 };
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "BitBltPlugin VMMaker.oscog-eem.983 (i)"
+ "BitBltPlugin VMMaker.oscog-eem.990 (i)"
 #else
- "BitBltPlugin VMMaker.oscog-eem.983 (e)"
+ "BitBltPlugin VMMaker.oscog-eem.990 (e)"
 #endif
 ;
 static sqInt noHalftone;
@@ -501,7 +501,7 @@
  blend = ((((((((usqInt) sourcePixVal) >> shift) & rgbMask) * sourceAlpha) + (((((usqInt) destPixVal) >> shift) & rgbMask) * unAlpha)) + 0xFE) / 0xFF) & rgbMask;
  pixBlend = pixBlend | (blend << shift);
  }
- result = (result & (~(pixMask << ((j - 1) * 16)))) | (pixBlend << ((j - 1) * 16));
+ result = (result & ((unsigned int)~(pixMask << ((j - 1) * 16)))) | (pixBlend << ((j - 1) * 16));
  }
  maskShifted = ((usqInt) maskShifted) >> destDepth;
  sourceShifted = ((usqInt) sourceShifted) >> destDepth;
@@ -707,7 +707,7 @@
  /* If we have to mix colors then just copy a single word */
 
  destWord = long32At(dstIndex);
- destWord = destWord & (~dstMask);
+ destWord = destWord & ((unsigned int)~dstMask);
 
  /* Expand from 16 to 32 bit by adding zero bits */
 
@@ -751,7 +751,7 @@
  /* Toggle between 0 and 16 */
 
  srcShift = srcShift ^ 16;
- dstMask = ~dstMask;
+ dstMask = (unsigned int)~dstMask;
  }
  srcY += 1;
  dstY += 1;
@@ -924,7 +924,7 @@
 
  /* begin default8To32Table */
  mappingTable = theTable;
- mapperFlags = cmFlags & (~ColorMapNewStyle);
+ mapperFlags = cmFlags & ((unsigned int)~ColorMapNewStyle);
 
  /* So we can pre-decrement */
 
@@ -959,7 +959,7 @@
 
  dstMask = mask2;
  while (((deltaX -= 1)) != 0) {
- sourceWord = ((long32At(srcIndex)) & (~adjust)) + adjust;
+ sourceWord = ((long32At(srcIndex)) & ((unsigned int)~adjust)) + adjust;
  srcAlpha = ((usqInt) sourceWord) >> 24;
  if (srcAlpha > 0x1F) {
 
@@ -970,7 +970,7 @@
  /* Everything above 224 is opaque */
 
  destWord = long32At(dstIndex);
- destWord = destWord & (~dstMask);
+ destWord = destWord & ((unsigned int)~dstMask);
  destWord = ((usqInt) destWord) >> srcShift;
  destWord = mappingTable[destWord];
  sourceWord = alphaBlendScaledwith(sourceWord, destWord);
@@ -1037,7 +1037,7 @@
 static sqInt
 bitAndInvertwith(sqInt sourceWord, sqInt destinationWord)
 {
- return sourceWord & (~destinationWord);
+ return sourceWord & ((unsigned int)~destinationWord);
 }
 
 static sqInt
@@ -1049,49 +1049,49 @@
 static sqInt
 bitInvertAndInvertwith(sqInt sourceWord, sqInt destinationWord)
 {
- return (~sourceWord) & (~destinationWord);
+ return ((unsigned int)~sourceWord) & ((unsigned int)~destinationWord);
 }
 
 static sqInt
 bitInvertAndwith(sqInt sourceWord, sqInt destinationWord)
 {
- return (~sourceWord) & destinationWord;
+ return ((unsigned int)~sourceWord) & destinationWord;
 }
 
 static sqInt
 bitInvertDestinationwith(sqInt sourceWord, sqInt destinationWord)
 {
- return ~destinationWord;
+ return (unsigned int)~destinationWord;
 }
 
 static sqInt
 bitInvertOrInvertwith(sqInt sourceWord, sqInt destinationWord)
 {
- return (~sourceWord) | (~destinationWord);
+ return ((unsigned int)~sourceWord) | ((unsigned int)~destinationWord);
 }
 
 static sqInt
 bitInvertOrwith(sqInt sourceWord, sqInt destinationWord)
 {
- return (~sourceWord) | destinationWord;
+ return ((unsigned int)~sourceWord) | destinationWord;
 }
 
 static sqInt
 bitInvertSourcewith(sqInt sourceWord, sqInt destinationWord)
 {
- return ~sourceWord;
+ return (unsigned int)~sourceWord;
 }
 
 static sqInt
 bitInvertXorwith(sqInt sourceWord, sqInt destinationWord)
 {
- return (~sourceWord) ^ destinationWord;
+ return ((unsigned int)~sourceWord) ^ destinationWord;
 }
 
 static sqInt
 bitOrInvertwith(sqInt sourceWord, sqInt destinationWord)
 {
- return sourceWord | (~destinationWord);
+ return sourceWord | ((unsigned int)~destinationWord);
 }
 
 static sqInt
@@ -2026,7 +2026,7 @@
  }
  }
  }
- notSkewMask = ~skewMask;
+ notSkewMask = (unsigned int)~skewMask;
  if (noHalftone) {
  halftoneWord = AllOnes;
  halftoneHeight = 0;
@@ -2069,7 +2069,7 @@
  prevWord = thisWord;
  destWord = long32At(destIndex);
  mergeWord = mergeFnwith(skewWord & halftoneWord, destWord);
- destWord = (destMask & mergeWord) | (destWord & (~destMask));
+ destWord = (destMask & mergeWord) | (destWord & ((unsigned int)~destMask));
  long32Atput(destIndex, destWord);
 
  /* This central horizontal loop requires no store masking */
@@ -2154,7 +2154,7 @@
  skewWord = (((unskew < 0) ? ((usqInt) (prevWord & notSkewMask) >> -unskew) : ((usqInt) (prevWord & notSkewMask) << unskew))) | (((skew < 0) ? ((usqInt) (thisWord & skewMask) >> -skew) : ((usqInt) (thisWord & skewMask) << skew)));
  destWord = long32At(destIndex);
  mergeWord = mergeFnwith(skewWord & halftoneWord, destWord);
- destWord = (destMask & mergeWord) | (destWord & (~destMask));
+ destWord = (destMask & mergeWord) | (destWord & ((unsigned int)~destMask));
  long32Atput(destIndex, destWord);
  destIndex += hInc;
  }
@@ -2192,7 +2192,7 @@
  destMask = mask1;
  destWord = long32At(destIndex);
  mergeWord = mergeFnwith(halftoneWord, destWord);
- destWord = (destMask & mergeWord) | (destWord & (~destMask));
+ destWord = (destMask & mergeWord) | (destWord & ((unsigned int)~destMask));
  long32Atput(destIndex, destWord);
 
  /* This central horizontal loop requires no store masking */
@@ -2227,7 +2227,7 @@
  destMask = mask2;
  destWord = long32At(destIndex);
  mergeWord = mergeFnwith(halftoneWord, destWord);
- destWord = (destMask & mergeWord) | (destWord & (~destMask));
+ destWord = (destMask & mergeWord) | (destWord & ((unsigned int)~destMask));
  long32Atput(destIndex, destWord);
  destIndex += 4;
  }
@@ -2288,7 +2288,7 @@
  sourcePPW = 32 / sourceDepth;
  sourcePixMask = maskTable[sourceDepth];
  destPixMask = maskTable[destDepth];
- mapperFlags = cmFlags & (~ColorMapNewStyle);
+ mapperFlags = cmFlags & ((unsigned int)~ColorMapNewStyle);
  sourceIndex = (sourceBits + (sy * sourcePitch)) + ((sx / sourcePPW) * 4);
  scrStartBits = sourcePPW - (sx & (sourcePPW - 1));
  if (bbW < scrStartBits) {
@@ -2449,7 +2449,7 @@
 
  destWord = long32At(destIndex);
  mergeWord = mergeFnwith(skewWord & halftoneWord, destWord & destMask);
- destWord = (destMask & mergeWord) | (destWord & (~destMask));
+ destWord = (destMask & mergeWord) | (destWord & ((unsigned int)~destMask));
  long32Atput(destIndex, destWord);
  }
  destIndex += 4;
@@ -4965,7 +4965,7 @@
 static sqInt
 pixMaskwith(sqInt sourceWord, sqInt destinationWord)
 {
- return partitionedANDtonBitsnPartitions(~sourceWord, destinationWord, destDepth, destPPW);
+ return partitionedANDtonBitsnPartitions((unsigned int)~sourceWord, destinationWord, destDepth, destPPW);
 }
 
 static sqInt
@@ -4974,7 +4974,7 @@
  if (sourceWord == 0) {
  return destinationWord;
  }
- return sourceWord | (partitionedANDtonBitsnPartitions(~sourceWord, destinationWord, destDepth, destPPW));
+ return sourceWord | (partitionedANDtonBitsnPartitions((unsigned int)~sourceWord, destinationWord, destDepth, destPPW));
 }
 
 
@@ -5793,7 +5793,7 @@
  /* If we have to mix colors then just copy a single word */
 
  destWord = long32At(dstIndex);
- destWord = destWord & (~dstMask);
+ destWord = destWord & ((unsigned int)~dstMask);
 
  /* Expand from 16 to 32 bit by adding zero bits */
 
@@ -5836,7 +5836,7 @@
  /* Toggle between 0 and 16 */
 
  srcShift = srcShift ^ 16;
- dstMask = ~dstMask;
+ dstMask = (unsigned int)~dstMask;
  }
  srcY += 1;
  dstY += 1;
@@ -6104,7 +6104,7 @@
 
  /* begin default8To32Table */
  mappingTable = theTable;
- mapperFlags = cmFlags & (~ColorMapNewStyle);
+ mapperFlags = cmFlags & ((unsigned int)~ColorMapNewStyle);
 
  /* So we can pre-decrement */
 
@@ -6139,7 +6139,7 @@
 
  dstMask = mask2;
  while (((deltaX -= 1)) != 0) {
- sourceWord = ((long32At(srcIndex)) & (~adjust)) + adjust;
+ sourceWord = ((long32At(srcIndex)) & ((unsigned int)~adjust)) + adjust;
 
  /* set srcAlpha to the average of the 3 separate aR,Ag,AB values */
 
@@ -6156,7 +6156,7 @@
  sourceWord = 0xFFFFFFFFUL;
  }
  destWord = long32At(dstIndex);
- destWord = destWord & (~dstMask);
+ destWord = destWord & ((unsigned int)~dstMask);
  destWord = ((usqInt) destWord) >> srcShift;
  destWord = mappingTable[destWord];
  sourceWord = rgbComponentAlpha32with(sourceWord, destWord);
@@ -6540,7 +6540,7 @@
 {
  sqInt sourceWord;
 
- sourceWord = ~wordToInvert;
+ sourceWord = (unsigned int)~wordToInvert;
  if (destDepth < 16) {
 
  /* Min each pixel separately */
@@ -7610,7 +7610,7 @@
  setupColorMasksFromto(8, cmBitsPerColor);
  }
  }
- mapperFlags = cmFlags & (~ColorMapNewStyle);
+ mapperFlags = cmFlags & ((unsigned int)~ColorMapNewStyle);
  if (destMSB) {
  dstShiftInc = 0 - destDepth;
  dstShiftLeft = 32 - destDepth;
@@ -7796,7 +7796,7 @@
 
  destWord = long32At(destIndex);
  mergeWord = mergeFnwith(skewWord & halftoneWord, destWord & destMask);
- destWord = (destMask & mergeWord) | (destWord & (~destMask));
+ destWord = (destMask & mergeWord) | (destWord & ((unsigned int)~destMask));
  long32Atput(destIndex, destWord);
  }
  destIndex += 4;

Modified: branches/Cog/nscogsrc/plugins/DSAPrims/DSAPrims.c
===================================================================
--- branches/Cog/nscogsrc/plugins/DSAPrims/DSAPrims.c 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nscogsrc/plugins/DSAPrims/DSAPrims.c 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ VMPluginCodeGenerator VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
    from
- DSAPlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ DSAPlugin VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
  */
-static char __buildInfo[] = "DSAPlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d " __DATE__ ;
+static char __buildInfo[] = "DSAPlugin VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a " __DATE__ ;
 
 
 
@@ -91,9 +91,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "DSAPrims VMMaker.oscog-eem.983 (i)"
+ "DSAPrims VMMaker.oscog-eem.990 (i)"
 #else
- "DSAPrims VMMaker.oscog-eem.983 (e)"
+ "DSAPrims VMMaker.oscog-eem.990 (e)"
 #endif
 ;
 static sqInt remainderDigitCount;
@@ -561,7 +561,7 @@
  d = statePtr[3];
  e = statePtr[4];
  for (i = 0; i <= 19; i += 1) {
- tmp = (((1518500249 + ((b & c) | ((~b) & d))) + ((a << 5) | (((usqInt) a) >> (32 - 5)))) + e) + (bufPtr[i]);
+ tmp = (((1518500249 + ((b & c) | (((unsigned int)~b) & d))) + ((a << 5) | (((usqInt) a) >> (32 - 5)))) + e) + (bufPtr[i]);
  e = d;
  d = c;
  c = (b << 30) | (((usqInt) b) >> (32 - 30));

Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nscogsrc/vm/cogit.c 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.972 uuid: 741005af-763d-4a93-918d-014972c404ef
+ CCodeGenerator VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
    from
- StackToRegisterMappingCogit VMMaker.oscog-eem.972 uuid: 741005af-763d-4a93-918d-014972c404ef
+ StackToRegisterMappingCogit VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.972 uuid: 741005af-763d-4a93-918d-014972c404ef " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nscogsrc/vm/cogit.h 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.972 uuid: 741005af-763d-4a93-918d-014972c404ef
+ CCodeGenerator VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nscogsrc/vm/cointerp.c 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.980 uuid: 3d7d339f-6a22-4bd1-b959-cddf9c41cc60
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.991 uuid: 368647af-b954-4bf5-a526-3f83badb3361
    from
- CoInterpreter VMMaker.oscog-eem.980 uuid: 3d7d339f-6a22-4bd1-b959-cddf9c41cc60
+ CoInterpreter VMMaker.oscog-eem.991 uuid: 368647af-b954-4bf5-a526-3f83badb3361
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.980 uuid: 3d7d339f-6a22-4bd1-b959-cddf9c41cc60 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.991 uuid: 368647af-b954-4bf5-a526-3f83badb3361 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -920,6 +920,7 @@
 sqInt falseObject(void);
 sqInt fetchByteofObject(sqInt byteIndex, sqInt oop);
 sqInt fetchClassOf(sqInt oop);
+static sqInt fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop) NoDbgRegParms;
 sqInt fetchLong32ofObject(sqInt fieldIndex, sqInt oop);
 sqInt fetchPointerofObject(sqInt fieldIndex, sqInt oop);
 static void finalizeReference(usqInt oop) NoDbgRegParms;
@@ -1503,7 +1504,7 @@
 jmp_buf reenterInterpreter; /* private export */;
 sqInt checkAllocFiller;
 sqInt inIOProcessEvents;
-sqInt breakSelectorLength;
+sqInt breakSelectorLength = MinSmallInteger;
 sqInt checkForLeaks;
 sqInt desiredEdenBytes;
 sqInt desiredNumStackPages;
@@ -2098,7 +2099,7 @@
  /* 574 */ (void (*)(void))0,
  /* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.980";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.991";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -17000,7 +17001,7 @@
     sqInt maxFramesPerPage;
     sqInt maxUsedBytesPerPage;
 
- maxUsedBytesPerPage = 512 + ((IFrameSlots + 64) * BytesPerWord);
+ maxUsedBytesPerPage = (512) + ((IFrameSlots + 64) * BytesPerWord);
  maxFramesPerPage = (maxUsedBytesPerPage / BytesPerWord) / MFrameSlots;
  return ((maxFramesPerPage * LargeContextSlots) * BytesPerOop) * GIV(numStackPages);
 }
@@ -19450,7 +19451,7 @@
  }
  }
  GIV(method) = (GIV(newMethod) = GIV(nilObj));
- breakSelectorLength = MinSmallInteger;
+
  GIV(methodDictLinearSearchLimit) = 8;
  /* begin flushMethodCache */
  for (i = 1; i <= MethodCacheSize; i += 1) {
@@ -19511,7 +19512,7 @@
 void
 reportMinimumUnusedHeadroom(void)
 {
- printf("stack page bytes %ld available headroom %ld minimum unused headroom %ld\n", ((long)(stackPageByteSize())), ((long)(((stackPageByteSize()) - (((512 < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? 512 : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))))) - ((IFrameSlots + 64) * BytesPerWord))), ((long)(minimumUnusedHeadroom())));
+ printf("stack page bytes %ld available headroom %ld minimum unused headroom %ld\n", ((long)(stackPageByteSize())), ((long)(((stackPageByteSize()) - ((((512) < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? (512) : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))))) - ((IFrameSlots + 64) * BytesPerWord))), ((long)(minimumUnusedHeadroom())));
 }
 
 
@@ -22670,7 +22671,7 @@
  page = stackPageAtpages(index, GIV(pages));
  (page->lastAddress = theStackPages + (index * GIV(bytesPerPage)));
  (page->baseAddress = ((page->lastAddress)) + GIV(bytesPerPage));
- (page->stackLimit = ((page->baseAddress)) - (((512 < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? 512 : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom())))));
+ (page->stackLimit = ((page->baseAddress)) - ((((512) < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? (512) : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom())))));
  (page->realStackLimit = (page->stackLimit));
  (page->baseFP = 0);
  (page->nextPage = stackPageAt((index == (numPages - 1)
@@ -26774,7 +26775,7 @@
  rcvr = longAt(GIV(stackPointer) + (1 * BytesPerWord));
  index = longAt(GIV(stackPointer));
  if (index == ConstOne) {
- result = positive32BitIntegerFor(fetchLong32ofObject((VMBIGENDIAN
+ result = positive32BitIntegerFor(fetchLong32ofFloatObject((VMBIGENDIAN
  ? 0
  : 1), rcvr));
  /* begin pop:thenPush: */
@@ -26783,7 +26784,7 @@
  return;
  }
  if (index == ConstTwo) {
- result = positive32BitIntegerFor(fetchLong32ofObject((VMBIGENDIAN
+ result = positive32BitIntegerFor(fetchLong32ofFloatObject((VMBIGENDIAN
  ? 1
  : 0), rcvr));
  /* begin pop:thenPush: */
@@ -40867,6 +40868,15 @@
 }
 
 
+/* index by word size, and return a pointer as long as the word size */
+
+static sqInt
+fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop)
+{
+ return long32At((oop + BaseHeaderSize) + (fieldIndex << 2));
+}
+
+
 /* index by 32-bit units, and return a 32-bit value. Intended to replace
  fetchWord:ofObject:
  */
@@ -50283,9 +50293,9 @@
  if (((longAt(oop)) & TypeMask) == HeaderTypeFree) {
  print(" is a free chunk of size ");
  printNum((longAt(oop)) & AllButTypeMask);
+
  /* begin cr */
  printf("\n");
-
  return;
  }
 
@@ -51560,10 +51570,11 @@
  /* begin printHexnp: */
  printf("0x%x", oop);
  if ((oop & 1)) {
- ;
  if ((oop & 1)) {
  printf("=%ld\n", (long)integerValueOf(oop));
  }
+
+
  return;
  }
  if (!(((oop & 3) == 0)
@@ -52115,7 +52126,7 @@
 static sqInt
 stackLimitBytes(void)
 {
- return ((512 < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? 512 : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom())));
+ return (((512) < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? (512) : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom())));
 }
 
 
@@ -52151,7 +52162,7 @@
     sqInt pageBytes;
     sqInt smallSize;
 
- pageBytes = (512 + ((IFrameSlots + 64) * BytesPerWord)) + (osCogStackPageHeadroom());
+ pageBytes = ((512) + ((IFrameSlots + 64) * BytesPerWord)) + (osCogStackPageHeadroom());
  if ((pageBytes & (pageBytes - 1)) == 0) {
 
  /* = 0 => a power of two */

Modified: branches/Cog/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nscogsrc/vm/cointerp.h 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.980 uuid: 3d7d339f-6a22-4bd1-b959-cddf9c41cc60
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.991 uuid: 368647af-b954-4bf5-a526-3f83badb3361
  */
 
 
@@ -273,7 +273,7 @@
 
 /*** Global Variables ***/
 char * breakSelector;
-sqInt breakSelectorLength;
+sqInt breakSelectorLength ;
 sqInt checkAllocFiller;
 sqInt checkForLeaks;
 sqInt deferDisplayUpdates;

Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c 2014-12-17 22:30:32 UTC (rev 3190)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.980 uuid: 3d7d339f-6a22-4bd1-b959-cddf9c41cc60
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.991 uuid: 368647af-b954-4bf5-a526-3f83badb3361
    from
- CoInterpreter VMMaker.oscog-eem.980 uuid: 3d7d339f-6a22-4bd1-b959-cddf9c41cc60
+ CoInterpreter VMMaker.oscog-eem.991 uuid: 368647af-b954-4bf5-a526-3f83badb3361
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.980 uuid: 3d7d339f-6a22-4bd1-b959-cddf9c41cc60 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.991 uuid: 368647af-b954-4bf5-a526-3f83badb3361 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -923,6 +923,7 @@
 sqInt falseObject(void);
 sqInt fetchByteofObject(sqInt byteIndex, sqInt oop);
 sqInt fetchClassOf(sqInt oop);
+static sqInt fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop) NoDbgRegParms;
 sqInt fetchLong32ofObject(sqInt fieldIndex, sqInt oop);
 sqInt fetchPointerofObject(sqInt fieldIndex, sqInt oop);
 static void finalizeReference(usqInt oop) NoDbgRegParms;
@@ -1506,7 +1507,7 @@
 jmp_buf reenterInterpreter; /* private export */;
 sqInt checkAllocFiller;
 sqInt inIOProcessEvents;
-sqInt breakSelectorLength;
+sqInt breakSelectorLength = MinSmallInteger;
 sqInt checkForLeaks;
 sqInt desiredEdenBytes;
 sqInt desiredNumStackPages;
@@ -2101,7 +2102,7 @@
  /* 574 */ (void (*)(void))0,
  /* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.980";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.991";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -17009,7 +17010,7 @@
     sqInt maxFramesPerPage;
     sqInt maxUsedBytesPerPage;
 
- maxUsedBytesPerPage = 512 + ((IFrameSlots + 64) * BytesPerWord);
+ maxUsedBytesPerPage = (512) + ((IFrameSlots + 64) * BytesPerWord);
  maxFramesPerPage = (maxUsedBytesPerPage / BytesPerWord) / MFrameSlots;
  return ((maxFramesPerPage * LargeContextSlots) * BytesPerOop) * GIV(numStackPages);
 }
@@ -19459,7 +19460,7 @@
  }
  }
  GIV(method) = (GIV(newMethod) = GIV(nilObj));
- breakSelectorLength = MinSmallInteger;
+
  GIV(methodDictLinearSearchLimit) = 8;
  /* begin flushMethodCache */
  for (i = 1; i <= MethodCacheSize; i += 1) {
@@ -19520,7 +19521,7 @@
 void
 reportMinimumUnusedHeadroom(void)
 {
- printf("stack page bytes %ld available headroom %ld minimum unused headroom %ld\n", ((long)(stackPageByteSize())), ((long)(((stackPageByteSize()) - (((512 < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? 512 : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))))) - ((IFrameSlots + 64) * BytesPerWord))), ((long)(minimumUnusedHeadroom())));
+ printf("stack page bytes %ld available headroom %ld minimum unused headroom %ld\n", ((long)(stackPageByteSize())), ((long)(((stackPageByteSize()) - ((((512) < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? (512) : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))))) - ((IFrameSlots + 64) * BytesPerWord))), ((long)(minimumUnusedHeadroom())));
 }
 
 
@@ -22679,7 +22680,7 @@
  page = stackPageAtpages(index, GIV(pages));
  (page->lastAddress = theStackPages + (index * GIV(bytesPerPage)));
  (page->baseAddress = ((page->lastAddress)) + GIV(bytesPerPage));
- (page->stackLimit = ((page->baseAddress)) - (((512 < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? 512 : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom())))));
+ (page->stackLimit = ((page->baseAddress)) - ((((512) < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? (512) : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom())))));
  (page->realStackLimit = (page->stackLimit));
  (page->baseFP = 0);
  (page->nextPage = stackPageAt((index == (numPages - 1)
@@ -26783,7 +26784,7 @@
  rcvr = longAt(GIV(stackPointer) + (1 * BytesPerWord));
  index = longAt(GIV(stackPointer));
  if (index == ConstOne) {
- result = positive32BitIntegerFor(fetchLong32ofObject((VMBIGENDIAN
+ result = positive32BitIntegerFor(fetchLong32ofFloatObject((VMBIGENDIAN
  ? 0
  : 1), rcvr));
  /* begin pop:thenPush: */
@@ -26792,7 +26793,7 @@
  return;
  }
  if (index == ConstTwo) {
- result = positive32BitIntegerFor(fetchLong32ofObject((VMBIGENDIAN
+ result = positive32BitIntegerFor(fetchLong32ofFloatObject((VMBIGENDIAN
  ? 1
  : 0), rcvr));
  /* begin pop:thenPush: */
@@ -40876,6 +40877,15 @@
 }
 
 
+/* index by word size, and return a pointer as long as the word size */
+
+static sqInt
+fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop)
+{
+ return long32At((oop + BaseHeaderSize) + (fieldIndex << 2));
+}
+
+
 /* index by 32-bit units, and return a 32-bit value. Intended to replace
  fetchWord:ofObject:
  */
@@ -50292,9 +50302,9 @@
  if (((longAt(oop)) & TypeMask) == HeaderTypeFree) {
  print(" is a free chunk of size ");
  printNum((longAt(oop)) & AllButTypeMask);
+
  /* begin cr */
  printf("\n");
-
  return;
  }
 
@@ -51569,10 +51579,11 @@
  /* begin printHexnp: */
  printf("0x%x", oop);
  if ((oop & 1)) {
- ;
  if ((oop & 1)) {
  printf("=%ld\n", (long)integerValueOf(oop));
  }
+
+
  return;
  }
  if (!(((oop & 3) == 0)
@@ -52124,7 +52135,7 @@
 static sqInt
 stackLimitBytes(void)
 {
- return ((512 < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? 512 : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom())));
+ return (((512) < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? (512) : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom())));
 }
 
 
@@ -52160,7 +52171,7 @@
     sqInt pageBytes;
     sqInt smallSize;
 
- pageBytes = (512 + ((IFrameSlots + 64) * BytesPerWord)) + (osCogStackPageHeadroom());
+ pageBytes = ((512) + ((IFrameSlots + 64) * BytesPerWord)) + (osCogStackPageHeadroom());
  if ((pageBytes & (pageBytes - 1)) == 0) {
 
  /* = 0 => a power of two */

Modified: branches/Cog/nsspursrc/vm/cogit.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.c 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nsspursrc/vm/cogit.c 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.972 uuid: 741005af-763d-4a93-918d-014972c404ef
+ CCodeGenerator VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
    from
- StackToRegisterMappingCogit VMMaker.oscog-eem.972 uuid: 741005af-763d-4a93-918d-014972c404ef
+ StackToRegisterMappingCogit VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.972 uuid: 741005af-763d-4a93-918d-014972c404ef " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nsspursrc/vm/cogit.h 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.972 uuid: 741005af-763d-4a93-918d-014972c404ef
+ CCodeGenerator VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2014-12-17 02:34:06 UTC (rev 3189)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2014-12-17 22:30:32 UTC (rev 3190)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.986 uuid: 62703abf-bfd4-4966-a13c-036fa3da9950
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.991 uuid: 368647af-b954-4bf5-a526-3f83badb3361
    from
- CoInterpreter VMMaker.oscog-eem.986 uuid: 62703abf-bfd4-4966-a13c-036fa3da9950
+ CoInterpreter VMMaker.oscog-eem.991 uuid: 368647af-b954-4bf5-a526-3f83badb3361
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.986 uuid: 62703abf-bfd4-4966-a13c-036fa3da9950 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.991 uuid: 368647af-b954-4bf5-a526-3f83badb3361 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -820,6 +820,7 @@
 static usqInt bytesInObject(sqInt objOop) NoDbgRegParms;
 static sqInt changeClassOfto(sqInt rcvr, sqInt argClass) NoDbgRegParms;
 static double dbgFloatValueOf(sqInt oop) NoDbgRegParms;
+static sqInt fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop) NoDbgRegParms;
 sqInt floatObjectOf(double aFloat);
 double floatValueOf(sqInt oop);
 static sqInt initFreeChunkWithBytesat(usqLong numBytes, sqInt address) NoDbgRegParms;
@@ -1124,6 +1125,7 @@
 void printFreeChunks(void);
 void printFreeChunk(sqInt freeChunk);
 static void printFreeChunkisNextChunk(sqInt freeChunk, sqInt isNextChunk) NoDbgRegParms;
+void printFreeListHeads(void);
 void printFreeList(sqInt chunkOrIndex);
 void printFreeTree(void);
 static void printFreeTreeChunk(sqInt chunkOrZero) NoDbgRegParms;
@@ -1552,8 +1554,8 @@
 _iss sqInt traceLogIndex;
 _iss usqInt scavengeThreshold;
 _iss sqInt remapBufferCount;
+_iss sqInt * freeLists;
 _iss char * stackLimit;
-_iss sqInt * freeLists;
 _iss sqInt rememberedSetSize;
 _iss sqInt tempOop;
 _iss sqInt * rememberedSet;
@@ -1726,7 +1728,7 @@
 sqInt checkForLeaks;
 sqInt checkAllocFiller;
 sqInt inIOProcessEvents;
-sqInt breakSelectorLength;
+sqInt breakSelectorLength = MinSmallInteger;
 sqInt desiredEdenBytes;
 sqInt desiredNumStackPages;
 sqInt extraVMMemory;
@@ -2348,7 +2350,7 @@
 /*540*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
 /*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
  };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.986";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.991";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -18612,7 +18614,7 @@
     sqInt maxFramesPerPage;
     sqInt maxUsedBytesPerPage;
 
- maxUsedBytesPerPage = 512 + ((IFrameSlots + 64) * BytesPerWord);
+ maxUsedBytesPerPage = (512) + ((IFrameSlots + 64) * BytesPerWord);
  maxFramesPerPage = (maxUsedBytesPerPage / BytesPerWord) / MFrameSlots;
  return ((maxFramesPerPage * LargeContextSlots) * BytesPerOop) * GIV(numStackPages);
 }
@@ -23858,7 +23860,7 @@
  }
  }
  GIV(method) = (GIV(newMethod) = GIV(nilObj));
- breakSelectorLength = MinSmallInteger;
+
  GIV(methodDictLinearSearchLimit) = 8;
  /* begin flushMethodCache */
  for (i = 1; i <= MethodCacheSize; i += 1) {
@@ -23919,7 +23921,7 @@
 void
 reportMinimumUnusedHeadroom(void)
 {
- printf("stack page bytes %ld available headroom %ld minimum unused headroom %ld\n", ((long)(stackPageByteSize())), ((long)(((stackPageByteSize()) - (((512 < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? 512 : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))))) - ((IFrameSlots + 64) * BytesPerWord))), ((long)(minimumUnusedHeadroom())));
+ printf("stack page bytes %ld available headroom %ld minimum unused headroom %ld\n", ((long)(stackPageByteSize())), ((long)(((stackPageByteSize()) - ((((512) < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? (512) : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))))) - ((IFrameSlots + 64) * BytesPerWord))), ((long)(minimumUnusedHeadroom())));
 }
 
 
@@ -27500,7 +27502,7 @@
  page = stackPageAtpages(index, GIV(pages));
  (page->lastAddress = theStackPages + (index * GIV(bytesPerPage)));
  (page->baseAddress = ((page->lastAddress)) + GIV(bytesPerPage));
- (page->stackLimit = ((page->baseAddress)) - (((512 < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? 512 : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom())))));
+ (page->stackLimit = ((page->baseAddress)) - ((((512) < (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom()))) ? (512) : (((stackPageByteSize()) - ((IFrameSlots + 64) * BytesPerWord)) - (osCogStackPageHeadroom())))));
  (page->realStackLimit = (page->stackLimit));
  (page->baseFP = 0);
  (page->nextPage = stackPageAt((index == (numPages - 1)
@@ -31819,7 +31821,7 @@
  rcvr = longAt(GIV(stackPointer) + (1 * BytesPerWord));
  index = longAt(GIV(stackPointer));
  if (index == ConstOne) {
- result = positive32BitIntegerFor(fetchLong32ofObject((VMBIGENDIAN
+ result = positive32BitIntegerFor(fetchLong32ofFloatObject((VMBIGENDIAN
  ? 0
  : 1), rcvr));
  /* begin pop:thenPush: */
@@ -31828,7 +31830,7 @@
  return;
  }
  if (index == ConstTwo) {
- result = positive32BitIntegerFor(fetchLong32ofObject((VMBIGENDIAN
+ result = positive32BitIntegerFor(fetchLong32ofFloatObject((VMBIGENDIAN
  ? 1
  : 0), rcvr));
  /* begin pop:thenPush: */
@@ -31981,6 +31983,7 @@
     double arg;
     sqInt isFloat;
     sqInt isFloat1;
+    sqInt oop;
     double rcvr;
     sqInt rcvrOop;
     double result;
@@ -32016,11 +32019,12 @@
  goto l2;
  }
  /* begin floatValueOf: */
- isFloat1 = (((longAt(GIV(stackPointer))) & 3) == 0)
- && (((longAt(longAt(GIV(stackPointer)))) & 0x3FFFFF) == ClassFloatCompactIndex);
+ oop = longAt(GIV(stackPointer));
+ isFloat1 = ((oop & 3) == 0)
+ && (((longAt(oop)) & 0x3FFFFF) == ClassFloatCompactIndex);
  if (isFloat1) {
  ;
- fetchFloatAtinto((longAt(GIV(stackPointer))) + BaseHeaderSize, result1);
+ fetchFloatAtinto(oop + BaseHeaderSize, result1);
  arg = result1;
  goto l4;
  }
@@ -32048,6 +32052,7 @@
     double arg;
     sqInt isFloat;
     sqInt isFloat1;
+    sqInt oop;
     double rcvr;
     sqInt rcvrOop;
     double result;
@@ -32083,11 +32088,12 @@
  goto l2;
  }
  /* begin floatValueOf: */
- isFloat1 = (((longAt(GIV(stackPointer))) & 3) == 0)
- && (((longAt(longAt(GIV(stackPointer)))) & 0x3FFFFF) == ClassFloatCompactIndex);
+ oop = longAt(GIV(stackPointer));
+ isFloat1 = ((oop & 3) == 0)
+ && (((longAt(oop)) & 0x3FFFFF) == ClassFloatCompactIndex);
  if (isFloat1) {
  ;
- fetchFloatAtinto((longAt(GIV(stackPointer))) + BaseHeaderSize, result1);
+ fetchFloatAtinto(oop + BaseHeaderSize, result1);
  arg = result1;
  goto l4;
  }
@@ -32115,6 +32121,7 @@
     double arg;
     sqInt isFloat;
     sqInt isFloat1;
+    sqInt oop;
     double rcvr;
     sqInt rcvrOop;
     double result;
@@ -32150,11 +32157,12 @@
  goto l2;
  }
  /* begin floatValueOf: */
- isFloat1 = (((longAt(GIV(stackPointer))) & 3) == 0)
- && (((longAt(longAt(GIV(stackPointer)))) & 0x3FFFFF) == ClassFloatCompactIndex);
+ oop = longAt(GIV(stackPointer));
+ isFloat1 = ((oop & 3) == 0)
+ && (((longAt(oop)) & 0x3FFFFF) == ClassFloatCompactIndex);
  if (isFloat1) {
  ;
- fetchFloatAtinto((longAt(GIV(stackPointer))) + BaseHeaderSize, result1);
+ fetchFloatAtinto(oop + BaseHeaderSize, result1);
  arg = result1;
  goto l4;
  }
@@ -32182,6 +32190,7 @@
     double arg;
     sqInt isFloat;
     sqInt isFloat1;
+    sqInt oop;
     double rcvr;
     sqInt rcvrOop;
     double result;
@@ -32217,11 +32226,12 @@
  goto l2;
  }
  /* begin floatValueOf: */
- isFloat1 = (((longAt(GIV(stackPointer))) & 3) == 0)
- && (((longAt(longAt(GIV(stackPointer)))) & 0x3FFFFF) == ClassFloatCompactIndex);
+ oop = longAt(GIV(stackPointer));
+ isFloat1 = ((oop & 3) == 0)
+ && (((longAt(oop)) & 0x3FFFFF) == ClassFloatCompactIndex);
  if (isFloat1) {
  ;
- fetchFloatAtinto((longAt(GIV(stackPointer))) + BaseHeaderSize, result1);
+ fetchFloatAtinto(oop + BaseHeaderSize, result1);
  arg = result1;
  goto l4;
  }
@@ -32249,6 +32259,7 @@
     double arg;
     sqInt isFloat;
     sqInt isFloat1;
+    sqInt oop;
     double rcvr;
     sqInt rcvrOop;
     double result;
@@ -32284,11 +32295,12 @@
  goto l2;
  }
  /* begin floatValueOf: */
- isFloat1 = (((longAt(GIV(stackPointer))) & 3) == 0)
- && (((longAt(longAt(GIV(stackPointer)))) & 0x3FFFFF) == ClassFloatCompactIndex);
+ oop = longAt(GIV(stackPointer));
+ isFloat1 = ((oop & 3) == 0)
+ && (((longAt(oop)) & 0x3FFFFF) == ClassFloatCompactIndex);
  if (isFloat1) {
  ;
- fetchFloatAtinto((longAt(GIV(stackPointer))) + BaseHeaderSize, result1);
+ fetchFloatAtinto(oop + BaseHeaderSize, result1);
  arg = result1;
  goto l4;
  }
@@ -32381,6 +32393,7 @@
     double arg;
     sqInt isFloat;
     sqInt isFloat1;
+    sqInt oop;
     double rcvr;
     sqInt rcvrOop;
     double result;
@@ -32416,11 +32429,12 @@
  goto l2;
  }
  /* begin floatValueOf: */
- isFloat1 = (((longAt(GIV(stackPointer))) & 3) == 0)
- && (((longAt(longAt(GIV(stackPointer)))) & 0x3FFFFF) == ClassFloatCompactIndex);
+ oop = longAt(GIV(stackPointer));
+ isFloat1 = ((oop & 3) == 0)
+ && (((longAt(oop)) & 0x3FFFFF) == ClassFloatCompactIndex);
  if (isFloat1) {
  ;
- fetchFloatAtinto((longAt(GIV(stackPointer))) + BaseHeaderSize, result1);
+ fetchFloatAtinto(oop + BaseHeaderSize, result1);
  arg = result1;
  goto l4;
  }
@@ -36254,7 +36268,7 @@
  flag("endianness");
  longAtput(obj, (boolean == GIV(trueObj)
  ? (longAt(obj)) | (1 << 30)
- : (longAt(obj)) & (~(1 << 30))));
+ : (longAt(obj)) & ((unsigned int)~(1 << 30))));
  }
  else {
  wasPinned = GIV(falseObj);
@@ -40805,7 +40819,7 @@
  assert(((classIndex >= 0) && (classIndex <= (classIndexMask()))));
  assert(((newFormat >= 0) && (newFormat <= (formatMask()))));
  flag("endianness");
- longAtput(rcvr, ((longAt(rcvr)) & (~((0x1F << 24) + 0x3FFFFF))) + (classIndex + (newFormat << 24)));
+ longAtput(rcvr, ((longAt(rcvr)) & ((unsigned int)~((0x1F << 24) + 0x3FFFFF))) + (classIndex + (newFormat << 24)));
  return 0;
 }
 
@@ -40829,6 +40843,15 @@
  return 0.0;
 }
 
+
+/* index by word size, and return a pointer as long as the word size */
+
+static sqInt
+fetchLong32ofFloatObject(sqInt fieldIndex, sqInt oop)
+{
+ return long32At((oop + BaseHeaderSize) + (fieldIndex << 2));
+}
+
 sqInt

@@ Diff output truncated at 50000 characters. @@