[Vm-dev] [commit][3514] CogVM source as per VMMaker.oscog-eem.1558
commits at squeakvm.org
commits at squeakvm.org
Sun Dec 6 02:06:03 UTC 2015
Revision: 3514
Author: eliot
Date: 2015-12-05 18:06:01 -0800 (Sat, 05 Dec 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1558
Cogit:
Refactor the logic to handle UnimplementedPrimitive and UnfailingPrimitive in a
common routine, passing the result of the primtiiev generator to
#compileFallbackToInterpreterPrimitive:. Add the notion of CompletePrimitive
for primitives that may fail, but handle all the success cases, hence if a
method including such a primitive doesn't use the error code the Cogit doesn't
have to compile the call to the interpreter primitive as a fallback.
Add genPrimitiveObjectAt to provide fast literal and header access on Spur.
Streamline access to the tag patterns form the Cogit by using macros.
CPIC relocation: fix conflation of unconditional and conditional jumps.
Implement overflow checking for primitive div that works in 32- and 64-bits.
Provide a convenience method to hide the inconvenience of checking for
UndefinedOperation in uses of genJump[Not]SmallInteger:.
Refactor to share genInnerPrimitiveStringAt: between 32- and 64-bit Spur obj
reps.
x64 Cogit: rationalise concretize"Op"RR into two routines in both x64 and x86.
Avoid using isCallPrecedingReturnPC: for testing if compileInterpreterPrimitive
used a CallFull or a JumpFull to invoke the prim, hence allowing
isCallPrecedingReturnPC:to only have to apply to calls used for sends, and
hence reuse x86's isCallPrecedingReturnPC: for x64.
Fix genPrimitiveClosureValue for 64-bits (use genJumpImmediate: to exclude
non-cogged methods).
Plugins: Include the file sync prim in the FilePrims plugin.
Modified Paths:
--------------
branches/Cog/nsspursrc/plugins/AioPlugin/AioPlugin.c
branches/Cog/nsspursrc/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c
branches/Cog/nsspursrc/plugins/DSAPrims/DSAPrims.c
branches/Cog/nsspursrc/plugins/DropPlugin/DropPlugin.c
branches/Cog/nsspursrc/plugins/FileCopyPlugin/FileCopyPlugin.c
branches/Cog/nsspursrc/plugins/FloatArrayPlugin/FloatArrayPlugin.c
branches/Cog/nsspursrc/plugins/FloatMathPlugin/FloatMathPlugin.c
branches/Cog/nsspursrc/plugins/ImmX11Plugin/ImmX11Plugin.c
branches/Cog/nsspursrc/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c
branches/Cog/nsspursrc/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c
branches/Cog/nsspursrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
branches/Cog/nsspursrc/plugins/RePlugin/RePlugin.c
branches/Cog/nsspursrc/plugins/SecurityPlugin/SecurityPlugin.c
branches/Cog/nsspursrc/plugins/SocketPlugin/SocketPlugin.c
branches/Cog/nsspursrc/plugins/SoundPlugin/SoundPlugin.c
branches/Cog/nsspursrc/plugins/SqueakSSL/SqueakSSL.c
branches/Cog/nsspursrc/plugins/UUIDPlugin/UUIDPlugin.c
branches/Cog/nsspursrc/vm/cogit.h
branches/Cog/nsspursrc/vm/cogitARMv5.c
branches/Cog/nsspursrc/vm/cogitIA32.c
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspurstack64src/vm/gcc3x-interp.c
branches/Cog/nsspurstack64src/vm/interp.c
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/processors/IA32/bochs/cpu/mult64.cc
branches/Cog/spursistasrc/vm/cogit.h
branches/Cog/spursistasrc/vm/cogitARMv5.c
branches/Cog/spursistasrc/vm/cogitIA32.c
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/cogit.h
branches/Cog/spursrc/vm/cogitARMv5.c
branches/Cog/spursrc/vm/cogitIA32.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/ADPCMCodecPlugin/ADPCMCodecPlugin.c
branches/Cog/src/plugins/AioPlugin/AioPlugin.c
branches/Cog/src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
branches/Cog/src/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c
branches/Cog/src/plugins/CameraPlugin/CameraPlugin.c
branches/Cog/src/plugins/CroquetPlugin/CroquetPlugin.c
branches/Cog/src/plugins/DSAPrims/DSAPrims.c
branches/Cog/src/plugins/DropPlugin/DropPlugin.c
branches/Cog/src/plugins/FFTPlugin/FFTPlugin.c
branches/Cog/src/plugins/FileCopyPlugin/FileCopyPlugin.c
branches/Cog/src/plugins/FilePlugin/FilePlugin.c
branches/Cog/src/plugins/FloatArrayPlugin/FloatArrayPlugin.c
branches/Cog/src/plugins/FloatMathPlugin/FloatMathPlugin.c
branches/Cog/src/plugins/GeniePlugin/GeniePlugin.c
branches/Cog/src/plugins/HostWindowPlugin/HostWindowPlugin.c
branches/Cog/src/plugins/IA32ABI/IA32ABI.c
branches/Cog/src/plugins/ImmX11Plugin/ImmX11Plugin.c
branches/Cog/src/plugins/InternetConfigPlugin/InternetConfigPlugin.c
branches/Cog/src/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c
branches/Cog/src/plugins/JoystickTabletPlugin/JoystickTabletPlugin.c
branches/Cog/src/plugins/LocalePlugin/LocalePlugin.c
branches/Cog/src/plugins/MIDIPlugin/MIDIPlugin.c
branches/Cog/src/plugins/MacMenubarPlugin/MacMenubarPlugin.c
branches/Cog/src/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c
branches/Cog/src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
branches/Cog/src/plugins/Mpeg3Plugin/Mpeg3Plugin.c
branches/Cog/src/plugins/QuicktimePlugin/QuicktimePlugin.c
branches/Cog/src/plugins/RePlugin/RePlugin.c
branches/Cog/src/plugins/ScratchPlugin/ScratchPlugin.c
branches/Cog/src/plugins/SecurityPlugin/SecurityPlugin.c
branches/Cog/src/plugins/SerialPlugin/SerialPlugin.c
branches/Cog/src/plugins/SocketPlugin/SocketPlugin.c
branches/Cog/src/plugins/SoundCodecPrims/SoundCodecPrims.c
branches/Cog/src/plugins/SoundPlugin/SoundPlugin.c
branches/Cog/src/plugins/SqueakSSL/SqueakSSL.c
branches/Cog/src/plugins/StarSqueakPlugin/StarSqueakPlugin.c
branches/Cog/src/plugins/UUIDPlugin/UUIDPlugin.c
branches/Cog/src/plugins/UnicodePlugin/UnicodePlugin.c
branches/Cog/src/plugins/WeDoPlugin/WeDoPlugin.c
branches/Cog/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
branches/Cog/src/vm/cogit.h
branches/Cog/src/vm/cogitARMv5.c
branches/Cog/src/vm/cogitIA32.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
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nsspursrc/plugins/AioPlugin/AioPlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/AioPlugin/AioPlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/AioPlugin/AioPlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,5 +1,5 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ VMPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
UnixAioPlugin VMConstruction-Plugins-AioPlugin-eem.18 uuid: c426ab70-05a2-43a1-a899-e324aaf8f92f
*/
@@ -43,9 +43,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
static void aioForwardwithDataandFlags(int fd, void *data, int flags);
static sqInt fileDescriptorFrom(sqInt aSQFileByteArray);
Modified: branches/Cog/nsspursrc/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ VMPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- BMPReadWriterPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ BMPReadWriterPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "BMPReadWriterPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0 " __DATE__ ;
+static char __buildInfo[] = "BMPReadWriterPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -36,9 +36,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) primitiveRead24BmpLine(void);
@@ -75,9 +72,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "BMPReadWriterPlugin VMMaker.oscog-eem.1325 (i)"
+ "BMPReadWriterPlugin VMMaker.oscog-eem.1559 (i)"
#else
- "BMPReadWriterPlugin VMMaker.oscog-eem.1325 (e)"
+ "BMPReadWriterPlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/DSAPrims/DSAPrims.c
===================================================================
--- branches/Cog/nsspursrc/plugins/DSAPrims/DSAPrims.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/DSAPrims/DSAPrims.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ VMPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- DSAPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ DSAPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "DSAPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0 " __DATE__ ;
+static char __buildInfo[] = "DSAPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -36,9 +36,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
static sqInt addBackDivisorDigitShift(sqInt digitShift);
static sqInt bigDivideLoop(void);
@@ -91,9 +88,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "DSAPrims VMMaker.oscog-eem.1325 (i)"
+ "DSAPrims VMMaker.oscog-eem.1559 (i)"
#else
- "DSAPrims VMMaker.oscog-eem.1325 (e)"
+ "DSAPrims VMMaker.oscog-eem.1559 (e)"
#endif
;
static sqInt remainderDigitCount;
Modified: branches/Cog/nsspursrc/plugins/DropPlugin/DropPlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/DropPlugin/DropPlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/DropPlugin/DropPlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ VMPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- DropPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ DropPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "DropPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0 " __DATE__ ;
+static char __buildInfo[] = "DropPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -37,9 +37,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) initialiseModule(void);
@@ -77,9 +74,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "DropPlugin VMMaker.oscog-eem.1325 (i)"
+ "DropPlugin VMMaker.oscog-eem.1559 (i)"
#else
- "DropPlugin VMMaker.oscog-eem.1325 (e)"
+ "DropPlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/FileCopyPlugin/FileCopyPlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/FileCopyPlugin/FileCopyPlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/FileCopyPlugin/FileCopyPlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- FileCopyPlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ FileCopyPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "FileCopyPlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc " __DATE__ ;
+static char __buildInfo[] = "FileCopyPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -36,9 +36,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) primitiveFileCopyNamedTo(void);
@@ -71,9 +68,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "FileCopyPlugin VMMaker.oscog-eem.1468 (i)"
+ "FileCopyPlugin VMMaker.oscog-eem.1559 (i)"
#else
- "FileCopyPlugin VMMaker.oscog-eem.1468 (e)"
+ "FileCopyPlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/FloatArrayPlugin/FloatArrayPlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/FloatArrayPlugin/FloatArrayPlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/FloatArrayPlugin/FloatArrayPlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ VMPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- FloatArrayPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ FloatArrayPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "FloatArrayPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0 " __DATE__ ;
+static char __buildInfo[] = "FloatArrayPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -36,9 +36,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) primitiveAddFloatArray(void);
@@ -109,9 +106,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "FloatArrayPlugin VMMaker.oscog-eem.1325 (i)"
+ "FloatArrayPlugin VMMaker.oscog-eem.1559 (i)"
#else
- "FloatArrayPlugin VMMaker.oscog-eem.1325 (e)"
+ "FloatArrayPlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/FloatMathPlugin/FloatMathPlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/FloatMathPlugin/FloatMathPlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/FloatMathPlugin/FloatMathPlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ VMPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- FloatMathPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ FloatMathPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "FloatMathPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0 " __DATE__ ;
+static char __buildInfo[] = "FloatMathPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -37,9 +37,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
static sqInt floatExponentBits(void);
EXPORT(const char*) getModuleName(void);
@@ -96,9 +93,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "FloatMathPlugin VMMaker.oscog-eem.1325 (i)"
+ "FloatMathPlugin VMMaker.oscog-eem.1559 (i)"
#else
- "FloatMathPlugin VMMaker.oscog-eem.1325 (e)"
+ "FloatMathPlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/ImmX11Plugin/ImmX11Plugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/ImmX11Plugin/ImmX11Plugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/ImmX11Plugin/ImmX11Plugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- ImmX11Plugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ ImmX11Plugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "ImmX11Plugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc " __DATE__ ;
+static char __buildInfo[] = "ImmX11Plugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -42,9 +42,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) initialiseModule(void);
@@ -110,9 +107,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "ImmX11Plugin VMMaker.oscog-eem.1468 (i)"
+ "ImmX11Plugin VMMaker.oscog-eem.1559 (i)"
#else
- "ImmX11Plugin VMMaker.oscog-eem.1468 (e)"
+ "ImmX11Plugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- JPEGReadWriter2Plugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ JPEGReadWriter2Plugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "JPEGReadWriter2Plugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc " __DATE__ ;
+static char __buildInfo[] = "JPEGReadWriter2Plugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -37,9 +37,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) initialiseModule(void);
@@ -100,9 +97,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "JPEGReadWriter2Plugin VMMaker.oscog-eem.1468 (i)"
+ "JPEGReadWriter2Plugin VMMaker.oscog-eem.1559 (i)"
#else
- "JPEGReadWriter2Plugin VMMaker.oscog-eem.1468 (e)"
+ "JPEGReadWriter2Plugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1451 uuid: 35560bfb-1823-47e2-a964-8906c9d43890
+ VMPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- Matrix2x3Plugin VMMaker.oscog-eem.1451 uuid: 35560bfb-1823-47e2-a964-8906c9d43890
+ Matrix2x3Plugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "Matrix2x3Plugin VMMaker.oscog-eem.1451 uuid: 35560bfb-1823-47e2-a964-8906c9d43890 " __DATE__ ;
+static char __buildInfo[] = "Matrix2x3Plugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -36,9 +36,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
static float * loadArgumentMatrix(sqInt matrix);
@@ -114,9 +111,9 @@
static double m23ResultY;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "Matrix2x3Plugin VMMaker.oscog-eem.1451 (i)"
+ "Matrix2x3Plugin VMMaker.oscog-eem.1559 (i)"
#else
- "Matrix2x3Plugin VMMaker.oscog-eem.1451 (e)"
+ "Matrix2x3Plugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,17 +1,17 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ VMPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- MiscPrimitivePlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
- Bitmap * Graphics-eem.317 uuid: 93cbbfd8-00b5-48d8-9ef6-174661f41fa7
- ByteArray * Collections-ul.655 uuid: 179eb75e-eb8d-4c16-8934-158921d1ff81
- ByteString * Collections-ul.655 uuid: 179eb75e-eb8d-4c16-8934-158921d1ff81
- SampledSound Sound-topa.43 uuid: c1c2b948-6c86-4cf8-877d-1620433f558e
+ MiscPrimitivePlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
+ Bitmap * Graphics-tpr.319 uuid: ea659db8-1afb-4241-9600-37ed16edd7b6
+ ByteArray * Collections-eem.672 uuid: 9b35923c-464e-4b66-8541-2e307f79186b
+ ByteString * Collections-eem.672 uuid: 9b35923c-464e-4b66-8541-2e307f79186b
+ SampledSound Sound-nice.46 uuid: b477c1a5-5650-43b0-8105-1867382b077c
*/
-static char __buildInfo[] = "MiscPrimitivePlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc\n\
-Bitmap * Graphics-eem.317 uuid: 93cbbfd8-00b5-48d8-9ef6-174661f41fa7\n\
-ByteArray * Collections-ul.655 uuid: 179eb75e-eb8d-4c16-8934-158921d1ff81\n\
-ByteString * Collections-ul.655 uuid: 179eb75e-eb8d-4c16-8934-158921d1ff81\n\
-SampledSound Sound-topa.43 uuid: c1c2b948-6c86-4cf8-877d-1620433f558e " __DATE__ ;
+static char __buildInfo[] = "MiscPrimitivePlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da\n\
+Bitmap * Graphics-tpr.319 uuid: ea659db8-1afb-4241-9600-37ed16edd7b6\n\
+ByteArray * Collections-eem.672 uuid: 9b35923c-464e-4b66-8541-2e307f79186b\n\
+ByteString * Collections-eem.672 uuid: 9b35923c-464e-4b66-8541-2e307f79186b\n\
+SampledSound Sound-nice.46 uuid: b477c1a5-5650-43b0-8105-1867382b077c " __DATE__ ;
@@ -44,9 +44,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
static sqInt encodeBytesOfinat(sqInt anInt, unsigned char *ba, sqInt i);
static sqInt encodeIntinat(sqInt anInt, unsigned char *ba, sqInt i);
@@ -90,9 +87,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "MiscPrimitivePlugin VMMaker.oscog-eem.1468 (i)"
+ "MiscPrimitivePlugin VMMaker.oscog-eem.1559 (i)"
#else
- "MiscPrimitivePlugin VMMaker.oscog-eem.1468 (e)"
+ "MiscPrimitivePlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/RePlugin/RePlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/RePlugin/RePlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/RePlugin/RePlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- RePlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ RePlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "RePlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc " __DATE__ ;
+static char __buildInfo[] = "RePlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -37,9 +37,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
static sqInt allocateByteArrayAndSetRcvrExtraPtrFrom(sqInt anExtraPtr);
static sqInt allocateByteArrayAndSetRcvrPCREPtrFromPCRE(sqInt aPCREPtr);
@@ -123,9 +120,9 @@
static sqInt matchFlags;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "RePlugin VMMaker.oscog-eem.1468 (i)"
+ "RePlugin VMMaker.oscog-eem.1559 (i)"
#else
- "RePlugin VMMaker.oscog-eem.1468 (e)"
+ "RePlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
static int netMemory = 0;
Modified: branches/Cog/nsspursrc/plugins/SecurityPlugin/SecurityPlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/SecurityPlugin/SecurityPlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/SecurityPlugin/SecurityPlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ VMPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- SecurityPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ SecurityPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "SecurityPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0 " __DATE__ ;
+static char __buildInfo[] = "SecurityPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -37,9 +37,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) initialiseModule(void);
@@ -93,9 +90,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "SecurityPlugin VMMaker.oscog-eem.1325 (i)"
+ "SecurityPlugin VMMaker.oscog-eem.1559 (i)"
#else
- "SecurityPlugin VMMaker.oscog-eem.1325 (e)"
+ "SecurityPlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/SocketPlugin/SocketPlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/SocketPlugin/SocketPlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/SocketPlugin/SocketPlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- SocketPlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ SocketPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "SocketPlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc " __DATE__ ;
+static char __buildInfo[] = "SocketPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -37,9 +37,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) initialiseModule(void);
@@ -176,9 +173,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "SocketPlugin VMMaker.oscog-eem.1468 (i)"
+ "SocketPlugin VMMaker.oscog-eem.1559 (i)"
#else
- "SocketPlugin VMMaker.oscog-eem.1468 (e)"
+ "SocketPlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
static void * sCCLOPfn;
Modified: branches/Cog/nsspursrc/plugins/SoundPlugin/SoundPlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/SoundPlugin/SoundPlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/SoundPlugin/SoundPlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- SoundPlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ SoundPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "SoundPlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc " __DATE__ ;
+static char __buildInfo[] = "SoundPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -37,9 +37,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) initialiseModule(void);
@@ -107,9 +104,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "SoundPlugin VMMaker.oscog-eem.1468 (i)"
+ "SoundPlugin VMMaker.oscog-eem.1559 (i)"
#else
- "SoundPlugin VMMaker.oscog-eem.1468 (e)"
+ "SoundPlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/SqueakSSL/SqueakSSL.c
===================================================================
--- branches/Cog/nsspursrc/plugins/SqueakSSL/SqueakSSL.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/SqueakSSL/SqueakSSL.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- VMPluginCodeGenerator VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ VMPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- SqueakSSLPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0
+ SqueakSSLPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "SqueakSSLPlugin VMMaker.oscog-eem.1325 uuid: a0bb0f7f-5e6e-48a7-bf73-fa5d135e06c0 " __DATE__ ;
+static char __buildInfo[] = "SqueakSSLPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -37,9 +37,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) primitiveAccept(void);
@@ -98,9 +95,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "SqueakSSL VMMaker.oscog-eem.1325 (i)"
+ "SqueakSSL VMMaker.oscog-eem.1559 (i)"
#else
- "SqueakSSL VMMaker.oscog-eem.1325 (e)"
+ "SqueakSSL VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/plugins/UUIDPlugin/UUIDPlugin.c
===================================================================
--- branches/Cog/nsspursrc/plugins/UUIDPlugin/UUIDPlugin.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/plugins/UUIDPlugin/UUIDPlugin.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- UUIDPlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc
+ UUIDPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "UUIDPlugin VMMaker.oscog-eem.1468 uuid: 2b6a8fd8-cddf-447d-bee4-11d53d2ef9bc " __DATE__ ;
+static char __buildInfo[] = "UUIDPlugin VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
@@ -37,9 +37,6 @@
#include "sqMemoryAccess.h"
-/*** Constants ***/
-
-
/*** Function Prototypes ***/
EXPORT(const char*) getModuleName(void);
EXPORT(sqInt) initialiseModule(void);
@@ -72,9 +69,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "UUIDPlugin VMMaker.oscog-eem.1468 (i)"
+ "UUIDPlugin VMMaker.oscog-eem.1559 (i)"
#else
- "UUIDPlugin VMMaker.oscog-eem.1468 (e)"
+ "UUIDPlugin VMMaker.oscog-eem.1559 (e)"
#endif
;
Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/vm/cogit.h 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1543 uuid: 7ab33230-086d-4b21-a335-26f16100a3b4
+ CCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogitARMv5.c 2015-12-03 23:09:55 UTC (rev 3513)
+++ branches/Cog/nsspursrc/vm/cogitARMv5.c 2015-12-06 02:06:01 UTC (rev 3514)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.1543 uuid: 7ab33230-086d-4b21-a335-26f16100a3b4
+ CCodeGenerator VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.1543 uuid: 7ab33230-086d-4b21-a335-26f16100a3b4
+ StackToRegisterMappingCogit VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1543 uuid: 7ab33230-086d-4b21-a335-26f16100a3b4 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1559 uuid: 52385182-ad6d-4bdc-975a-7328fd81b6da " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -168,6 +168,7 @@
#define CmpOpcode 10
#define CmpRdRd 111
#define CmpRR 90
+#define CompletePrimitive 4
#define ConcreteIPReg 12
#define ConcreteVarBaseReg 10
#define ConstZero 1
@@ -391,6 +392,7 @@
#define TstCqR 101
#define TstOpcode 8
#define UnfailingPrimitive 3
+#define UnimplementedOperation 2
#define UnimplementedPrimitive -7
#define ValueIndex 1
#define VarBaseReg -20
@@ -438,6 +440,7 @@
static sqInt NoDbgRegParms literal32BeforeFollowingAddress(AbstractInstruction * self_in_literal32BeforeFollowingAddress, sqInt followingAddress);
static sqInt NoDbgRegParms numCheckFeaturesOpcodes(AbstractInstruction * self_in_numCheckFeaturesOpcodes);
static AbstractInstruction * NoDbgRegParms relocateJumpLongBeforeFollowingAddressby(AbstractInstruction * self_in_relocateJumpLongBeforeFollowingAddressby, sqInt pc, sqInt delta);
+static AbstractInstruction * NoDbgRegParms relocateJumpLongConditionalBeforeFollowingAddressby(AbstractInstruction * self_in_relocateJumpLongConditionalBeforeFollowingAddressby, sqInt pc, sqInt delta);
static AbstractInstruction * NoDbgRegParms resolveJumpTarget(AbstractInstruction * self_in_resolveJumpTarget);
static sqInt NoDbgRegParms rewriteConditionalJumpLongAttarget(AbstractInstruction * self_in_rewriteConditionalJumpLongAttarget, sqInt callSiteReturnAddress, sqInt callTargetAddress);
static sqInt NoDbgRegParms setLabelOffset(AbstractInstruction * self_in_setLabelOffset, sqInt aValue);
@@ -565,6 +568,7 @@
static CogMethod * NoDbgRegParms cmHomeMethod(CogBlockMethod * self_in_cmHomeMethod);
static sqInt NoDbgRegParms isBranch(BytecodeDescriptor * self_in_isBranch);
static sqInt NoDbgRegParms isUnconditionalBranch(BytecodeDescriptor * self_in_isUnconditionalBranch);
+static AbstractInstruction * NoDbgRegParms gAddCqR(sqInt quickConstant, sqInt reg);
static AbstractInstruction * NoDbgRegParms gAndCqR(sqInt quickConstant, sqInt reg);
static AbstractInstruction * NoDbgRegParms gArithmeticShiftRightRR(sqInt reg1, sqInt reg2);
extern sqInt abortOffset(void);
@@ -857,7 +861,7 @@
static sqInt NoDbgRegParms genInnerPrimitiveNewWithArg(sqInt retNoffset);
static sqInt NoDbgRegParms genInnerPrimitiveNew(sqInt retNoffset);
static sqInt NoDbgRegParms genInnerPrimitiveStringAtPut(sqInt retNoffset);
-static sqInt NoDbgRegParms genInnerPrimitiveStringAt(sqInt retNoffset);
+static AbstractInstruction * NoDbgRegParms genJumpIsSmallIntegerValuescratch(sqInt aRegister, sqInt scratchReg);
static AbstractInstruction * NoDbgRegParms genJumpNotSmallIntegerInScratchReg(sqInt aRegister);
static AbstractInstruction * NoDbgRegParms genJumpNotSmallInteger(sqInt aRegister);
static AbstractInstruction * NoDbgRegParms genJumpSmallInteger(sqInt aRegister);
@@ -903,7 +907,9 @@
static sqInt NoDbgRegParms genInnerPrimitiveAsCharacterinReg(sqInt retNOffset, sqInt reg);
static sqInt NoDbgRegParms genInnerPrimitiveCharacterValue(sqInt retNOffset);
static sqInt NoDbgRegParms genInnerPrimitiveIdenticalorNotIf(sqInt retNoffset, sqInt orNot);
+static sqInt NoDbgRegParms genInnerPrimitiveObjectAt(sqInt retNOffset);
static sqInt NoDbgRegParms genInnerPrimitiveSize(sqInt retNoffset);
+static sqInt NoDbgRegParms genInnerPrimitiveStringAt(sqInt retNoffset);
static AbstractInstruction * NoDbgRegParms genJumpImmediate(sqInt aRegister);
static AbstractInstruction * NoDbgRegParms genJumpNotCharacterInScratchReg(sqInt reg);
static sqInt NoDbgRegParms genNewArrayOfSizeinitialized(sqInt size, sqInt initialized);
@@ -917,7 +923,6 @@
static sqInt getActiveContextAllocatesInMachineCode(void);
static sqInt hasSpurMemoryManagerAPI(void);
static sqInt NoDbgRegParms inlineCacheTagIsYoung(sqInt cacheTag);
-static sqInt isSmallIntegerTagNonZero(void);
static AbstractInstruction * NoDbgRegParms jumpNotCharacterUnsignedValueInRegister(sqInt reg);
static sqInt NoDbgRegParms markAndTraceLiteralinatpc(sqInt literal, CogMethod *cogMethodOrNil, usqInt address);
static void NoDbgRegParms markAndTraceLiteralinat(sqInt literal, CogMethod *cogMethod, sqInt *address);
@@ -966,7 +971,7 @@
static sqInt resetForBlockCompile(void);
static sqInt saveForBlockCompile(void);
static sqInt compileBlockDispatch(void);
-static sqInt compileFallbackToInterpreterPrimitive(void);
+static sqInt NoDbgRegParms compileFallbackToInterpreterPrimitive(sqInt code);
static void compileGetErrorCode(void);
static sqInt NoDbgRegParms compileInterpreterPrimitive(void (*primitiveRoutine)(void));
static void NoDbgRegParms compileOpenPICnumArgs(sqInt selector, sqInt numArgs);
@@ -1150,6 +1155,7 @@
static sqInt genPrimitiveNewMethod(void);
static sqInt genPrimitiveNewWithArg(void);
static sqInt genPrimitiveNotIdentical(void);
+static sqInt genPrimitiveObjectAt(void);
static sqInt genPrimitivePerform(void);
static sqInt genPrimitiveQuo(void);
static sqInt genPrimitiveSize(void);
@@ -1887,7 +1893,7 @@
static sqInt picMissTrampolines[4];
static void (*postCompileHook)(CogMethod *);
static BytecodeDescriptor * prevBCDescriptor;
-static AbstractInstruction * primInvokeLabel;
+static AbstractInstruction * primInvokeInstruction;
static sqInt primitiveIndex;
static AbstractInstruction * primSetFunctionLabel;
void (*realCECallCogCodePopReceiverAndClassRegs)(void);
@@ -2233,6 +2239,20 @@
return self_in_relocateJumpLongBeforeFollowingAddressby;
}
+
+/* Relocate a long conditional jump before pc. Default to relocating a
+ non-conditional jump.
+ Processors that have different formats for conditional and unconditional
+ jumps override. */
+
+ /* CogAbstractInstruction>>#relocateJumpLongConditionalBeforeFollowingAddress:by: */
+static AbstractInstruction * NoDbgRegParms
+relocateJumpLongConditionalBeforeFollowingAddressby(AbstractInstruction * self_in_relocateJumpLongConditionalBeforeFollowingAddressby, sqInt pc, sqInt delta)
+{
+ relocateJumpLongBeforeFollowingAddressby(self_in_relocateJumpLongConditionalBeforeFollowingAddressby, pc, delta);
+ return self_in_relocateJumpLongConditionalBeforeFollowingAddressby;
+}
+
/* CogAbstractInstruction>>#resolveJumpTarget */
static AbstractInstruction * NoDbgRegParms
resolveJumpTarget(AbstractInstruction * self_in_resolveJumpTarget)
@@ -6786,8 +6806,8 @@
}
-/* Assuming mcpc is a return pc answer if the instruction before it is a
- call.
+/* Assuming mcpc is a send return pc answer if the instruction before it is a
+ call (not a CallFull).
*/
/* There are two types of calls: BL and/BLX encoding */
@@ -7670,6 +7690,14 @@
|| ((self_in_isUnconditionalBranch->isBranchFalse))));
}
+ /* Cogit>>#AddCq:R: */
+static AbstractInstruction * NoDbgRegParms
+gAddCqR(sqInt quickConstant, sqInt reg)
+{
+ /* begin gen:quickConstant:operand: */
+ return checkQuickConstantforInstruction(quickConstant, genoperandoperand(AddCqR, quickConstant, reg));
+}
+
/* Cogit>>#AndCq:R: */
static AbstractInstruction * NoDbgRegParms
gAndCqR(sqInt quickConstant, sqInt reg)
@@ -11046,12 +11074,12 @@
generateMapAtstart(sqInt addressOrNull, sqInt startAddress)
{
unsigned char annotation;
- sqInt delta;
+ usqInt delta;
sqInt i;
AbstractInstruction *instruction;
sqInt length;
- sqInt location;
- sqInt mapEntry;
+ usqInt location;
+ usqInt mapEntry;
sqInt maxDelta;
usqInt mcpc;
@@ -13915,8 +13943,8 @@
{ genFastPrimFail, -1, 0 },
{ genFastPrimFail, -1, 0 },
{ genFastPrimFail, -1, 0 },
+ { genPrimitiveObjectAt, 1, 0 },
{ 0, -1, 0 },
- { 0, -1, 0 },
{ genPrimitiveNew, -1, 0 },
{ genPrimitiveNewWithArg, -1, 0 },
{ 0, -1, 0 },
@@ -14293,7 +14321,12 @@
&& (((((usqInt)cPIC)) + ((cPIC->blockSize))) >= (((usqInt)entryPoint))))) {
targetMethod = ((CogMethod *) (entryPoint - cmNoCheckEntryOffset));
assert(((targetMethod->cmType)) == CMMethod);
- relocateJumpLongBeforeFollowingAddressby(backEnd, pc, -(delta - ((targetMethod->objectHeader))));
+ if (i == 1) {
+ relocateJumpLongBeforeFollowingAddressby(backEnd, pc, -(delta - ((targetMethod->objectHeader))));
+ }
+ else {
+ relocateJumpLongConditionalBeforeFollowingAddressby(backEnd, pc, -(delta - ((targetMethod->objectHeader))));
+ }
}
}
assert(((cPIC->cPICNumCases)) > 0);
@@ -18052,118 +18085,22 @@
}
-/* Implement the guts of primitiveStringAt; dispatch on size */
+/* Generate a test for aRegister containing an integer value in the
+ SmallInteger range, and a jump if so, answering the jump.
+ c.f. Spur32BitMemoryManager>>isIntegerValue: */
- /* CogObjectRepresentationFor32BitSpur>>#genInnerPrimitiveStringAt: */
-static sqInt NoDbgRegParms
-genInnerPrimitiveStringAt(sqInt retNoffset)
+ /* CogObjectRepresentationFor32BitSpur>>#genJumpIsSmallIntegerValue:scratch: */
+static AbstractInstruction * NoDbgRegParms
+genJumpIsSmallIntegerValuescratch(sqInt aRegister, sqInt scratchReg)
{
- AbstractInstruction *done;
- sqInt formatReg;
- AbstractInstruction *jumpBadIndex;
- AbstractInstruction *jumpBytesOutOfBounds;
- AbstractInstruction *jumpIsBytes;
- AbstractInstruction *jumpIsShorts;
- AbstractInstruction *jumpIsWords;
- AbstractInstruction *jumpNotIndexable;
- AbstractInstruction *jumpShortsOutOfBounds;
- AbstractInstruction *jumpWordsOutOfBounds;
- AbstractInstruction *jumpWordTooBig;
- sqInt operandOne;
- sqInt quickConstant;
- sqInt quickConstant1;
- sqInt quickConstant2;
- sqInt quickConstant3;
-
-
- /* c.f. StackInterpreter>>stSizeOf: SpurMemoryManager>>lengthOf:format: fixedFieldsOf:format:length: */
-
- /* begin MoveR:R: */
- genoperandoperand(MoveRR, Arg0Reg, Arg1Reg);
- jumpBadIndex = genJumpNotSmallInteger(Arg0Reg);
- genConvertSmallIntegerToIntegerInReg(Arg1Reg);
- /* begin SubCq:R: */
- /* begin gen:quickConstant:operand: */
- checkQuickConstantforInstruction(1, genoperandoperand(SubCqR, 1, Arg1Reg));
- genGetFormatOfintoleastSignificantHalfOfBaseHeaderIntoScratch(ReceiverResultReg, (formatReg = SendNumArgsReg), null);
- genGetNumSlotsOfinto(ReceiverResultReg, ClassReg);
- /* begin CmpCq:R: */
- quickConstant = firstByteFormat();
- /* begin gen:quickConstant:operand: */
- checkQuickConstantforInstruction(quickConstant, genoperandoperand(CmpCqR, quickConstant, formatReg));
- /* begin JumpGreaterOrEqual: */
- jumpIsBytes = genConditionalBranchoperand(JumpGreaterOrEqual, ((sqInt)0));
- /* begin CmpCq:R: */
- quickConstant1 = firstShortFormat();
- /* begin gen:quickConstant:operand: */
- checkQuickConstantforInstruction(quickConstant1, genoperandoperand(CmpCqR, quickConstant1, formatReg));
- /* begin JumpGreaterOrEqual: */
- jumpIsShorts = genConditionalBranchoperand(JumpGreaterOrEqual, ((sqInt)0));
- /* begin CmpCq:R: */
- quickConstant2 = firstLongFormat();
- /* begin gen:quickConstant:operand: */
- checkQuickConstantforInstruction(quickConstant2, genoperandoperand(CmpCqR, quickConstant2, formatReg));
- /* begin JumpGreaterOrEqual: */
- jumpIsWords = genConditionalBranchoperand(JumpGreaterOrEqual, ((sqInt)0));
- /* begin Jump: */
- jumpNotIndexable = genoperand(Jump, ((sqInt)0));
- jmpTarget(jumpIsBytes, gLogicalShiftLeftCqR(shiftForWord(), ClassReg));
- /* begin AndCq:R: */
- /* begin gen:quickConstant:operand: */
- checkQuickConstantforInstruction(BytesPerWord - 1, genoperandoperand(AndCqR, BytesPerWord - 1, formatReg));
- /* begin SubR:R: */
- genoperandoperand(SubRR, formatReg, ClassReg);
- /* begin CmpR:R: */
- genoperandoperand(CmpRR, Arg1Reg, ClassReg);
- /* begin JumpBelowOrEqual: */
- jumpBytesOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
- /* begin AddCq:R: */
- /* begin gen:quickConstant:operand: */
- checkQuickConstantforInstruction(BaseHeaderSize, genoperandoperand(AddCqR, BaseHeaderSize, Arg1Reg));
- /* begin MoveXbr:R:R: */
- genoperandoperandoperand(MoveXbrRR, Arg1Reg, ReceiverResultReg, ReceiverResultReg);
- /* begin Label */
- done = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
- genConvertIntegerToCharacterInReg(ReceiverResultReg);
- /* begin RetN: */
- genoperand(RetN, retNoffset);
- jmpTarget(jumpIsShorts, gLogicalShiftLeftCqR((shiftForWord()) - 1, ClassReg));
- /* begin AndCq:R: */
- /* begin gen:quickConstant:operand: */
- checkQuickConstantforInstruction(1, genoperandoperand(AndCqR, 1, formatReg));
- /* begin SubR:R: */
- genoperandoperand(SubRR, formatReg, ClassReg);
- /* begin CmpR:R: */
- genoperandoperand(CmpRR, Arg1Reg, ClassReg);
- /* begin JumpBelowOrEqual: */
- jumpShortsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
- /* begin AddR:R: */
- genoperandoperand(AddRR, Arg1Reg, ReceiverResultReg);
- /* begin MoveM16:r:R: */
- /* begin gen:quickConstant:operand:operand: */
- checkQuickConstantforInstruction(BaseHeaderSize, genoperandoperandoperand(MoveM16rR, BaseHeaderSize, ReceiverResultReg, ReceiverResultReg));
- /* begin Jump: */
- genoperand(Jump, ((sqInt)done));
- jmpTarget(jumpIsWords, gCmpRR(Arg1Reg, ClassReg));
- /* begin JumpBelowOrEqual: */
- jumpWordsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
- /* begin AddCq:R: */
- /* begin gen:quickConstant:operand: */
- operandOne = ((usqInt) BaseHeaderSize) >> (shiftForWord());
- checkQuickConstantforInstruction(operandOne, genoperandoperand(AddCqR, operandOne, Arg1Reg));
- /* begin MoveXwr:R:R: */
- genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, TempReg);
- /* begin SubCq:R: */
- quickConstant3 = ((usqInt) BaseHeaderSize) >> (shiftForWord());
- /* begin gen:quickConstant:operand: */
- checkQuickConstantforInstruction(quickConstant3, genoperandoperand(SubCqR, quickConstant3, Arg1Reg));
- jumpWordTooBig = jumpNotCharacterUnsignedValueInRegister(TempReg);
- /* begin MoveR:R: */
- genoperandoperand(MoveRR, TempReg, ReceiverResultReg);
- /* begin Jump: */
- genoperand(Jump, ((sqInt)done));
- jmpTarget(jumpBytesOutOfBounds, jmpTarget(jumpShortsOutOfBounds, jmpTarget(jumpWordsOutOfBounds, jmpTarget(jumpWordTooBig, jmpTarget(jumpNotIndexable, jmpTarget(jumpBadIndex, gLabel()))))));
- return 0;
+ return (/* begin MoveR:R: */
+ genoperandoperand(MoveRR, aRegister, scratchReg),
+ /* begin ArithmeticShiftRightCq:R: */
+ genoperandoperand(ArithmeticShiftRightCqR, 1, scratchReg),
+ /* begin XorR:R: */
+ genoperandoperand(XorRR, aRegister, scratchReg),
+ /* begin JumpLess: */
+ genConditionalBranchoperand(JumpLess, ((sqInt)0)));
}
/* CogObjectRepresentationFor32BitSpur>>#genJumpNotSmallIntegerInScratchReg: */
@@ -19276,10 +19213,18 @@
genInnerPrimitiveAsCharacterinReg(sqInt retNOffset, sqInt reg)
{
AbstractInstruction *jumpNotInt;
+ AbstractInstruction *jumpNotInt1;
AbstractInstruction *jumpOutOfRange;
if (reg != ReceiverResultReg) {
- jumpNotInt = genJumpNotSmallInteger(reg);
+ /* begin genJumpNotSmallInteger:scratch: */
+ jumpNotInt1 = genJumpNotSmallInteger(reg);
+ if ((((sqInt)jumpNotInt1)) == UnimplementedOperation) {
+ /* begin MoveR:R: */
+ genoperandoperand(MoveRR, reg, TempReg);
+ jumpNotInt1 = genJumpNotSmallIntegerInScratchReg(TempReg);
+ }
+ jumpNotInt = jumpNotInt1;
}
/* begin MoveR:R: */
genoperandoperand(MoveRR, reg, TempReg);
@@ -19351,7 +19296,64 @@
return 0;
}
+ /* CogObjectRepresentationForSpur>>#genInnerPrimitiveObjectAt: */
+static sqInt NoDbgRegParms
+genInnerPrimitiveObjectAt(sqInt retNOffset)
+{
+ sqInt destReg;
+ sqInt headerReg;
+ AbstractInstruction *jumpBadIndex;
+ AbstractInstruction *jumpBounds;
+ AbstractInstruction *jumpNotCogMethod;
+ AbstractInstruction *jumpNotHeaderIndex;
+ sqInt offset;
+ sqInt operandOne;
+ sqInt quickConstant;
+
+ /* get header into Arg1Reg... */
+
+ jumpBadIndex = genJumpNotSmallInteger(Arg0Reg);
+ /* begin MoveMw:r:R: */
+ destReg = (headerReg = Arg1Reg);
+ /* begin gen:quickConstant:operand:operand: */
+ checkQuickConstantforInstruction(BaseHeaderSize, genoperandoperandoperand(MoveMwrR, BaseHeaderSize, ReceiverResultReg, destReg));
+ jumpNotCogMethod = genJumpSmallInteger(headerReg);
+ /* begin MoveMw:r:R: */
+ offset = offsetof(CogMethod, methodHeader);
+ /* begin gen:quickConstant:operand:operand: */
+ checkQuickConstantforInstruction(offset, genoperandoperandoperand(MoveMwrR, offset, headerReg, headerReg));
+ jmpTarget(jumpNotCogMethod, gCmpCqR(((1 << 1) | 1), Arg0Reg));
+ /* begin JumpNonZero: */
+ jumpNotHeaderIndex = genConditionalBranchoperand(JumpNonZero, ((sqInt)0));
+ /* begin MoveR:R: */
+ genoperandoperand(MoveRR, headerReg, ReceiverResultReg);
+ /* begin RetN: */
+ genoperand(RetN, retNOffset);
+ jmpTarget(jumpNotHeaderIndex, gAndCqR((((alternateHeaderNumLiteralsMask()) << 1) | 1), headerReg));
+ /* begin SubCq:R: */
+ quickConstant = (((1 << 1) | 1)) - (smallIntegerTag());
+ /* begin gen:quickConstant:operand: */
+ checkQuickConstantforInstruction(quickConstant, genoperandoperand(SubCqR, quickConstant, Arg0Reg));
+ /* begin CmpR:R: */
+ genoperandoperand(CmpRR, headerReg, Arg0Reg);
+ /* begin JumpAbove: */
+ jumpBounds = genConditionalBranchoperand(JumpAbove, ((sqInt)0));
+ genConvertSmallIntegerToIntegerInReg(Arg0Reg);
+ /* begin AddCq:R: */
+ /* begin gen:quickConstant:operand: */
+ operandOne = ((usqInt) BaseHeaderSize) >> (shiftForWord());
+ checkQuickConstantforInstruction(operandOne, genoperandoperand(AddCqR, operandOne, Arg0Reg));
+ /* begin MoveXwr:R:R: */
+ genoperandoperandoperand(MoveXwrRR, Arg0Reg, ReceiverResultReg, ReceiverResultReg);
+ /* begin RetN: */
+ genoperand(RetN, retNOffset);
+ jmpTarget(jumpBounds, gAddCqR((((1 << 1) | 1)) - (smallIntegerTag()), Arg0Reg));
+ jmpTarget(jumpBadIndex, gLabel());
+ return CompletePrimitive;
+}
+
+
/* c.f. StackInterpreter>>stSizeOf: lengthOf:baseHeader:format:
fixedFieldsOf:format:length:
*/
@@ -19470,6 +19472,130 @@
return 0;
}
+
+/* Implement the guts of primitiveStringAt; dispatch on size */
+
+ /* CogObjectRepresentationForSpur>>#genInnerPrimitiveStringAt: */
+static sqInt NoDbgRegParms
+genInnerPrimitiveStringAt(sqInt retNoffset)
+{
+ AbstractInstruction *done;
+ sqInt formatReg;
+ AbstractInstruction *jumpBadIndex;
+ AbstractInstruction *jumpBytesOutOfBounds;
+ AbstractInstruction *jumpIsBytes;
+ AbstractInstruction *jumpIsShorts;
+ AbstractInstruction *jumpIsWords;
+ AbstractInstruction *jumpNotIndexable;
+ AbstractInstruction *jumpNotInt;
+ AbstractInstruction *jumpShortsOutOfBounds;
+ AbstractInstruction *jumpWordsOutOfBounds;
+ AbstractInstruction *jumpWordTooBig;
+ sqInt operandOne;
+ sqInt quickConstant;
+ sqInt quickConstant1;
+ sqInt quickConstant2;
+ sqInt quickConstant3;
+
+
+ /* c.f. StackInterpreter>>stSizeOf: SpurMemoryManager>>lengthOf:format: fixedFieldsOf:format:length: */
+
+ /* begin MoveR:R: */
+ genoperandoperand(MoveRR, Arg0Reg, Arg1Reg);
+ /* begin genJumpNotSmallInteger:scratch: */
+ jumpNotInt = genJumpNotSmallInteger(Arg0Reg);
+ if ((((sqInt)jumpNotInt)) == UnimplementedOperation) {
+ /* begin MoveR:R: */
+ genoperandoperand(MoveRR, Arg0Reg, TempReg);
+ jumpNotInt = genJumpNotSmallIntegerInScratchReg(TempReg);
+ }
+ jumpBadIndex = jumpNotInt;
+ genConvertSmallIntegerToIntegerInReg(Arg1Reg);
+ /* begin SubCq:R: */
+ /* begin gen:quickConstant:operand: */
+ checkQuickConstantforInstruction(1, genoperandoperand(SubCqR, 1, Arg1Reg));
+ genGetFormatOfintoleastSignificantHalfOfBaseHeaderIntoScratch(ReceiverResultReg, (formatReg = SendNumArgsReg), null);
+ genGetNumSlotsOfinto(ReceiverResultReg, ClassReg);
+ /* begin CmpCq:R: */
+ quickConstant = firstByteFormat();
+ /* begin gen:quickConstant:operand: */
+ checkQuickConstantforInstruction(quickConstant, genoperandoperand(CmpCqR, quickConstant, formatReg));
+ /* begin JumpGreaterOrEqual: */
+ jumpIsBytes = genConditionalBranchoperand(JumpGreaterOrEqual, ((sqInt)0));
+ /* begin CmpCq:R: */
+ quickConstant1 = firstShortFormat();
+ /* begin gen:quickConstant:operand: */
+ checkQuickConstantforInstruction(quickConstant1, genoperandoperand(CmpCqR, quickConstant1, formatReg));
+ /* begin JumpGreaterOrEqual: */
+ jumpIsShorts = genConditionalBranchoperand(JumpGreaterOrEqual, ((sqInt)0));
+ /* begin CmpCq:R: */
+ quickConstant2 = firstLongFormat();
+ /* begin gen:quickConstant:operand: */
+ checkQuickConstantforInstruction(quickConstant2, genoperandoperand(CmpCqR, quickConstant2, formatReg));
+ /* begin JumpGreaterOrEqual: */
+ jumpIsWords = genConditionalBranchoperand(JumpGreaterOrEqual, ((sqInt)0));
+ /* begin Jump: */
+ jumpNotIndexable = genoperand(Jump, ((sqInt)0));
+ jmpTarget(jumpIsBytes, gLogicalShiftLeftCqR(shiftForWord(), ClassReg));
+ /* begin AndCq:R: */
+ /* begin gen:quickConstant:operand: */
+ checkQuickConstantforInstruction(BytesPerWord - 1, genoperandoperand(AndCqR, BytesPerWord - 1, formatReg));
+ /* begin SubR:R: */
+ genoperandoperand(SubRR, formatReg, ClassReg);
+ /* begin CmpR:R: */
+ genoperandoperand(CmpRR, Arg1Reg, ClassReg);
+ /* begin JumpBelowOrEqual: */
+ jumpBytesOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
+ /* begin AddCq:R: */
+ /* begin gen:quickConstant:operand: */
+ checkQuickConstantforInstruction(BaseHeaderSize, genoperandoperand(AddCqR, BaseHeaderSize, Arg1Reg));
+ /* begin MoveXbr:R:R: */
+ genoperandoperandoperand(MoveXbrRR, Arg1Reg, ReceiverResultReg, ReceiverResultReg);
+
+ /* begin Label */
+ done = genoperandoperand(Label, (labelCounter += 1), bytecodePC);
+ genConvertIntegerToCharacterInReg(ReceiverResultReg);
+ /* begin RetN: */
+ genoperand(RetN, retNoffset);
+ jmpTarget(jumpIsShorts, gLogicalShiftLeftCqR((shiftForWord()) - 1, ClassReg));
+ /* begin AndCq:R: */
+ /* begin gen:quickConstant:operand: */
+ checkQuickConstantforInstruction(1, genoperandoperand(AndCqR, 1, formatReg));
+ /* begin SubR:R: */
+ genoperandoperand(SubRR, formatReg, ClassReg);
+ /* begin CmpR:R: */
+ genoperandoperand(CmpRR, Arg1Reg, ClassReg);
+ /* begin JumpBelowOrEqual: */
+ jumpShortsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
+ /* begin AddR:R: */
+ genoperandoperand(AddRR, Arg1Reg, ReceiverResultReg);
+ /* begin MoveM16:r:R: */
+ /* begin gen:quickConstant:operand:operand: */
+ checkQuickConstantforInstruction(BaseHeaderSize, genoperandoperandoperand(MoveM16rR, BaseHeaderSize, ReceiverResultReg, ReceiverResultReg));
+ /* begin Jump: */
+ genoperand(Jump, ((sqInt)done));
+ jmpTarget(jumpIsWords, gCmpRR(Arg1Reg, ClassReg));
+ /* begin JumpBelowOrEqual: */
+ jumpWordsOutOfBounds = genConditionalBranchoperand(JumpBelowOrEqual, ((sqInt)0));
+ /* begin AddCq:R: */
+ /* begin gen:quickConstant:operand: */
+ operandOne = ((usqInt) BaseHeaderSize) >> (shiftForWord());
+ checkQuickConstantforInstruction(operandOne, genoperandoperand(AddCqR, operandOne, Arg1Reg));
+ /* begin MoveXwr:R:R: */
+ genoperandoperandoperand(MoveXwrRR, Arg1Reg, ReceiverResultReg, TempReg);
+ /* begin SubCq:R: */
+ quickConstant3 = ((usqInt) BaseHeaderSize) >> (shiftForWord());
+ /* begin gen:quickConstant:operand: */
+ checkQuickConstantforInstruction(quickConstant3, genoperandoperand(SubCqR, quickConstant3, Arg1Reg));
+ jumpWordTooBig = jumpNotCharacterUnsignedValueInRegister(TempReg);
+ /* begin MoveR:R: */
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list