[commit][3256] CogVM source as per VMMaker.oscog-eem.1064

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

[commit][3256] CogVM source as per VMMaker.oscog-eem.1064

commits-3
 
Revision: 3256
Author:   eliot
Date:     2015-02-13 18:19:04 -0800 (Fri, 13 Feb 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1064

Slang:
Rescue translation of the non-64-bit Spur VMs by
a) doing a better job of suoper expansions, handling expansions
        that are returning ifs as well as just returns correctly.
b) transforming variable := expr ifTrue: [s1] ifFalse: [s2] into
    expr ifTrue: [variable := s1] ifFalse: [variable := s2]
to allow inlining of s1 & s2.

And take advantage of the better inlining in copyAndForward:

General:
Simplify primitiveDisplayString given isArray:.

Refactor positive32BitIntegerFor: and signed32BitIntegerFor: in the realization
that these reduce to essentially integerObjectOf: in 64-bit Spur.  The idea is
to inline if in 64-bit Spur but not if in the 32-bit VMs.  Add notOption:
processing to allow excluding noInlineSigned32BitIntegerFor: et al.  Add
hasSixtyFourBitImmediates to no longer assume that wordSize = 8 implies 64-bit
immediates.

Use positiveMachineIntegerFor: in place of
positive32BitIntegerFor: in some plugins.

Simplify two B3DAcceleratorPlugin prims given topRemappableOop and isArray:

With these changes 64-bit Spur Stack Linux manages
3548 run, 3495 passes, 0 expected failures, 47 failures, 6 errors, 0 unexpected passes

Builds:
Nuke the newspeak.stack.v3 builds

Modified Paths:
--------------
    branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c
    branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c
    branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c
    branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c
    branches/Cog/nscogsrc/plugins/LargeIntegers/LargeIntegers.c
    branches/Cog/nscogsrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
    branches/Cog/nscogsrc/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
    branches/Cog/nscogsrc/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
    branches/Cog/nscogsrc/vm/cointerp.c
    branches/Cog/nscogsrc/vm/cointerp.h
    branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
    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/findUnofficialFiles
    branches/Cog/sistasrc/vm/cointerp.c
    branches/Cog/sistasrc/vm/cointerp.h
    branches/Cog/sistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.h
    branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spurstack64src/vm/gcc3x-interp.c
    branches/Cog/spurstack64src/vm/interp.c
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.c
    branches/Cog/src/plugins/B2DPlugin/B2DPlugin.c
    branches/Cog/src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
    branches/Cog/src/plugins/BitBltPlugin/BitBltPlugin.c
    branches/Cog/src/plugins/BochsIA32Plugin/BochsIA32Plugin.c
    branches/Cog/src/plugins/FilePlugin/FilePlugin.c
    branches/Cog/src/plugins/GdbARMPlugin/GdbARMPlugin.c
    branches/Cog/src/plugins/IA32ABI/IA32ABI.c
    branches/Cog/src/plugins/LargeIntegers/LargeIntegers.c
    branches/Cog/src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
    branches/Cog/src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c
    branches/Cog/src/plugins/SqueakFFIPrims/IA32FFIPlugin.c
    branches/Cog/src/plugins/UnicodePlugin/UnicodePlugin.c
    branches/Cog/src/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
    branches/Cog/src/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
    branches/Cog/src/vm/cointerp.c
    branches/Cog/src/vm/cointerp.h
    branches/Cog/src/vm/cointerpmt.c
    branches/Cog/src/vm/cointerpmt.h
    branches/Cog/src/vm/gcc3x-cointerp.c
    branches/Cog/src/vm/gcc3x-cointerpmt.c
    branches/Cog/stacksrc/vm/gcc3x-interp.c
    branches/Cog/stacksrc/vm/interp.c

Added Paths:
-----------
    branches/Cog/scripts/mkvmarchives

Removed Paths:
-------------
    branches/Cog/build.linux32x86/newspeak.stack.v3/
    branches/Cog/build.macos32x86/newspeak.stack.v3/
    branches/Cog/build.win32x86/newspeak.stack.v3/

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

Modified: branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
+ VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
- BalloonEnginePlugin VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
+ BalloonEnginePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "BalloonEnginePlugin VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a " __DATE__ ;
+static char __buildInfo[] = "BalloonEnginePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
 
 
 
@@ -836,9 +836,9 @@
 static void * loadBBFn;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "B2DPlugin VMMaker.oscog-eem.990 (i)"
+ "B2DPlugin VMMaker.oscog-eem.1064 (i)"
 #else
- "B2DPlugin VMMaker.oscog-eem.990 (e)"
+ "B2DPlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 static int* objBuffer;
@@ -9155,9 +9155,12 @@
  return primitiveFailFor(GEFBadPoint);
  }
  /* begin loadBitmapFill:colormap:tile:from:along:normal:xIndex: */
- tileFlag1 = (tileFlag
- ? 1
- : 0);
+ if (tileFlag) {
+ tileFlag1 = 1;
+ }
+ else {
+ tileFlag1 = 0;
+ }
  /* begin point1Get */
  point1 = ((int *) (workBuffer + GWPoint1));
  /* begin point2Get */

Modified: branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.998 uuid: 20a6acb3-9a01-4219-b650-8966301ffe11
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
- BitBltSimulation VMMaker.oscog-eem.998 uuid: 20a6acb3-9a01-4219-b650-8966301ffe11
+ BitBltSimulation VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "BitBltSimulation VMMaker.oscog-eem.998 uuid: 20a6acb3-9a01-4219-b650-8966301ffe11 " __DATE__ ;
+static char __buildInfo[] = "BitBltSimulation VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
 
 
 
@@ -269,9 +269,7 @@
 
 #if !defined(SQUEAK_BUILTIN_PLUGIN)
 static sqInt (*byteSizeOf)(sqInt oop);
-static sqInt (*classArray)(void);
 static sqInt (*failed)(void);
-static sqInt (*fetchClassOf)(sqInt oop);
 static sqInt (*fetchIntegerofObject)(sqInt fieldIndex, sqInt objectPointer);
 static sqInt (*fetchLong32ofObject)(sqInt fieldIndex, sqInt oop);
 static sqInt (*fetchPointerofObject)(sqInt index, sqInt oop);
@@ -280,6 +278,7 @@
 static sqInt (*integerObjectOf)(sqInt value);
 static sqInt (*integerValueOf)(sqInt oop);
 static void * (*ioLoadFunctionFrom)(char *functionName, char *moduleName);
+static sqInt (*isArray)(sqInt oop);
 static sqInt (*isBytes)(sqInt oop);
 static sqInt (*isIntegerObject)(sqInt objectPointer);
 static sqInt (*isPointers)(sqInt oop);
@@ -302,9 +301,7 @@
 static sqInt (*storeIntegerofObjectwithValue)(sqInt index, sqInt oop, sqInt integer);
 #else /* !defined(SQUEAK_BUILTIN_PLUGIN) */
 extern sqInt byteSizeOf(sqInt oop);
-extern sqInt classArray(void);
 extern sqInt failed(void);
-extern sqInt fetchClassOf(sqInt oop);
 extern sqInt fetchIntegerofObject(sqInt fieldIndex, sqInt objectPointer);
 extern sqInt fetchLong32ofObject(sqInt fieldIndex, sqInt oop);
 extern sqInt fetchPointerofObject(sqInt index, sqInt oop);
@@ -313,6 +310,7 @@
 extern sqInt integerObjectOf(sqInt value);
 extern sqInt integerValueOf(sqInt oop);
 extern void * ioLoadFunctionFrom(char *functionName, char *moduleName);
+extern sqInt isArray(sqInt oop);
 extern sqInt isBytes(sqInt oop);
 extern sqInt isIntegerObject(sqInt objectPointer);
 extern sqInt isPointers(sqInt oop);
@@ -346,9 +344,9 @@
 };
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "BitBltPlugin VMMaker.oscog-eem.998 (i)"
+ "BitBltPlugin VMMaker.oscog-eem.1064 (i)"
 #else
- "BitBltPlugin VMMaker.oscog-eem.998 (e)"
+ "BitBltPlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 static sqInt noHalftone;
@@ -5033,12 +5031,18 @@
  sqInt val;
  sqInt _return_value;
 
