[Vm-dev] [commit][3256] CogVM source as per VMMaker.oscog-eem.1064
Eliot Miranda
eliot.miranda at gmail.com
Sat Feb 14 04:03:43 UTC 2015
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, <commits at squeakvm.org> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20150213/7eed860e/attachment-0001.htm
More information about the Vm-dev
mailing list