[Vm-dev] [commit][3190] CogVM source as per VMMaker.oscog-eem.991
commits at squeakvm.org
commits at squeakvm.org
Wed Dec 17 22:30:37 UTC 2014
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. @@
More information about the Vm-dev
mailing list