- colorA = (BytesPerOop == 4
- ? positive32BitValueOf(stackValue(2))
- : positive64BitValueOf(stackValue(2)));
- colorB = (BytesPerOop == 4
- ? positive32BitValueOf(stackValue(1))
- : positive64BitValueOf(stackValue(1)));
+ if (BytesPerOop == 4) {
+ colorA = positive32BitValueOf(stackValue(2));
+ }
+ else {
+ colorA = positive64BitValueOf(stackValue(2));
+ }
+ if (BytesPerOop == 4) {
+ colorB = positive32BitValueOf(stackValue(1));
+ }
+ else {
+ colorB = positive64BitValueOf(stackValue(1));
+ }
  testID = stackIntegerValue(0);
  rcvr = stackValue(3);
  if (failed()) {
@@ -5157,39 +5161,32 @@
  kernDelta = stackIntegerValue(0);
  xTable = stackObjectValue(1);
  glyphMap = stackObjectValue(2);
- if (!(((fetchClassOf(xTable)) == (classArray()))
- && ((fetchClassOf(glyphMap)) == (classArray())))) {
- return primitiveFail();
- }
- if (!((slotSizeOf(glyphMap)) == 256)) {
- return primitiveFail();
- }
- if (failed()) {
- return null;
- }
- maxGlyph = (slotSizeOf(xTable)) - 2;
  stopIndex = stackIntegerValue(3);
  startIndex = stackIntegerValue(4);
  sourceString = stackObjectValue(5);
- if (!(isBytes(sourceString))) {
- return primitiveFail();
+ bbObj = stackObjectValue(6);
+ if (failed()) {
+ return null;
  }
- if (!((startIndex > 0)
+ if (!((isArray(xTable))
+ && ((isArray(glyphMap))
+ && (((slotSizeOf(glyphMap)) == 256)
+ && ((isBytes(sourceString))
+ && ((startIndex > 0)
  && ((stopIndex > 0)
- && (stopIndex <= (byteSizeOf(sourceString)))))) {
+ && ((stopIndex <= (byteSizeOf(sourceString)))
+ && ((loadBitBltFromwarping(bbObj, 0))
+ && ((combinationRule != 30)
+ && (combinationRule != 0x1F))))))))))) {
  return primitiveFail();
  }
- bbObj = stackObjectValue(6);
- if (!(loadBitBltFromwarping(bbObj, 0))) {
- return primitiveFail();
- }
- if ((combinationRule == 30)
- || (combinationRule == 0x1F)) {
 
- /* needs extra source alpha */
+ /* See if we can go directly into copyLoopPixMap (usually we can) */
 
- return primitiveFail();
- }
+ maxGlyph = (slotSizeOf(xTable)) - 2;
+
+ /* no point using slower version */
+
  quickBlt = (destBits != 0)
  && ((sourceBits != 0)
  && ((noSource == 0)
@@ -6653,9 +6650,7 @@
 
 #if !defined(SQUEAK_BUILTIN_PLUGIN)
  byteSizeOf = interpreterProxy->byteSizeOf;
- classArray = interpreterProxy->classArray;
  failed = interpreterProxy->failed;
- fetchClassOf = interpreterProxy->fetchClassOf;
  fetchIntegerofObject = interpreterProxy->fetchIntegerofObject;
  fetchLong32ofObject = interpreterProxy->fetchLong32ofObject;
  fetchPointerofObject = interpreterProxy->fetchPointerofObject;
@@ -6664,6 +6659,7 @@
  integerObjectOf = interpreterProxy->integerObjectOf;
  integerValueOf = interpreterProxy->integerValueOf;
  ioLoadFunctionFrom = interpreterProxy->ioLoadFunctionFrom;
+ isArray = interpreterProxy->isArray;
  isBytes = interpreterProxy->isBytes;
  isIntegerObject = interpreterProxy->isIntegerObject;
  isPointers = interpreterProxy->isPointers;

Modified: branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
- FilePlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ FilePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "FilePlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d " __DATE__ ;
+static char __buildInfo[] = "FilePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
 
 
 
@@ -177,9 +177,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "FilePlugin VMMaker.oscog-eem.983 (i)"
+ "FilePlugin VMMaker.oscog-eem.1064 (i)"
 #else
- "FilePlugin VMMaker.oscog-eem.983 (e)"
+ "FilePlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 static void * sCCPfn;
@@ -853,9 +853,12 @@
  || (!(isWordsOrBytes(array)))) {
  return primitiveFailFor(PrimErrBadArgument);
  }
- elementSize = (isWords(array)
- ? 4
- : 1);
+ if (isWords(array)) {
+ elementSize = 4;
+ }
+ else {
+ elementSize = 1;
+ }
  if (!((startIndex >= 1)
  && (((startIndex + count) - 1) <= (slotSizeOf(array))))) {
  return primitiveFailFor(PrimErrBadIndex);
@@ -1080,9 +1083,12 @@
  || (!(isWordsOrBytes(array)))) {
  return primitiveFailFor(PrimErrBadArgument);
  }
- elementSize = (isWords(array)
- ? 4
- : 1);
+ if (isWords(array)) {
+ elementSize = 4;
+ }
+ else {
+ elementSize = 1;
+ }
  if (!((startIndex >= 1)
  && (((startIndex + count) - 1) <= (slotSizeOf(array))))) {
  return primitiveFailFor(PrimErrBadIndex);

Modified: branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c
===================================================================
--- branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1032 uuid: a3c915e6-d663-4d65-ab41-493c71498549
+ VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
- NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1032 uuid: a3c915e6-d663-4d65-ab41-493c71498549
+ NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1032 uuid: a3c915e6-d663-4d65-ab41-493c71498549 " __DATE__ ;
+static char __buildInfo[] = "NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
 
 
 
@@ -223,9 +223,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "IA32ABI VMMaker.oscog-eem.1032 (i)"
+ "IA32ABI VMMaker.oscog-eem.1064 (i)"
 #else
- "IA32ABI VMMaker.oscog-eem.1032 (e)"
+ "IA32ABI VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 
@@ -288,9 +288,12 @@
 
  rcvr = stackValue(0);
  value = longAt((rcvr + BaseHeaderSize) + BytesPerOop);
- valueOop = (BytesPerWord == 8
- ? positive64BitIntegerFor(value)
- : positive32BitIntegerFor(value));
+ if (BytesPerWord == 8) {
+ valueOop = positive64BitIntegerFor(value);
+ }
+ else {
+ valueOop = positive32BitIntegerFor(value);
+ }
  return methodReturnValue(valueOop);
 }
 
@@ -704,9 +707,9 @@
  || (((((usqInt)byteOffset)) + 8) <= (abs(dataSize))))) {
  return primitiveFailFor(PrimErrBadIndex);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -752,9 +755,9 @@
  if (isOopImmutable(rcvr)) {
  return primitiveFailFor(PrimErrNoModification);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -793,9 +796,9 @@
  || (((((usqInt)byteOffset)) + 4) <= (abs(dataSize))))) {
  return primitiveFailFor(PrimErrBadIndex);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -841,9 +844,9 @@
  if (isOopImmutable(rcvr)) {
  return primitiveFailFor(PrimErrNoModification);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1086,9 +1089,9 @@
  || (((((usqInt)byteOffset)) + 1) <= (abs(dataSize))))) {
  return primitiveFailFor(PrimErrBadIndex);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1131,9 +1134,9 @@
  if (isOopImmutable(rcvr)) {
  return primitiveFailFor(PrimErrNoModification);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1168,9 +1171,9 @@
  || (((((usqInt)byteOffset)) + 4) <= (abs(dataSize))))) {
  return primitiveFailFor(PrimErrBadIndex);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1211,9 +1214,9 @@
  if (isOopImmutable(rcvr)) {
  return primitiveFailFor(PrimErrNoModification);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1251,9 +1254,9 @@
  || (((((usqInt)byteOffset)) + 8) <= (abs(dataSize))))) {
  return primitiveFailFor(PrimErrBadIndex);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1299,9 +1302,9 @@
  if (isOopImmutable(rcvr)) {
  return primitiveFailFor(PrimErrNoModification);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1337,9 +1340,9 @@
  || (((((usqInt)byteOffset)) + 2) <= (abs(dataSize))))) {
  return primitiveFailFor(PrimErrBadIndex);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1382,9 +1385,9 @@
  if (isOopImmutable(rcvr)) {
  return primitiveFailFor(PrimErrNoModification);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1408,9 +1411,12 @@
 
  rcvr = stackValue(0);
  value = ((sqInt) (longAt(rcvr + BaseHeaderSize)));
- valueOop = (BytesPerWord == 8
- ? signed64BitIntegerFor(value)
- : signed32BitIntegerFor(value));
+ if (BytesPerWord == 8) {
+ valueOop = signed64BitIntegerFor(value);
+ }
+ else {
+ valueOop = signed32BitIntegerFor(value);
+ }
  return methodReturnValue(valueOop);
 }
 
@@ -1563,9 +1569,9 @@
  || (((((usqInt)byteOffset)) + 1) <= (abs(dataSize))))) {
  return primitiveFailFor(PrimErrBadIndex);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1607,9 +1613,9 @@
  if (isOopImmutable(rcvr)) {
  return primitiveFailFor(PrimErrNoModification);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1644,9 +1650,9 @@
  || (((((usqInt)byteOffset)) + 4) <= (abs(dataSize))))) {
  return primitiveFailFor(PrimErrBadIndex);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1687,9 +1693,9 @@
  if (isOopImmutable(rcvr)) {
  return primitiveFailFor(PrimErrNoModification);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1727,9 +1733,9 @@
  || (((((usqInt)byteOffset)) + 8) <= (abs(dataSize))))) {
  return primitiveFailFor(PrimErrBadIndex);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1776,9 +1782,9 @@
  if (isOopImmutable(rcvr)) {
  return primitiveFailFor(PrimErrNoModification);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1814,9 +1820,9 @@
  || (((((usqInt)byteOffset)) + 2) <= (abs(dataSize))))) {
  return primitiveFailFor(PrimErrBadIndex);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;
@@ -1858,9 +1864,9 @@
  if (isOopImmutable(rcvr)) {
  return primitiveFailFor(PrimErrNoModification);
  }
- if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
- ? (rcvr + BaseHeaderSize) + BytesPerOop
- : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+ if ((((longAt(rcvr + BaseHeaderSize)) > 0
+ ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+ : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
  return primitiveFailFor(PrimErrBadReceiver);
  }
  addr = startAddr + byteOffset;

Modified: branches/Cog/nscogsrc/plugins/LargeIntegers/LargeIntegers.c
===================================================================
--- branches/Cog/nscogsrc/plugins/LargeIntegers/LargeIntegers.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/LargeIntegers/LargeIntegers.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1048 uuid: 8c759c0d-f612-4018-8a05-45ec7f6af78f
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
- LargeIntegersPlugin VMMaker.oscog-eem.1048 uuid: 8c759c0d-f612-4018-8a05-45ec7f6af78f
+ LargeIntegersPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "LargeIntegersPlugin VMMaker.oscog-eem.1048 uuid: 8c759c0d-f612-4018-8a05-45ec7f6af78f " __DATE__ ;
+static char __buildInfo[] = "LargeIntegersPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
 
 
 
@@ -173,9 +173,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "LargeIntegers v1.5 VMMaker.oscog-eem.1048 (i)"
+ "LargeIntegers v1.5 VMMaker.oscog-eem.1064 (i)"
 #else
- "LargeIntegers v1.5 VMMaker.oscog-eem.1048 (e)"
+ "LargeIntegers v1.5 VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 static const int  orOpIndex = 1;
@@ -731,9 +731,12 @@
  dl = divLen - 1;
  ql = quoLen;
  dh = pDiv[dl - 1];
- dnh = (dl == 1
- ? 0
- : pDiv[dl - 2]);
+ if (dl == 1) {
+ dnh = 0;
+ }
+ else {
+ dnh = pDiv[dl - 2];
+ }
  for (k = 1; k <= ql; k += 1) {
 
  /* maintain quo*arg+rem=self */
@@ -1557,9 +1560,12 @@
  dl = divLen - 1;
  ql = quoLen;
  dh = pDiv[dl - 1];
- dnh = (dl == 1
- ? 0
- : pDiv[dl - 2]);
+ if (dl == 1) {
+ dnh = 0;
+ }
+ else {
+ dnh = pDiv[dl - 2];
+ }
  for (k = 1; k <= ql; k += 1) {
 
  /* maintain quo*arg+rem=self */
@@ -2167,12 +2173,12 @@
  if (len == 0) {
  return integerObjectOf(0);
  }
-
- /* SmallInteger minVal digitLength */
-
- sLen = ((MinSmallInteger) < -1073741824
- ? 8
- : 4);
+ if ((MinSmallInteger) < -1073741824) {
+ sLen = 8;
+ }
+ else {
+ sLen = 4;
+ }
  if (len <= sLen) {
 
  /* SmallInteger minVal */
@@ -2244,9 +2250,15 @@
  if (len == 0) {
  return integerObjectOf(0);
  }
- sLen = ((MinSmallInteger) > 0x3FFFFFFF
- ? 8
- : 4);
+ if ((MinSmallInteger) > 0x3FFFFFFF) {
+
+ /* SmallInteger maxVal digitLength. */
+
+ sLen = 8;
+ }
+ else {
+ sLen = 4;
+ }
  if ((len <= sLen)
  && ((digitOfBytesat(aLargePositiveInteger, sLen)) <= (cDigitOfCSIat(MaxSmallInteger, sLen)))) {
 

Modified: branches/Cog/nscogsrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,16 +1,16 @@
 /* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
- MiscPrimitivePlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
- Bitmap * Graphics-bf.303 uuid: 59c75040-7563-4061-8425-81f4467d3eb8
- ByteArray * Collections.spur-bf.588 uuid: 80ef5d3c-140e-4225-98f4-354435f1372e
- ByteString * Collections.spur-bf.588 uuid: 80ef5d3c-140e-4225-98f4-354435f1372e
+ MiscPrimitivePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
+ Bitmap * Graphics-kfr.305 uuid: ad7be66f-dd0c-8443-b773-b96836359b05
+ ByteArray * Collections.spur-mt.591, Collections.spur-eem.603 uuid: dd41c76b-9063-421b-87bc-4229ac3f5243
+ ByteString * Collections.spur-mt.591, Collections.spur-eem.603 uuid: dd41c76b-9063-421b-87bc-4229ac3f5243
  SampledSound Sound-bf.42 uuid: 01b2784a-0ad7-4a6b-a996-3388ab820acd
  */
-static char __buildInfo[] = "MiscPrimitivePlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d\n\
-Bitmap * Graphics-bf.303 uuid: 59c75040-7563-4061-8425-81f4467d3eb8\n\
-ByteArray * Collections.spur-bf.588 uuid: 80ef5d3c-140e-4225-98f4-354435f1372e\n\
-ByteString * Collections.spur-bf.588 uuid: 80ef5d3c-140e-4225-98f4-354435f1372e\n\
+static char __buildInfo[] = "MiscPrimitivePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3\n\
+Bitmap * Graphics-kfr.305 uuid: ad7be66f-dd0c-8443-b773-b96836359b05\n\
+ByteArray * Collections.spur-mt.591, Collections.spur-eem.603 uuid: dd41c76b-9063-421b-87bc-4229ac3f5243\n\
+ByteString * Collections.spur-mt.591, Collections.spur-eem.603 uuid: dd41c76b-9063-421b-87bc-4229ac3f5243\n\
 SampledSound Sound-bf.42 uuid: 01b2784a-0ad7-4a6b-a996-3388ab820acd " __DATE__ ;
 
 
@@ -94,9 +94,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "MiscPrimitivePlugin VMMaker.oscog-eem.983 (i)"
+ "MiscPrimitivePlugin VMMaker.oscog-eem.1064 (i)"
 #else
- "MiscPrimitivePlugin VMMaker.oscog-eem.983 (e)"
+ "MiscPrimitivePlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 

Modified: branches/Cog/nscogsrc/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
- VMProfileLinuxSupportPlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ VMProfileLinuxSupportPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d " __DATE__ ;
+static char __buildInfo[] = "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
 
 
 
@@ -51,6 +51,7 @@
 /*** Function Prototypes ***/
 static int countnummodules(struct dl_phdr_info *info, size_t size, void *ignored);
 EXPORT(const char*) getModuleName(void);
+static sqInt positiveMachineIntegerFor(unsigned long value);
 EXPORT(sqInt) primitiveDLSymInLibrary(void);
 EXPORT(sqInt) primitiveExecutableModules(void);
 EXPORT(sqInt) primitiveInterpretAddress(void);
@@ -73,6 +74,7 @@
 static sqInt (*nilObject)(void);
 static sqInt (*popRemappableOop)(void);
 static sqInt (*positive32BitIntegerFor)(sqInt integerValue);
+static sqInt (*positive64BitIntegerFor)(sqLong integerValue);
 static sqInt (*primitiveFailFor)(sqInt reasonCode);
 static sqInt (*pushRemappableOop)(sqInt oop);
 static sqInt (*stackValue)(sqInt offset);
@@ -90,6 +92,7 @@
 extern sqInt nilObject(void);
 extern sqInt popRemappableOop(void);
 extern sqInt positive32BitIntegerFor(sqInt integerValue);
+extern sqInt positive64BitIntegerFor(sqLong integerValue);
 extern sqInt primitiveFailFor(sqInt reasonCode);
 extern sqInt pushRemappableOop(sqInt oop);
 extern sqInt stackValue(sqInt offset);
@@ -100,9 +103,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.983 (i)"
+ "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.1064 (i)"
 #else
- "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.983 (e)"
+ "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 static sqInt numModules;
@@ -128,7 +131,15 @@
  return moduleName;
 }
 
+static sqInt
+positiveMachineIntegerFor(unsigned long value)
+{
+ return (BytesPerWord == 8
+ ? positive64BitIntegerFor(value)
+ : positive32BitIntegerFor(value));
+}
 
+
 /* Answer the address of the symbol whose name is the first argument
  in the library whose name is the second argument, or nil if none. */
 
@@ -175,7 +186,9 @@
  if (!ok) {
  return primitiveFailFor(PrimErrNotFound);
  }
- return methodReturnValue(positive32BitIntegerFor(((unsigned long)addr)));
+ return methodReturnValue((BytesPerWord == 8
+ ? positive64BitIntegerFor(((unsigned long)addr))
+ : positive32BitIntegerFor(((unsigned long)addr))));
 }
 
 
@@ -217,8 +230,9 @@
 {
     extern void interpret();
 
-
- return methodReturnValue(positive32BitIntegerFor(((unsigned long)interpret)));
+ return methodReturnValue((BytesPerWord == 8
+ ? positive64BitIntegerFor(((unsigned long)interpret))
+ : positive32BitIntegerFor(((unsigned long)interpret))));
 }
 
 static int
@@ -313,6 +327,7 @@
  nilObject = interpreterProxy->nilObject;
  popRemappableOop = interpreterProxy->popRemappableOop;
  positive32BitIntegerFor = interpreterProxy->positive32BitIntegerFor;
+ positive64BitIntegerFor = interpreterProxy->positive64BitIntegerFor;
  primitiveFailFor = interpreterProxy->primitiveFailFor;
  pushRemappableOop = interpreterProxy->pushRemappableOop;
  stackValue = interpreterProxy->stackValue;

Modified: branches/Cog/nscogsrc/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
- VMProfileMacSupportPlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+ VMProfileMacSupportPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "VMProfileMacSupportPlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d " __DATE__ ;
+static char __buildInfo[] = "VMProfileMacSupportPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
 
 
 
@@ -45,6 +45,7 @@
 
 /*** Function Prototypes ***/
 EXPORT(const char*) getModuleName(void);
+static sqInt positiveMachineIntegerFor(unsigned long value);
 EXPORT(sqInt) primitiveDLSym(void);
 EXPORT(sqInt) primitiveExecutableModulesAndOffsets(void);
 EXPORT(sqInt) setInterpreter(struct VirtualMachine*anInterpreter);
@@ -66,6 +67,7 @@
 static sqInt (*popthenPush)(sqInt nItems, sqInt oop);
 static sqInt (*popRemappableOop)(void);
 static sqInt (*positive32BitIntegerFor)(sqInt integerValue);
+static sqInt (*positive64BitIntegerFor)(sqLong integerValue);
 static sqInt (*primitiveFail)(void);
 static sqInt (*primitiveFailFor)(sqInt reasonCode);
 static sqInt (*pushRemappableOop)(sqInt oop);
@@ -87,6 +89,7 @@
 extern sqInt popthenPush(sqInt nItems, sqInt oop);
 extern sqInt popRemappableOop(void);
 extern sqInt positive32BitIntegerFor(sqInt integerValue);
+extern sqInt positive64BitIntegerFor(sqLong integerValue);
 extern sqInt primitiveFail(void);
 extern sqInt primitiveFailFor(sqInt reasonCode);
 extern sqInt pushRemappableOop(sqInt oop);
@@ -99,9 +102,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
- "VMProfileMacSupportPlugin VMMaker.oscog-eem.983 (i)"
+ "VMProfileMacSupportPlugin VMMaker.oscog-eem.1064 (i)"
 #else
- "VMProfileMacSupportPlugin VMMaker.oscog-eem.983 (e)"
+ "VMProfileMacSupportPlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 
@@ -118,7 +121,15 @@
  return moduleName;
 }
 
+static sqInt
+positiveMachineIntegerFor(unsigned long value)
+{
+ return (BytesPerWord == 8
+ ? positive64BitIntegerFor(value)
+ : positive32BitIntegerFor(value));
+}
 
+
 /* Answer the address of the argument in the current process or nil if none. */
 
 EXPORT(sqInt)
@@ -146,7 +157,9 @@
  free(name);
  return methodReturnValue((addr == 0
  ? nilObject()
- : positive32BitIntegerFor(((unsigned long)addr))));
+ : (BytesPerWord == 8
+ ? positive64BitIntegerFor(((unsigned long)addr))
+ : positive32BitIntegerFor(((unsigned long)addr)))));
 }
 
 
@@ -209,13 +222,23 @@
  return primitiveFail();
  }
  storePointerofObjectwithValue((i * 4) + 1, topRemappableOop(), valueObj);
