Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: 99f1116c0f7a4ba9a0bf88cf7deb276325aa2d79 https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/99f1116c0f7a4ba9a0b... Author: Eliot Miranda eliot.miranda@gmail.com Date: 2021-10-15 (Fri, 15 Oct 2021)
Changed paths: M src/plugins/B2DPlugin/B2DPlugin.c M src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c M src/plugins/BitBltPlugin/BitBltPlugin.c M src/plugins/CameraPlugin/CameraPlugin.c M src/plugins/CroquetPlugin/CroquetPlugin.c M src/plugins/DESPlugin/DESPlugin.c M src/plugins/DSAPrims/DSAPrims.c M src/plugins/FileAttributesPlugin/FileAttributesPlugin.c M src/plugins/FileCopyPlugin/FileCopyPlugin.c M src/plugins/FilePlugin/FilePlugin.c M src/plugins/Float64ArrayPlugin/Float64ArrayPlugin.c M src/plugins/FloatArrayPlugin/FloatArrayPlugin.c M src/plugins/HostWindowPlugin/HostWindowPlugin.c M src/plugins/IA32ABI/IA32ABI.c M src/plugins/ImmX11Plugin/ImmX11Plugin.c M src/plugins/InternetConfigPlugin/InternetConfigPlugin.c M src/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c M src/plugins/JPEGReaderPlugin/JPEGReaderPlugin.c M src/plugins/Klatt/Klatt.c M src/plugins/LargeIntegers/LargeIntegers.c M src/plugins/MD5Plugin/MD5Plugin.c M src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c M src/plugins/Mpeg3Plugin/Mpeg3Plugin.c M src/plugins/SHA2Plugin/SHA2Plugin.c M src/plugins/ScratchPlugin/ScratchPlugin.c M src/plugins/SerialPlugin/SerialPlugin.c M src/plugins/SocketPlugin/SocketPlugin.c M src/plugins/SoundCodecPrims/SoundCodecPrims.c M src/plugins/SoundPlugin/SoundPlugin.c M src/plugins/Squeak3D/Squeak3D.c M src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c M src/plugins/SqueakFFIPrims/ARM64FFIPlugin.c M src/plugins/SqueakFFIPrims/IA32FFIPlugin.c M src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c M src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c M src/plugins/UnicodePlugin/UnicodePlugin.c M src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c M src/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c M src/plugins/WeDoPlugin/WeDoPlugin.c M src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c M src/spur32.cog.lowcode/cogit.h M src/spur32.cog.lowcode/cogitARMv5.c M src/spur32.cog.lowcode/cogitIA32.c M src/spur32.cog.lowcode/cointerp.c M src/spur32.cog.lowcode/cointerp.h M src/spur32.cog.lowcode/gcc3x-cointerp.c M src/spur32.cog/cogit.h M src/spur32.cog/cogitARMv5.c M src/spur32.cog/cogitIA32.c M src/spur32.cog/cointerp.c M src/spur32.cog/cointerp.h M src/spur32.cog/cointerpmt.c M src/spur32.cog/cointerpmt.h M src/spur32.cog/gcc3x-cointerp.c M src/spur32.cog/gcc3x-cointerpmt.c M src/spur32.cog/interp.h M src/spur32.sista/cogit.h M src/spur32.sista/cogitARMv5.c M src/spur32.sista/cogitIA32.c M src/spur32.sista/cointerp.c M src/spur32.sista/cointerp.h M src/spur32.sista/gcc3x-cointerp.c M src/spur32.stack.lowcode/gcc3x-interp.c M src/spur32.stack.lowcode/interp.c M src/spur32.stack/gcc3x-interp.c M src/spur32.stack/interp.c M src/spur32.stack/validImage.c M src/spur64.cog.lowcode/cogit.h M src/spur64.cog.lowcode/cogitARMv8.c M src/spur64.cog.lowcode/cogitX64SysV.c M src/spur64.cog.lowcode/cogitX64WIN64.c M src/spur64.cog.lowcode/cointerp.c M src/spur64.cog.lowcode/cointerp.h M src/spur64.cog.lowcode/gcc3x-cointerp.c M src/spur64.cog/cogit.h M src/spur64.cog/cogitARMv8.c M src/spur64.cog/cogitX64SysV.c M src/spur64.cog/cogitX64WIN64.c M src/spur64.cog/cointerp.c M src/spur64.cog/cointerp.h M src/spur64.cog/cointerpmt.c M src/spur64.cog/cointerpmt.h M src/spur64.cog/gcc3x-cointerp.c M src/spur64.cog/gcc3x-cointerpmt.c M src/spur64.cog/interp.h M src/spur64.sista/cogit.h M src/spur64.sista/cogitARMv8.c M src/spur64.sista/cogitX64SysV.c M src/spur64.sista/cogitX64WIN64.c M src/spur64.sista/cointerp.c M src/spur64.sista/cointerp.h M src/spur64.sista/gcc3x-cointerp.c M src/spur64.stack.lowcode/gcc3x-interp.c M src/spur64.stack.lowcode/interp.c M src/spur64.stack/gcc3x-interp.c M src/spur64.stack/interp.c M src/spur64.stack/validImage.c M src/v3.cog/cogit.h M src/v3.cog/cogitARMv5.c M src/v3.cog/cogitIA32.c M src/v3.cog/cointerp.c M src/v3.cog/cointerp.h M src/v3.cog/gcc3x-cointerp.c M src/v3.stack/gcc3x-interp.c M src/v3.stack/interp.c
Log Message: ----------- CogVM source as per VMMaker.oscog-eem.3090
Spur: Add explicit accessor depths for primitiveStringAt[Put] (correcting the ommission to mirror primitiveAt[Put]) and primitiveExternalCall. Fix a slip in printOopShortInner:.
Run primitiveSpurStringReplace and primitiveSpurFloatArrayAt[Put] on the Smalltalk stack; the latter with 2x stack alignment.
Spur Cogit: Fix code generation bug on primitive failure with no accessor depth when running primitives on the Smalltalk stack (FastCPrimitive). On CISCs the old code offset the stack pointer incorrectly, resulting in a hard crash soon after. Also allow compileInterpreterPrimitive to invoke compileOnStackExternalPrimitive:flags:.
Nuke the useless minValidCallAddress
Spur Slang: Reimplement finding of the transitive closure and length of accessor chains for computing primitive accessor depth. The algorithm now has some semblance of correctness and comprehensibility. Refactor so that accessorChainsForMethod:interpreterClass: => accessorDepthForMethod:interpreterClass:, and includes accessorDepthForChain:.
Fix a bad bug with computing accessor depths of clichés such as primitiveStrigReplace: primitiveFoo objectMemory hasSpurMemoryManagerAPI ifTrue: [self primitiveFooSpur] ifFalse: [self primitiveFooV3] The old code missed the connection and computed a -1 accessor depth.
Format the macrology for global interpreter variables, and the primitiveAccessorDepthTable, a little nicer.
Minor cleanups to a few primitives (e.g. we now have cppIf:ifFalse:).
vm-dev@lists.squeakfoundation.org