- valueObj = positive32BitIntegerFor(start);
+ if (BytesPerWord == 8) {
+ valueObj = positive64BitIntegerFor(start);
+ }
+ else {
+ valueObj = positive32BitIntegerFor(start);
+ }
  if (failed()) {
  popRemappableOop();
  return primitiveFail();
  }
  storePointerofObjectwithValue((i * 4) + 2, topRemappableOop(), valueObj);
- valueObj = positive32BitIntegerFor(size);
+ if (BytesPerWord == 8) {
+ valueObj = positive64BitIntegerFor(size);
+ }
+ else {
+ valueObj = positive32BitIntegerFor(size);
+ }
  if (failed()) {
  popRemappableOop();
  return primitiveFail();
@@ -253,6 +276,7 @@
  popthenPush = interpreterProxy->popthenPush;
  popRemappableOop = interpreterProxy->popRemappableOop;
  positive32BitIntegerFor = interpreterProxy->positive32BitIntegerFor;
+ positive64BitIntegerFor = interpreterProxy->positive64BitIntegerFor;
  primitiveFail = interpreterProxy->primitiveFail;
  primitiveFailFor = interpreterProxy->primitiveFailFor;
  pushRemappableOop = interpreterProxy->pushRemappableOop;

Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/vm/cointerp.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1060 uuid: c43c476e-10ff-420e-a2eb-c17d4624e338
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
- CoInterpreter VMMaker.oscog-eem.1060 uuid: c43c476e-10ff-420e-a2eb-c17d4624e338
+ CoInterpreter VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1060 uuid: c43c476e-10ff-420e-a2eb-c17d4624e338 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -766,6 +766,7 @@
 EXPORT(void) primitiveSubtractLargeIntegers(void);
 static void primitiveTestAndSetOwnershipOfCriticalSection(void);
 static void primitiveTestDisplayDepth(void);
+static void primitiveTimesTwoPower(void);
 static void primitiveTruncated(void);
 static void primitiveUnloadModule(void);
 static void primitiveUpdateTimezone(void);
@@ -914,7 +915,6 @@
 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;
@@ -931,6 +931,7 @@
 static sqInt fwdBlockValid(sqInt addr) NoDbgRegParms;
 static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
 static sqInt hasForwardingBlock(sqInt objOop) NoDbgRegParms;
+static sqInt hasSixtyFourBitImmediates(void);
 static sqInt headerWhileForwardingOf(sqInt oop) NoDbgRegParms;
 sqInt indexablePointersFormat(void);
 sqInt instanceSizeOf(sqInt classObj);
@@ -1146,6 +1147,7 @@
 static sqInt marriedContextpointsTostackDeltaForCurrentFrame(sqInt spouseContext, sqInt anOop, sqInt stackDeltaForCurrentFrame) NoDbgRegParms;
 static void marryContextInNewStackPageAndInitializeInterpreterRegisters(sqInt aContext) NoDbgRegParms;
 static sqInt marryFrameSP(char *theFP, char *theSP) NoDbgRegParms;
+static sqInt maybeInlinePositive32BitIntegerFor(sqInt integerValue) NoDbgRegParms;
 static sqInt maybeSelectorOfMethod(sqInt methodObj) NoDbgRegParms;
 sqInt methodArgumentCount(void);
 sqInt methodArg(sqInt index);
@@ -1159,6 +1161,7 @@
 EXPORT(void) moduleUnloaded(char *aModuleName);
 static char * nameOfClass(sqInt classOop) NoDbgRegParms;
 static StackPage * newStackPage(void);
+static sqInt noInlineSigned32BitIntegerFor(sqInt integerValue) NoDbgRegParms;
 static sqInt noInlineTemporaryin(sqInt offset, char *theFP) NoDbgRegParms;
 static sqInt noInlineTemporaryinput(sqInt offset, char *theFP, sqInt valueOop) NoDbgRegParms;
 static sqInt noMarkedContextsOnPage(StackPage *thePage) NoDbgRegParms;
@@ -1365,17 +1368,18 @@
 _iss sqInt profileProcess;
 _iss sqInt profileSemaphore;
 _iss usqInt fwdTableNext;
-_iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt profileMethod;
 _iss usqInt compStart;
+_iss sqInt longRunningPrimitiveCheckMethod;
+_iss sqInt weakRootCount;
 _iss sqInt extraRootCount;
 _iss sqInt growHeadroom;
 _iss sqInt statGrowMemory;
 _iss sqInt tempOop2;
-_iss sqInt weakRootCount;
 _iss sqInt classNameIndex;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt preemptionYields;
+_iss sqInt cogCodeSize;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt statMarkCount;
 _iss sqInt cogCompiledCodeCompactionCalledFor;
@@ -1393,7 +1397,6 @@
 _iss usqLong statCheckForEvents;
 _iss usqLong statGCEndUsecs;
 _iss sqInt statSweepCount;
-_iss sqInt cogCodeSize;
 _iss usqInt compEnd;
 _iss sqInt externalPrimitiveTableFirstFreeIndex;
 _iss sqInt shrinkThreshold;
@@ -1422,11 +1425,13 @@
 _iss sqInt totalObjectCount;
 _iss sqInt fullScreenFlag;
 _iss usqInt gcBiasToGrowThreshold;
+_iss sqInt imageFloatsBigEndian;
 _iss sqInt interruptKeycode;
 _iss sqInt interruptPending;
 _iss usqInt memory;
 _iss sqInt methodDictLinearSearchLimit;
 _iss usqLong nextPollUsecs;
+_iss sqInt savedWindowSize;
 _iss usqLong statForceInterruptCheck;
 _iss usqLong statIGCDeltaUsecs;
 _iss sqInt statPendingFinalizationSignals;
@@ -1439,22 +1444,20 @@
 _iss sqInt gcBiasToGrow;
 _iss sqInt gcBiasToGrowGCLimit;
 _iss sqInt globalSessionID;
-_iss sqInt imageFloatsBigEndian;
+_iss usqLong longRunningPrimitiveGCUsecs;
 _iss sqInt longRunningPrimitiveSignalUndelivered;
 _iss sqInt maxExtSemTabSizeSet;
-_iss sqInt savedWindowSize;
 _iss sqInt statCodeCompactionCount;
 _iss usqLong statCodeCompactionUsecs;
 _iss sqInt statRootTableCount;
 _iss sqInt statSurvivorCount;
+_iss sqInt the2ndUnknownShort;
 _iss sqInt classByteArrayCompactIndex;
 _iss sqInt fullGCLock;
 _iss sqInt gcSemaphoreIndex;
 _iss sqInt imageHeaderFlags;
-_iss usqLong longRunningPrimitiveGCUsecs;
 _iss sqInt overflowLimit;
 _iss StackPage * overflowedPage;
-_iss sqInt the2ndUnknownShort;
 _iss long methodCache[MethodCacheSize + 1 /* 4097 */];
 _iss sqInt atCache[AtCacheTotalSize + 1 /* 65 */];
 _iss sqInt traceLog[TraceBufferSize /* 768 */];
@@ -1572,7 +1575,7 @@
  /* 51 */ primitiveTruncated,
  /* 52 */ primitiveFractionalPart,
  /* 53 */ primitiveExponent,
- /* 54 */ (void (*)(void))0,
+ /* 54 */ primitiveTimesTwoPower,
  /* 55 */ primitiveSquareRoot,
  /* 56 */ primitiveSine,
  /* 57 */ primitiveArctan,
@@ -2096,7 +2099,7 @@
  /* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1060";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1064";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -2434,9 +2437,12 @@
 
  /* begin pushTemporaryVariable: */
  /* begin internalPush: */
- object = (0 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
- ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 0 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
- : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 0 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+ if (0 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+ object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 0 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
+ else {
+ object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 0 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
  longAtPointerput((localSP -= BytesPerOop), object);
  }
  break;
@@ -2453,9 +2459,12 @@
 
  /* begin pushTemporaryVariable: */
  /* begin internalPush: */
- object = (1 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
- ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 1 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
- : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 1 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+ if (1 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+ object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 1 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
+ else {
+ object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 1 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
  longAtPointerput((localSP -= BytesPerOop), object);
  }
  break;
@@ -2472,9 +2481,12 @@
 
  /* begin pushTemporaryVariable: */
  /* begin internalPush: */
- object = (2 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
- ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 2 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
- : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 2 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+ if (2 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+ object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 2 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
+ else {
+ object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 2 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
  longAtPointerput((localSP -= BytesPerOop), object);
  }
  break;
@@ -2491,9 +2503,12 @@
 
  /* begin pushTemporaryVariable: */
  /* begin internalPush: */
- object = (3 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
- ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 3 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
- : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 3 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+ if (3 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+ object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 3 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
+ else {
+ object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 3 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
  longAtPointerput((localSP -= BytesPerOop), object);
  }
  break;
@@ -2510,9 +2525,12 @@
 
  /* begin pushTemporaryVariable: */
  /* begin internalPush: */
- object = (4 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
- ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 4 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
- : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 4 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+ if (4 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+ object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 4 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
+ else {
+ object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 4 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
  longAtPointerput((localSP -= BytesPerOop), object);
  }
  break;
@@ -2529,9 +2547,12 @@
 
  /* begin pushTemporaryVariable: */
  /* begin internalPush: */
- object = (5 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
- ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 5 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
- : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 5 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+ if (5 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+ object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 5 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
+ else {
+ object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 5 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
  longAtPointerput((localSP -= BytesPerOop), object);
  }
  break;
@@ -2548,9 +2569,12 @@
 
  /* begin pushTemporaryVariable: */
  /* begin internalPush: */
- object = (6 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
- ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 6 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
- : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 6 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+ if (6 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+ object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 6 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
+ else {
+ object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 6 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
  longAtPointerput((localSP -= BytesPerOop), object);
  }
  break;
@@ -2567,9 +2591,12 @@
 
  /* begin pushTemporaryVariable: */
  /* begin internalPush: */
- object = (7 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
- ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 7 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
- : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 7 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+ if (7 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+ object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 7 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
+ else {
+ object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 7 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
  longAtPointerput((localSP -= BytesPerOop), object);
  }
  break;
@@ -2586,9 +2613,12 @@
 
  /* begin pushTemporaryVariable: */
  /* begin internalPush: */
- object = (8 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
- ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 8 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
- : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 8 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+ if (8 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+ object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 8 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
+ else {
+ object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 8 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
  longAtPointerput((localSP -= BytesPerOop), object);
  }
  break;
@@ -2605,9 +2635,12 @@
 
  /* begin pushTemporaryVariable: */
  /* begin internalPush: */
- object = (9 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
- ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 9 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
- : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 9 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+ if (9 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+ object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 9 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }
+ else {
+ object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 9 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+ }

@@ Diff output truncated at 50000 characters. @@
Reply | Threaded
Open this post in threaded view
|

Re: [commit][3256] CogVM source as per VMMaker.oscog-eem.1064

Eliot Miranda-2
 
Just so you know this has introduced a major regression since while

    sqInt val = integerArgument | integerReceiver;
    val >= 0

may be true, integerArgument | integerReceiver is never true, and so now when integerArgument | integerReceiver is inlined into maybeInlinePositive32BitIntegerFor: we get

        if (((integerArgument | integerReceiver) >= 0)
         && (((integerArgument | integerReceiver) ^ ((integerArgument | integerReceiver) << 1)) >= 0)) {

which is sometimes true when (sqInt)(integerArgument | integerReceiver) >= 0 is false.  So I will have broken the Cadence builds.  Normal service may resume if I can figure this out.  Looks like I need to propagate the type of the argument somehow to generate


        if (((sqInt)(integerArgument | integerReceiver) >= 0)
         && (((sqInt)(integerArgument | integerReceiver) ^ ((sqInt)(integerArgument | integerReceiver) << 1)) >= 0)) {

or better still to introduce a temporary

On Fri, Feb 13, 2015 at 6:19 PM, <[hidden email]> wrote:

Revision: 3256
Author:   eliot
Date:     2015-02-13 18:19:04 -0800 (Fri, 13 Feb 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1064

Slang:
Rescue translation of the non-64-bit Spur VMs by
a) doing a better job of suoper expansions, handling expansions
        that are returning ifs as well as just returns correctly.
b) transforming variable := expr ifTrue: [s1] ifFalse: [s2] into
    expr ifTrue: [variable := s1] ifFalse: [variable := s2]
to allow inlining of s1 & s2.

And take advantage of the better inlining in copyAndForward:

General:
Simplify primitiveDisplayString given isArray:.

Refactor positive32BitIntegerFor: and signed32BitIntegerFor: in the realization
that these reduce to essentially integerObjectOf: in 64-bit Spur.  The idea is
to inline if in 64-bit Spur but not if in the 32-bit VMs.  Add notOption:
processing to allow excluding noInlineSigned32BitIntegerFor: et al.  Add
hasSixtyFourBitImmediates to no longer assume that wordSize = 8 implies 64-bit
immediates.

Use positiveMachineIntegerFor: in place of
positive32BitIntegerFor: in some plugins.

Simplify two B3DAcceleratorPlugin prims given topRemappableOop and isArray:

With these changes 64-bit Spur Stack Linux manages
3548 run, 3495 passes, 0 expected failures, 47 failures, 6 errors, 0 unexpected passes

Builds:
Nuke the newspeak.stack.v3 builds

Modified Paths:
--------------
    branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c
    branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c
    branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c
    branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c
    branches/Cog/nscogsrc/plugins/LargeIntegers/LargeIntegers.c
    branches/Cog/nscogsrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
    branches/Cog/nscogsrc/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
    branches/Cog/nscogsrc/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
    branches/Cog/nscogsrc/vm/cointerp.c
    branches/Cog/nscogsrc/vm/cointerp.h
    branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
    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/findUnofficialFiles
    branches/Cog/sistasrc/vm/cointerp.c
    branches/Cog/sistasrc/vm/cointerp.h
    branches/Cog/sistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.h
    branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spurstack64src/vm/gcc3x-interp.c
    branches/Cog/spurstack64src/vm/interp.c
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.c
    branches/Cog/src/plugins/B2DPlugin/B2DPlugin.c
    branches/Cog/src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
    branches/Cog/src/plugins/BitBltPlugin/BitBltPlugin.c
    branches/Cog/src/plugins/BochsIA32Plugin/BochsIA32Plugin.c
    branches/Cog/src/plugins/FilePlugin/FilePlugin.c
    branches/Cog/src/plugins/GdbARMPlugin/GdbARMPlugin.c
    branches/Cog/src/plugins/IA32ABI/IA32ABI.c
    branches/Cog/src/plugins/LargeIntegers/LargeIntegers.c
    branches/Cog/src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
    branches/Cog/src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c
    branches/Cog/src/plugins/SqueakFFIPrims/IA32FFIPlugin.c
    branches/Cog/src/plugins/UnicodePlugin/UnicodePlugin.c
    branches/Cog/src/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
    branches/Cog/src/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
    branches/Cog/src/vm/cointerp.c
    branches/Cog/src/vm/cointerp.h
    branches/Cog/src/vm/cointerpmt.c
    branches/Cog/src/vm/cointerpmt.h
    branches/Cog/src/vm/gcc3x-cointerp.c
    branches/Cog/src/vm/gcc3x-cointerpmt.c
    branches/Cog/stacksrc/vm/gcc3x-interp.c
    branches/Cog/stacksrc/vm/interp.c

Added Paths:
-----------
    branches/Cog/scripts/mkvmarchives

Removed Paths:
-------------
    branches/Cog/build.linux32x86/newspeak.stack.v3/
    branches/Cog/build.macos32x86/newspeak.stack.v3/
    branches/Cog/build.win32x86/newspeak.stack.v3/

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

Modified: branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/B2DPlugin/B2DPlugin.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-       VMPluginCodeGenerator VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
+       VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
-       BalloonEnginePlugin VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a
+       BalloonEnginePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "BalloonEnginePlugin VMMaker.oscog-eem.990 uuid: f4a22308-891c-4542-b6a4-10fe174bc82a " __DATE__ ;
+static char __buildInfo[] = "BalloonEnginePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;



@@ -836,9 +836,9 @@
 static void * loadBBFn;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-       "B2DPlugin VMMaker.oscog-eem.990 (i)"
+       "B2DPlugin VMMaker.oscog-eem.1064 (i)"
 #else
-       "B2DPlugin VMMaker.oscog-eem.990 (e)"
+       "B2DPlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 static int* objBuffer;
@@ -9155,9 +9155,12 @@
                return primitiveFailFor(GEFBadPoint);
        }
        /* begin loadBitmapFill:colormap:tile:from:along:normal:xIndex: */
-       tileFlag1 = (tileFlag
-               ? 1
-               : 0);
+       if (tileFlag) {
+               tileFlag1 = 1;
+       }
+       else {
+               tileFlag1 = 0;
+       }
        /* begin point1Get */
        point1 = ((int *) (workBuffer + GWPoint1));
        /* begin point2Get */

Modified: branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c   2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/BitBltPlugin/BitBltPlugin.c   2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-       SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.998 uuid: 20a6acb3-9a01-4219-b650-8966301ffe11
+       SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
-       BitBltSimulation VMMaker.oscog-eem.998 uuid: 20a6acb3-9a01-4219-b650-8966301ffe11
+       BitBltSimulation VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "BitBltSimulation VMMaker.oscog-eem.998 uuid: 20a6acb3-9a01-4219-b650-8966301ffe11 " __DATE__ ;
+static char __buildInfo[] = "BitBltSimulation VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;



@@ -269,9 +269,7 @@

 #if !defined(SQUEAK_BUILTIN_PLUGIN)
 static sqInt (*byteSizeOf)(sqInt oop);
-static sqInt (*classArray)(void);
 static sqInt (*failed)(void);
-static sqInt (*fetchClassOf)(sqInt oop);
 static sqInt (*fetchIntegerofObject)(sqInt fieldIndex, sqInt objectPointer);
 static sqInt (*fetchLong32ofObject)(sqInt fieldIndex, sqInt oop);
 static sqInt (*fetchPointerofObject)(sqInt index, sqInt oop);
@@ -280,6 +278,7 @@
 static sqInt (*integerObjectOf)(sqInt value);
 static sqInt (*integerValueOf)(sqInt oop);
 static void * (*ioLoadFunctionFrom)(char *functionName, char *moduleName);
+static sqInt (*isArray)(sqInt oop);
 static sqInt (*isBytes)(sqInt oop);
 static sqInt (*isIntegerObject)(sqInt objectPointer);
 static sqInt (*isPointers)(sqInt oop);
@@ -302,9 +301,7 @@
 static sqInt (*storeIntegerofObjectwithValue)(sqInt index, sqInt oop, sqInt integer);
 #else /* !defined(SQUEAK_BUILTIN_PLUGIN) */
 extern sqInt byteSizeOf(sqInt oop);
-extern sqInt classArray(void);
 extern sqInt failed(void);
-extern sqInt fetchClassOf(sqInt oop);
 extern sqInt fetchIntegerofObject(sqInt fieldIndex, sqInt objectPointer);
 extern sqInt fetchLong32ofObject(sqInt fieldIndex, sqInt oop);
 extern sqInt fetchPointerofObject(sqInt index, sqInt oop);
@@ -313,6 +310,7 @@
 extern sqInt integerObjectOf(sqInt value);
 extern sqInt integerValueOf(sqInt oop);
 extern void * ioLoadFunctionFrom(char *functionName, char *moduleName);
+extern sqInt isArray(sqInt oop);
 extern sqInt isBytes(sqInt oop);
 extern sqInt isIntegerObject(sqInt objectPointer);
 extern sqInt isPointers(sqInt oop);
@@ -346,9 +344,9 @@
 };
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-       "BitBltPlugin VMMaker.oscog-eem.998 (i)"
+       "BitBltPlugin VMMaker.oscog-eem.1064 (i)"
 #else
-       "BitBltPlugin VMMaker.oscog-eem.998 (e)"
+       "BitBltPlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 static sqInt noHalftone;
@@ -5033,12 +5031,18 @@
        sqInt val;
        sqInt _return_value;

-       colorA = (BytesPerOop == 4
-               ? positive32BitValueOf(stackValue(2))
-               : positive64BitValueOf(stackValue(2)));
-       colorB = (BytesPerOop == 4
-               ? positive32BitValueOf(stackValue(1))
-               : positive64BitValueOf(stackValue(1)));
+       if (BytesPerOop == 4) {
+               colorA = positive32BitValueOf(stackValue(2));
+       }
+       else {
+               colorA = positive64BitValueOf(stackValue(2));
+       }
+       if (BytesPerOop == 4) {
+               colorB = positive32BitValueOf(stackValue(1));
+       }
+       else {
+               colorB = positive64BitValueOf(stackValue(1));
+       }
        testID = stackIntegerValue(0);
        rcvr = stackValue(3);
        if (failed()) {
@@ -5157,39 +5161,32 @@
        kernDelta = stackIntegerValue(0);
        xTable = stackObjectValue(1);
        glyphMap = stackObjectValue(2);
-       if (!(((fetchClassOf(xTable)) == (classArray()))
-                && ((fetchClassOf(glyphMap)) == (classArray())))) {
-               return primitiveFail();
-       }
-       if (!((slotSizeOf(glyphMap)) == 256)) {
-               return primitiveFail();
-       }
-       if (failed()) {
-               return null;
-       }
-       maxGlyph = (slotSizeOf(xTable)) - 2;
        stopIndex = stackIntegerValue(3);
        startIndex = stackIntegerValue(4);
        sourceString = stackObjectValue(5);
-       if (!(isBytes(sourceString))) {
-               return primitiveFail();
+       bbObj = stackObjectValue(6);
+       if (failed()) {
+               return null;
        }
-       if (!((startIndex > 0)
+       if (!((isArray(xTable))
+                && ((isArray(glyphMap))
+                && (((slotSizeOf(glyphMap)) == 256)
+                && ((isBytes(sourceString))
+                && ((startIndex > 0)
                 && ((stopIndex > 0)
-                && (stopIndex <= (byteSizeOf(sourceString)))))) {
+                && ((stopIndex <= (byteSizeOf(sourceString)))
+                && ((loadBitBltFromwarping(bbObj, 0))
+                && ((combinationRule != 30)
+                && (combinationRule != 0x1F))))))))))) {
                return primitiveFail();
        }
-       bbObj = stackObjectValue(6);
-       if (!(loadBitBltFromwarping(bbObj, 0))) {
-               return primitiveFail();
-       }
-       if ((combinationRule == 30)
-        || (combinationRule == 0x1F)) {

-               /* needs extra source alpha */
+       /* See if we can go directly into copyLoopPixMap (usually we can) */

-               return primitiveFail();
-       }
+       maxGlyph = (slotSizeOf(xTable)) - 2;
+
+       /* no point using slower version */
+
        quickBlt = (destBits != 0)
         && ((sourceBits != 0)
         && ((noSource == 0)
@@ -6653,9 +6650,7 @@

 #if !defined(SQUEAK_BUILTIN_PLUGIN)
                byteSizeOf = interpreterProxy->byteSizeOf;
-               classArray = interpreterProxy->classArray;
                failed = interpreterProxy->failed;
-               fetchClassOf = interpreterProxy->fetchClassOf;
                fetchIntegerofObject = interpreterProxy->fetchIntegerofObject;
                fetchLong32ofObject = interpreterProxy->fetchLong32ofObject;
                fetchPointerofObject = interpreterProxy->fetchPointerofObject;
@@ -6664,6 +6659,7 @@
                integerObjectOf = interpreterProxy->integerObjectOf;
                integerValueOf = interpreterProxy->integerValueOf;
                ioLoadFunctionFrom = interpreterProxy->ioLoadFunctionFrom;
+               isArray = interpreterProxy->isArray;
                isBytes = interpreterProxy->isBytes;
                isIntegerObject = interpreterProxy->isIntegerObject;
                isPointers = interpreterProxy->isPointers;

Modified: branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c       2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/FilePlugin/FilePlugin.c       2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-       VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+       VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
-       FilePlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+       FilePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "FilePlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d " __DATE__ ;
+static char __buildInfo[] = "FilePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;



@@ -177,9 +177,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-       "FilePlugin VMMaker.oscog-eem.983 (i)"
+       "FilePlugin VMMaker.oscog-eem.1064 (i)"
 #else
-       "FilePlugin VMMaker.oscog-eem.983 (e)"
+       "FilePlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 static void * sCCPfn;
@@ -853,9 +853,12 @@
                 || (!(isWordsOrBytes(array)))) {
                        return primitiveFailFor(PrimErrBadArgument);
                }
-               elementSize = (isWords(array)
-                       ? 4
-                       : 1);
+               if (isWords(array)) {
+                       elementSize = 4;
+               }
+               else {
+                       elementSize = 1;
+               }
                if (!((startIndex >= 1)
                         && (((startIndex + count) - 1) <= (slotSizeOf(array))))) {
                        return primitiveFailFor(PrimErrBadIndex);
@@ -1080,9 +1083,12 @@
         || (!(isWordsOrBytes(array)))) {
                return primitiveFailFor(PrimErrBadArgument);
        }
-       elementSize = (isWords(array)
-               ? 4
-               : 1);
+       if (isWords(array)) {
+               elementSize = 4;
+       }
+       else {
+               elementSize = 1;
+       }
        if (!((startIndex >= 1)
                 && (((startIndex + count) - 1) <= (slotSizeOf(array))))) {
                return primitiveFailFor(PrimErrBadIndex);

Modified: branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c
===================================================================
--- branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c     2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/IA32ABI/IA32ABI.c     2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-       VMPluginCodeGenerator VMMaker.oscog-eem.1032 uuid: a3c915e6-d663-4d65-ab41-493c71498549
+       VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
-       NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1032 uuid: a3c915e6-d663-4d65-ab41-493c71498549
+       NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1032 uuid: a3c915e6-d663-4d65-ab41-493c71498549 " __DATE__ ;
+static char __buildInfo[] = "NewsqueakIA32ABIPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;



@@ -223,9 +223,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-       "IA32ABI VMMaker.oscog-eem.1032 (i)"
+       "IA32ABI VMMaker.oscog-eem.1064 (i)"
 #else
-       "IA32ABI VMMaker.oscog-eem.1032 (e)"
+       "IA32ABI VMMaker.oscog-eem.1064 (e)"
 #endif
 ;

@@ -288,9 +288,12 @@

        rcvr = stackValue(0);
        value = longAt((rcvr + BaseHeaderSize) + BytesPerOop);
-       valueOop = (BytesPerWord == 8
-               ? positive64BitIntegerFor(value)
-               : positive32BitIntegerFor(value));
+       if (BytesPerWord == 8) {
+               valueOop = positive64BitIntegerFor(value);
+       }
+       else {
+               valueOop = positive32BitIntegerFor(value);
+       }
        return methodReturnValue(valueOop);
 }

@@ -704,9 +707,9 @@
                 || (((((usqInt)byteOffset)) + 8) <= (abs(dataSize))))) {
                return primitiveFailFor(PrimErrBadIndex);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -752,9 +755,9 @@
        if (isOopImmutable(rcvr)) {
                return primitiveFailFor(PrimErrNoModification);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -793,9 +796,9 @@
                 || (((((usqInt)byteOffset)) + 4) <= (abs(dataSize))))) {
                return primitiveFailFor(PrimErrBadIndex);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -841,9 +844,9 @@
        if (isOopImmutable(rcvr)) {
                return primitiveFailFor(PrimErrNoModification);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1086,9 +1089,9 @@
                 || (((((usqInt)byteOffset)) + 1) <= (abs(dataSize))))) {
                return primitiveFailFor(PrimErrBadIndex);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1131,9 +1134,9 @@
        if (isOopImmutable(rcvr)) {
                return primitiveFailFor(PrimErrNoModification);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1168,9 +1171,9 @@
                 || (((((usqInt)byteOffset)) + 4) <= (abs(dataSize))))) {
                return primitiveFailFor(PrimErrBadIndex);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1211,9 +1214,9 @@
        if (isOopImmutable(rcvr)) {
                return primitiveFailFor(PrimErrNoModification);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1251,9 +1254,9 @@
                 || (((((usqInt)byteOffset)) + 8) <= (abs(dataSize))))) {
                return primitiveFailFor(PrimErrBadIndex);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1299,9 +1302,9 @@
        if (isOopImmutable(rcvr)) {
                return primitiveFailFor(PrimErrNoModification);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1337,9 +1340,9 @@
                 || (((((usqInt)byteOffset)) + 2) <= (abs(dataSize))))) {
                return primitiveFailFor(PrimErrBadIndex);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1382,9 +1385,9 @@
        if (isOopImmutable(rcvr)) {
                return primitiveFailFor(PrimErrNoModification);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1408,9 +1411,12 @@

        rcvr = stackValue(0);
        value = ((sqInt) (longAt(rcvr + BaseHeaderSize)));
-       valueOop = (BytesPerWord == 8
-               ? signed64BitIntegerFor(value)
-               : signed32BitIntegerFor(value));
+       if (BytesPerWord == 8) {
+               valueOop = signed64BitIntegerFor(value);
+       }
+       else {
+               valueOop = signed32BitIntegerFor(value);
+       }
        return methodReturnValue(valueOop);
 }

@@ -1563,9 +1569,9 @@
                 || (((((usqInt)byteOffset)) + 1) <= (abs(dataSize))))) {
                return primitiveFailFor(PrimErrBadIndex);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1607,9 +1613,9 @@
        if (isOopImmutable(rcvr)) {
                return primitiveFailFor(PrimErrNoModification);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1644,9 +1650,9 @@
                 || (((((usqInt)byteOffset)) + 4) <= (abs(dataSize))))) {
                return primitiveFailFor(PrimErrBadIndex);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1687,9 +1693,9 @@
        if (isOopImmutable(rcvr)) {
                return primitiveFailFor(PrimErrNoModification);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1727,9 +1733,9 @@
                 || (((((usqInt)byteOffset)) + 8) <= (abs(dataSize))))) {
                return primitiveFailFor(PrimErrBadIndex);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1776,9 +1782,9 @@
        if (isOopImmutable(rcvr)) {
                return primitiveFailFor(PrimErrNoModification);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1814,9 +1820,9 @@
                 || (((((usqInt)byteOffset)) + 2) <= (abs(dataSize))))) {
                return primitiveFailFor(PrimErrBadIndex);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;
@@ -1858,9 +1864,9 @@
        if (isOopImmutable(rcvr)) {
                return primitiveFailFor(PrimErrNoModification);
        }
-       if (((startAddr = ((longAt(rcvr + BaseHeaderSize)) > 0
-       ? (rcvr + BaseHeaderSize) + BytesPerOop
-       : longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
+       if ((((longAt(rcvr + BaseHeaderSize)) > 0
+       ? (startAddr = (rcvr + BaseHeaderSize) + BytesPerOop)
+       : (startAddr = longAt((rcvr + BaseHeaderSize) + BytesPerOop)))) == 0) {
                return primitiveFailFor(PrimErrBadReceiver);
        }
        addr = startAddr + byteOffset;

Modified: branches/Cog/nscogsrc/plugins/LargeIntegers/LargeIntegers.c
===================================================================
--- branches/Cog/nscogsrc/plugins/LargeIntegers/LargeIntegers.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/LargeIntegers/LargeIntegers.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-       SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1048 uuid: 8c759c0d-f612-4018-8a05-45ec7f6af78f
+       SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
-       LargeIntegersPlugin VMMaker.oscog-eem.1048 uuid: 8c759c0d-f612-4018-8a05-45ec7f6af78f
+       LargeIntegersPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "LargeIntegersPlugin VMMaker.oscog-eem.1048 uuid: 8c759c0d-f612-4018-8a05-45ec7f6af78f " __DATE__ ;
+static char __buildInfo[] = "LargeIntegersPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;



@@ -173,9 +173,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-       "LargeIntegers v1.5 VMMaker.oscog-eem.1048 (i)"
+       "LargeIntegers v1.5 VMMaker.oscog-eem.1064 (i)"
 #else
-       "LargeIntegers v1.5 VMMaker.oscog-eem.1048 (e)"
+       "LargeIntegers v1.5 VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 static const int  orOpIndex = 1;
@@ -731,9 +731,12 @@
        dl = divLen - 1;
        ql = quoLen;
        dh = pDiv[dl - 1];
-       dnh = (dl == 1
-               ? 0
-               : pDiv[dl - 2]);
+       if (dl == 1) {
+               dnh = 0;
+       }
+       else {
+               dnh = pDiv[dl - 2];
+       }
        for (k = 1; k <= ql; k += 1) {

                /* maintain quo*arg+rem=self */
@@ -1557,9 +1560,12 @@
        dl = divLen - 1;
        ql = quoLen;
        dh = pDiv[dl - 1];
-       dnh = (dl == 1
-               ? 0
-               : pDiv[dl - 2]);
+       if (dl == 1) {
+               dnh = 0;
+       }
+       else {
+               dnh = pDiv[dl - 2];
+       }
        for (k = 1; k <= ql; k += 1) {

                /* maintain quo*arg+rem=self */
@@ -2167,12 +2173,12 @@
        if (len == 0) {
                return integerObjectOf(0);
        }
-
-       /* SmallInteger minVal digitLength */
-
-       sLen = ((MinSmallInteger) < -1073741824
-               ? 8
-               : 4);
+       if ((MinSmallInteger) < -1073741824) {
+               sLen = 8;
+       }
+       else {
+               sLen = 4;
+       }
        if (len <= sLen) {

                /* SmallInteger minVal */
@@ -2244,9 +2250,15 @@
        if (len == 0) {
                return integerObjectOf(0);
        }
-       sLen = ((MinSmallInteger) > 0x3FFFFFFF
-               ? 8
-               : 4);
+       if ((MinSmallInteger) > 0x3FFFFFFF) {
+
+               /* SmallInteger maxVal digitLength. */
+
+               sLen = 8;
+       }
+       else {
+               sLen = 4;
+       }
        if ((len <= sLen)
         && ((digitOfBytesat(aLargePositiveInteger, sLen)) <= (cDigitOfCSIat(MaxSmallInteger, sLen)))) {


Modified: branches/Cog/nscogsrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c     2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c     2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,16 +1,16 @@
 /* Automatically generated by
-       VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+       VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
-       MiscPrimitivePlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
-       Bitmap * Graphics-bf.303 uuid: 59c75040-7563-4061-8425-81f4467d3eb8
-       ByteArray * Collections.spur-bf.588 uuid: 80ef5d3c-140e-4225-98f4-354435f1372e
-       ByteString * Collections.spur-bf.588 uuid: 80ef5d3c-140e-4225-98f4-354435f1372e
+       MiscPrimitivePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
+       Bitmap * Graphics-kfr.305 uuid: ad7be66f-dd0c-8443-b773-b96836359b05
+       ByteArray * Collections.spur-mt.591, Collections.spur-eem.603 uuid: dd41c76b-9063-421b-87bc-4229ac3f5243
+       ByteString * Collections.spur-mt.591, Collections.spur-eem.603 uuid: dd41c76b-9063-421b-87bc-4229ac3f5243
        SampledSound Sound-bf.42 uuid: 01b2784a-0ad7-4a6b-a996-3388ab820acd
  */
-static char __buildInfo[] = "MiscPrimitivePlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d\n\
-Bitmap * Graphics-bf.303 uuid: 59c75040-7563-4061-8425-81f4467d3eb8\n\
-ByteArray * Collections.spur-bf.588 uuid: 80ef5d3c-140e-4225-98f4-354435f1372e\n\
-ByteString * Collections.spur-bf.588 uuid: 80ef5d3c-140e-4225-98f4-354435f1372e\n\
+static char __buildInfo[] = "MiscPrimitivePlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3\n\
+Bitmap * Graphics-kfr.305 uuid: ad7be66f-dd0c-8443-b773-b96836359b05\n\
+ByteArray * Collections.spur-mt.591, Collections.spur-eem.603 uuid: dd41c76b-9063-421b-87bc-4229ac3f5243\n\
+ByteString * Collections.spur-mt.591, Collections.spur-eem.603 uuid: dd41c76b-9063-421b-87bc-4229ac3f5243\n\
 SampledSound Sound-bf.42 uuid: 01b2784a-0ad7-4a6b-a996-3388ab820acd " __DATE__ ;


@@ -94,9 +94,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-       "MiscPrimitivePlugin VMMaker.oscog-eem.983 (i)"
+       "MiscPrimitivePlugin VMMaker.oscog-eem.1064 (i)"
 #else
-       "MiscPrimitivePlugin VMMaker.oscog-eem.983 (e)"
+       "MiscPrimitivePlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;


Modified: branches/Cog/nscogsrc/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c     2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c     2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-       VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+       VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
-       VMProfileLinuxSupportPlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+       VMProfileLinuxSupportPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d " __DATE__ ;
+static char __buildInfo[] = "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;



@@ -51,6 +51,7 @@
 /*** Function Prototypes ***/
 static int countnummodules(struct dl_phdr_info *info, size_t size, void *ignored);
 EXPORT(const char*) getModuleName(void);
+static sqInt positiveMachineIntegerFor(unsigned long value);
 EXPORT(sqInt) primitiveDLSymInLibrary(void);
 EXPORT(sqInt) primitiveExecutableModules(void);
 EXPORT(sqInt) primitiveInterpretAddress(void);
@@ -73,6 +74,7 @@
 static sqInt (*nilObject)(void);
 static sqInt (*popRemappableOop)(void);
 static sqInt (*positive32BitIntegerFor)(sqInt integerValue);
+static sqInt (*positive64BitIntegerFor)(sqLong integerValue);
 static sqInt (*primitiveFailFor)(sqInt reasonCode);
 static sqInt (*pushRemappableOop)(sqInt oop);
 static sqInt (*stackValue)(sqInt offset);
@@ -90,6 +92,7 @@
 extern sqInt nilObject(void);
 extern sqInt popRemappableOop(void);
 extern sqInt positive32BitIntegerFor(sqInt integerValue);
+extern sqInt positive64BitIntegerFor(sqLong integerValue);
 extern sqInt primitiveFailFor(sqInt reasonCode);
 extern sqInt pushRemappableOop(sqInt oop);
 extern sqInt stackValue(sqInt offset);
@@ -100,9 +103,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-       "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.983 (i)"
+       "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.1064 (i)"
 #else
-       "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.983 (e)"
+       "VMProfileLinuxSupportPlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;
 static sqInt numModules;
@@ -128,7 +131,15 @@
        return moduleName;
 }

+static sqInt
+positiveMachineIntegerFor(unsigned long value)
+{
+       return (BytesPerWord == 8
+               ? positive64BitIntegerFor(value)
+               : positive32BitIntegerFor(value));
+}

+
 /*     Answer the address of the symbol whose name is the first argument
        in the library whose name is the second argument, or nil if none. */

@@ -175,7 +186,9 @@
        if (!ok) {
                return primitiveFailFor(PrimErrNotFound);
        }
-       return methodReturnValue(positive32BitIntegerFor(((unsigned long)addr)));
+       return methodReturnValue((BytesPerWord == 8
+               ? positive64BitIntegerFor(((unsigned long)addr))
+               : positive32BitIntegerFor(((unsigned long)addr))));
 }


@@ -217,8 +230,9 @@
 {
     extern void interpret();

-
-       return methodReturnValue(positive32BitIntegerFor(((unsigned long)interpret)));
+       return methodReturnValue((BytesPerWord == 8
+               ? positive64BitIntegerFor(((unsigned long)interpret))
+               : positive32BitIntegerFor(((unsigned long)interpret))));
 }

 static int
@@ -313,6 +327,7 @@
                nilObject = interpreterProxy->nilObject;
                popRemappableOop = interpreterProxy->popRemappableOop;
                positive32BitIntegerFor = interpreterProxy->positive32BitIntegerFor;
+               positive64BitIntegerFor = interpreterProxy->positive64BitIntegerFor;
                primitiveFailFor = interpreterProxy->primitiveFailFor;
                pushRemappableOop = interpreterProxy->pushRemappableOop;
                stackValue = interpreterProxy->stackValue;

Modified: branches/Cog/nscogsrc/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-       VMPluginCodeGenerator VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+       VMPluginCodeGenerator VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
-       VMProfileMacSupportPlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d
+       VMProfileMacSupportPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "VMProfileMacSupportPlugin VMMaker.oscog-eem.983 uuid: 4cdca841-6318-4c49-95de-8c47d0d7e91d " __DATE__ ;
+static char __buildInfo[] = "VMProfileMacSupportPlugin VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;



@@ -45,6 +45,7 @@

 /*** Function Prototypes ***/
 EXPORT(const char*) getModuleName(void);
+static sqInt positiveMachineIntegerFor(unsigned long value);
 EXPORT(sqInt) primitiveDLSym(void);
 EXPORT(sqInt) primitiveExecutableModulesAndOffsets(void);
 EXPORT(sqInt) setInterpreter(struct VirtualMachine*anInterpreter);
@@ -66,6 +67,7 @@
 static sqInt (*popthenPush)(sqInt nItems, sqInt oop);
 static sqInt (*popRemappableOop)(void);
 static sqInt (*positive32BitIntegerFor)(sqInt integerValue);
+static sqInt (*positive64BitIntegerFor)(sqLong integerValue);
 static sqInt (*primitiveFail)(void);
 static sqInt (*primitiveFailFor)(sqInt reasonCode);
 static sqInt (*pushRemappableOop)(sqInt oop);
@@ -87,6 +89,7 @@
 extern sqInt popthenPush(sqInt nItems, sqInt oop);
 extern sqInt popRemappableOop(void);
 extern sqInt positive32BitIntegerFor(sqInt integerValue);
+extern sqInt positive64BitIntegerFor(sqLong integerValue);
 extern sqInt primitiveFail(void);
 extern sqInt primitiveFailFor(sqInt reasonCode);
 extern sqInt pushRemappableOop(sqInt oop);
@@ -99,9 +102,9 @@
 struct VirtualMachine* interpreterProxy;
 static const char *moduleName =
 #ifdef SQUEAK_BUILTIN_PLUGIN
-       "VMProfileMacSupportPlugin VMMaker.oscog-eem.983 (i)"
+       "VMProfileMacSupportPlugin VMMaker.oscog-eem.1064 (i)"
 #else
-       "VMProfileMacSupportPlugin VMMaker.oscog-eem.983 (e)"
+       "VMProfileMacSupportPlugin VMMaker.oscog-eem.1064 (e)"
 #endif
 ;

@@ -118,7 +121,15 @@
        return moduleName;
 }

+static sqInt
+positiveMachineIntegerFor(unsigned long value)
+{
+       return (BytesPerWord == 8
+               ? positive64BitIntegerFor(value)
+               : positive32BitIntegerFor(value));
+}

+
 /*     Answer the address of the argument in the current process or nil if none. */

 EXPORT(sqInt)
@@ -146,7 +157,9 @@
        free(name);
        return methodReturnValue((addr == 0
                ? nilObject()
-               : positive32BitIntegerFor(((unsigned long)addr))));
+               : (BytesPerWord == 8
+                               ? positive64BitIntegerFor(((unsigned long)addr))
+                               : positive32BitIntegerFor(((unsigned long)addr)))));
 }


@@ -209,13 +222,23 @@
                        return primitiveFail();
                }
                storePointerofObjectwithValue((i * 4) + 1, topRemappableOop(), valueObj);
-               valueObj = positive32BitIntegerFor(start);
+               if (BytesPerWord == 8) {
+                       valueObj = positive64BitIntegerFor(start);
+               }
+               else {
+                       valueObj = positive32BitIntegerFor(start);
+               }
                if (failed()) {
                        popRemappableOop();
                        return primitiveFail();
                }
                storePointerofObjectwithValue((i * 4) + 2, topRemappableOop(), valueObj);
-               valueObj = positive32BitIntegerFor(size);
+               if (BytesPerWord == 8) {
+                       valueObj = positive64BitIntegerFor(size);
+               }
+               else {
+                       valueObj = positive32BitIntegerFor(size);
+               }
                if (failed()) {
                        popRemappableOop();
                        return primitiveFail();
@@ -253,6 +276,7 @@
                popthenPush = interpreterProxy->popthenPush;
                popRemappableOop = interpreterProxy->popRemappableOop;
                positive32BitIntegerFor = interpreterProxy->positive32BitIntegerFor;
+               positive64BitIntegerFor = interpreterProxy->positive64BitIntegerFor;
                primitiveFail = interpreterProxy->primitiveFail;
                primitiveFailFor = interpreterProxy->primitiveFailFor;
                pushRemappableOop = interpreterProxy->pushRemappableOop;

Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c 2015-02-13 03:00:34 UTC (rev 3255)
+++ branches/Cog/nscogsrc/vm/cointerp.c 2015-02-14 02:19:04 UTC (rev 3256)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-       CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1060 uuid: c43c476e-10ff-420e-a2eb-c17d4624e338
+       CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
    from
-       CoInterpreter VMMaker.oscog-eem.1060 uuid: c43c476e-10ff-420e-a2eb-c17d4624e338
+       CoInterpreter VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1060 uuid: c43c476e-10ff-420e-a2eb-c17d4624e338 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1064 uuid: 9d9d2583-03e6-4b6b-9b24-51587933f8f3 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;


@@ -766,6 +766,7 @@
 EXPORT(void) primitiveSubtractLargeIntegers(void);
 static void primitiveTestAndSetOwnershipOfCriticalSection(void);
 static void primitiveTestDisplayDepth(void);
+static void primitiveTimesTwoPower(void);
 static void primitiveTruncated(void);
 static void primitiveUnloadModule(void);
 static void primitiveUpdateTimezone(void);
@@ -914,7 +915,6 @@
 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;
@@ -931,6 +931,7 @@
 static sqInt fwdBlockValid(sqInt addr) NoDbgRegParms;
 static sqInt goodContextSize(sqInt oop) NoDbgRegParms;
 static sqInt hasForwardingBlock(sqInt objOop) NoDbgRegParms;
+static sqInt hasSixtyFourBitImmediates(void);
 static sqInt headerWhileForwardingOf(sqInt oop) NoDbgRegParms;
 sqInt indexablePointersFormat(void);
 sqInt instanceSizeOf(sqInt classObj);
@@ -1146,6 +1147,7 @@
 static sqInt marriedContextpointsTostackDeltaForCurrentFrame(sqInt spouseContext, sqInt anOop, sqInt stackDeltaForCurrentFrame) NoDbgRegParms;
 static void marryContextInNewStackPageAndInitializeInterpreterRegisters(sqInt aContext) NoDbgRegParms;
 static sqInt marryFrameSP(char *theFP, char *theSP) NoDbgRegParms;
+static sqInt maybeInlinePositive32BitIntegerFor(sqInt integerValue) NoDbgRegParms;
 static sqInt maybeSelectorOfMethod(sqInt methodObj) NoDbgRegParms;
 sqInt methodArgumentCount(void);
 sqInt methodArg(sqInt index);
@@ -1159,6 +1161,7 @@
 EXPORT(void) moduleUnloaded(char *aModuleName);
 static char * nameOfClass(sqInt classOop) NoDbgRegParms;
 static StackPage * newStackPage(void);
+static sqInt noInlineSigned32BitIntegerFor(sqInt integerValue) NoDbgRegParms;
 static sqInt noInlineTemporaryin(sqInt offset, char *theFP) NoDbgRegParms;
 static sqInt noInlineTemporaryinput(sqInt offset, char *theFP, sqInt valueOop) NoDbgRegParms;
 static sqInt noMarkedContextsOnPage(StackPage *thePage) NoDbgRegParms;
@@ -1365,17 +1368,18 @@
 _iss sqInt profileProcess;
 _iss sqInt profileSemaphore;
 _iss usqInt fwdTableNext;
-_iss sqInt longRunningPrimitiveCheckMethod;
 _iss sqInt profileMethod;
 _iss usqInt compStart;
+_iss sqInt longRunningPrimitiveCheckMethod;
+_iss sqInt weakRootCount;
 _iss sqInt extraRootCount;
 _iss sqInt growHeadroom;
 _iss sqInt statGrowMemory;
 _iss sqInt tempOop2;
-_iss sqInt weakRootCount;
 _iss sqInt classNameIndex;
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt preemptionYields;
+_iss sqInt cogCodeSize;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt statMarkCount;
 _iss sqInt cogCompiledCodeCompactionCalledFor;
@@ -1393,7 +1397,6 @@
 _iss usqLong statCheckForEvents;
 _iss usqLong statGCEndUsecs;
 _iss sqInt statSweepCount;
-_iss sqInt cogCodeSize;
 _iss usqInt compEnd;
 _iss sqInt externalPrimitiveTableFirstFreeIndex;
 _iss sqInt shrinkThreshold;
@@ -1422,11 +1425,13 @@
 _iss sqInt totalObjectCount;
 _iss sqInt fullScreenFlag;
 _iss usqInt gcBiasToGrowThreshold;
+_iss sqInt imageFloatsBigEndian;
 _iss sqInt interruptKeycode;
 _iss sqInt interruptPending;
 _iss usqInt memory;
 _iss sqInt methodDictLinearSearchLimit;
 _iss usqLong nextPollUsecs;
+_iss sqInt savedWindowSize;
 _iss usqLong statForceInterruptCheck;
 _iss usqLong statIGCDeltaUsecs;
 _iss sqInt statPendingFinalizationSignals;
@@ -1439,22 +1444,20 @@
 _iss sqInt gcBiasToGrow;
 _iss sqInt gcBiasToGrowGCLimit;
 _iss sqInt globalSessionID;
-_iss sqInt imageFloatsBigEndian;
+_iss usqLong longRunningPrimitiveGCUsecs;
 _iss sqInt longRunningPrimitiveSignalUndelivered;
 _iss sqInt maxExtSemTabSizeSet;
-_iss sqInt savedWindowSize;
 _iss sqInt statCodeCompactionCount;
 _iss usqLong statCodeCompactionUsecs;
 _iss sqInt statRootTableCount;
 _iss sqInt statSurvivorCount;
+_iss sqInt the2ndUnknownShort;
 _iss sqInt classByteArrayCompactIndex;
 _iss sqInt fullGCLock;
 _iss sqInt gcSemaphoreIndex;
 _iss sqInt imageHeaderFlags;
-_iss usqLong longRunningPrimitiveGCUsecs;
 _iss sqInt overflowLimit;
 _iss StackPage * overflowedPage;
-_iss sqInt the2ndUnknownShort;
 _iss long methodCache[MethodCacheSize + 1 /* 4097 */];
 _iss sqInt atCache[AtCacheTotalSize + 1 /* 65 */];
 _iss sqInt traceLog[TraceBufferSize /* 768 */];
@@ -1572,7 +1575,7 @@
        /* 51 */ primitiveTruncated,
        /* 52 */ primitiveFractionalPart,
        /* 53 */ primitiveExponent,
-       /* 54 */ (void (*)(void))0,
+       /* 54 */ primitiveTimesTwoPower,
        /* 55 */ primitiveSquareRoot,
        /* 56 */ primitiveSine,
        /* 57 */ primitiveArctan,
@@ -2096,7 +2099,7 @@
        /* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1060";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1064";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;

@@ -2434,9 +2437,12 @@

                                /* begin pushTemporaryVariable: */
                                /* begin internalPush: */
-                               object = (0 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
-                                       ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 0 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
-                                       : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 0 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+                               if (0 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+                                       object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 0 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
+                               else {
+                                       object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 0 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
                                longAtPointerput((localSP -= BytesPerOop), object);
                        }
                        break;
@@ -2453,9 +2459,12 @@

                                /* begin pushTemporaryVariable: */
                                /* begin internalPush: */
-                               object = (1 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
-                                       ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 1 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
-                                       : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 1 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+                               if (1 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+                                       object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 1 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
+                               else {
+                                       object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 1 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
                                longAtPointerput((localSP -= BytesPerOop), object);
                        }
                        break;
@@ -2472,9 +2481,12 @@

                                /* begin pushTemporaryVariable: */
                                /* begin internalPush: */
-                               object = (2 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
-                                       ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 2 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
-                                       : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 2 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+                               if (2 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+                                       object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 2 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
+                               else {
+                                       object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 2 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
                                longAtPointerput((localSP -= BytesPerOop), object);
                        }
                        break;
@@ -2491,9 +2503,12 @@

                                /* begin pushTemporaryVariable: */
                                /* begin internalPush: */
-                               object = (3 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
-                                       ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 3 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
-                                       : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 3 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+                               if (3 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+                                       object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 3 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
+                               else {
+                                       object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 3 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
                                longAtPointerput((localSP -= BytesPerOop), object);
                        }
                        break;
@@ -2510,9 +2525,12 @@

                                /* begin pushTemporaryVariable: */
                                /* begin internalPush: */
-                               object = (4 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
-                                       ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 4 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
-                                       : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 4 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+                               if (4 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+                                       object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 4 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
+                               else {
+                                       object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 4 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
                                longAtPointerput((localSP -= BytesPerOop), object);
                        }
                        break;
@@ -2529,9 +2547,12 @@

                                /* begin pushTemporaryVariable: */
                                /* begin internalPush: */
-                               object = (5 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
-                                       ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 5 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
-                                       : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 5 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+                               if (5 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+                                       object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 5 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
+                               else {
+                                       object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 5 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
                                longAtPointerput((localSP -= BytesPerOop), object);
                        }
                        break;
@@ -2548,9 +2569,12 @@

                                /* begin pushTemporaryVariable: */
                                /* begin internalPush: */
-                               object = (6 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
-                                       ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 6 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
-                                       : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 6 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+                               if (6 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+                                       object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 6 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
+                               else {
+                                       object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 6 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
                                longAtPointerput((localSP -= BytesPerOop), object);
                        }
                        break;
@@ -2567,9 +2591,12 @@

                                /* begin pushTemporaryVariable: */
                                /* begin internalPush: */
-                               object = (7 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
-                                       ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 7 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
-                                       : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 7 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+                               if (7 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+                                       object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 7 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
+                               else {
+                                       object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 7 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
                                longAtPointerput((localSP -= BytesPerOop), object);
                        }
                        break;
@@ -2586,9 +2613,12 @@

                                /* begin pushTemporaryVariable: */
                                /* begin internalPush: */
-                               object = (8 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
-                                       ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 8 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
-                                       : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 8 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+                               if (8 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+                                       object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 8 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
+                               else {
+                                       object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 8 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
                                longAtPointerput((localSP -= BytesPerOop), object);
                        }
                        break;
@@ -2605,9 +2635,12 @@

                                /* begin pushTemporaryVariable: */
                                /* begin internalPush: */
-                               object = (9 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))
-                                       ? longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 9 /* currentBytecode bitAnd: 15 */) * BytesPerWord))
-                                       : longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 9 /* currentBytecode bitAnd: 15 */) * BytesPerWord)));
+                               if (9 /* currentBytecode bitAnd: 15 */ < ((frameNumArgs = byteAt((localFP + FoxIFrameFlags) + 1)))) {
+                                       object = longAt((localFP + FoxCallerSavedIP) + ((frameNumArgs - 9 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }
+                               else {
+                                       object = longAt(((localFP + FoxIFReceiver) - BytesPerWord) + ((frameNumArgs - 9 /* currentBytecode bitAnd: 15 */) * BytesPerWord));
+                               }

@@ Diff output truncated at 50000 characters. @@



--
best,
Eliot