[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 951e31: CogVm source as per VMMaker.oscog-eem.2663
Eliot Miranda
noreply at github.com
Sat Jan 18 22:59:52 UTC 2020
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 951e31e5f66ddd85b29369ac95741dfeb7b13328
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/951e31e5f66ddd85b29369ac95741dfeb7b13328
Author: Eliot Miranda <eliot.miranda at gmail.com>
Date: 2020-01-18 (Sat, 18 Jan 2020)
Changed paths:
M nsspur64src/vm/cogit.h
M nsspur64src/vm/cointerp.c
M nsspur64src/vm/cointerp.h
M nsspur64src/vm/gcc3x-cointerp.c
M nsspur64src/vm/interp.h
M nsspursrc/vm/cogit.h
M nsspursrc/vm/cogitARMv5.c
M nsspursrc/vm/cointerp.c
M nsspursrc/vm/cointerp.h
M nsspursrc/vm/gcc3x-cointerp.c
M nsspursrc/vm/interp.h
M nsspurstack64src/vm/gcc3x-interp.c
M nsspurstack64src/vm/interp.c
M nsspurstack64src/vm/interp.h
M nsspurstacksrc/vm/gcc3x-interp.c
M nsspurstacksrc/vm/interp.c
M nsspurstacksrc/vm/interp.h
M platforms/Cross/vm/sqVirtualMachine.c
M platforms/Cross/vm/sqVirtualMachine.h
M platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m
M spur64src/vm/cogit.h
M spur64src/vm/cointerp.c
M spur64src/vm/cointerp.h
M spur64src/vm/cointerpmt.c
M spur64src/vm/cointerpmt.h
M spur64src/vm/gcc3x-cointerp.c
M spur64src/vm/gcc3x-cointerpmt.c
M spur64src/vm/interp.h
M spurlowcode64src/vm/cogit.h
M spurlowcode64src/vm/cointerp.c
M spurlowcode64src/vm/cointerp.h
M spurlowcode64src/vm/gcc3x-cointerp.c
M spurlowcode64src/vm/interp.h
M spurlowcodesrc/vm/cogit.h
M spurlowcodesrc/vm/cogitARMv5.c
M spurlowcodesrc/vm/cointerp.c
M spurlowcodesrc/vm/cointerp.h
M spurlowcodesrc/vm/gcc3x-cointerp.c
M spurlowcodesrc/vm/interp.h
M spurlowcodestack64src/vm/gcc3x-interp.c
M spurlowcodestack64src/vm/interp.c
M spurlowcodestack64src/vm/interp.h
M spurlowcodestacksrc/vm/gcc3x-interp.c
M spurlowcodestacksrc/vm/interp.c
M spurlowcodestacksrc/vm/interp.h
M spursista64src/vm/cogit.h
M spursista64src/vm/cointerp.c
M spursista64src/vm/cointerp.h
M spursista64src/vm/gcc3x-cointerp.c
M spursista64src/vm/interp.h
M spursistasrc/vm/cogit.h
M spursistasrc/vm/cogitARMv5.c
M spursistasrc/vm/cointerp.c
M spursistasrc/vm/cointerp.h
M spursistasrc/vm/gcc3x-cointerp.c
M spursistasrc/vm/interp.h
M spursrc/vm/cogit.h
M spursrc/vm/cogitARMv5.c
M spursrc/vm/cointerp.c
M spursrc/vm/cointerp.h
M spursrc/vm/cointerpmt.c
M spursrc/vm/cointerpmt.h
M spursrc/vm/gcc3x-cointerp.c
M spursrc/vm/gcc3x-cointerpmt.c
M spursrc/vm/interp.h
M spurstack64src/vm/gcc3x-interp.c
M spurstack64src/vm/interp.c
M spurstack64src/vm/interp.h
M spurstack64src/vm/validImage.c
M spurstacksrc/vm/gcc3x-interp.c
M spurstacksrc/vm/interp.c
M spurstacksrc/vm/interp.h
M spurstacksrc/vm/validImage.c
M src/plugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c
M src/plugins/AioPlugin/AioPlugin.c
M src/plugins/AsynchFilePlugin/AsynchFilePlugin.c
M src/plugins/B2DPlugin/B2DPlugin.c
M src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
M src/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c
M src/plugins/BitBltPlugin/BitBltPlugin.c
M src/plugins/BochsIA32Plugin/BochsIA32Plugin.c
M src/plugins/BochsX64Plugin/BochsX64Plugin.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/DropPlugin/DropPlugin.c
M src/plugins/FFTPlugin/FFTPlugin.c
M src/plugins/FileAttributesPlugin/FileAttributesPlugin.c
M src/plugins/FileCopyPlugin/FileCopyPlugin.c
M src/plugins/FilePlugin/FilePlugin.c
M src/plugins/FloatArrayPlugin/FloatArrayPlugin.c
M src/plugins/FloatMathPlugin/FloatMathPlugin.c
M src/plugins/GdbARMPlugin/GdbARMPlugin.c
M src/plugins/GdbARMv8Plugin/GdbARMv8Plugin.c
M src/plugins/GeniePlugin/GeniePlugin.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/JoystickTabletPlugin/JoystickTabletPlugin.c
M src/plugins/Klatt/Klatt.c
M src/plugins/LargeIntegers/LargeIntegers.c
M src/plugins/LocalePlugin/LocalePlugin.c
M src/plugins/MD5Plugin/MD5Plugin.c
M src/plugins/MIDIPlugin/MIDIPlugin.c
M src/plugins/MacMenubarPlugin/MacMenubarPlugin.c
M src/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c
M src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
M src/plugins/Mpeg3Plugin/Mpeg3Plugin.c
M src/plugins/QuicktimePlugin/QuicktimePlugin.c
M src/plugins/RePlugin/RePlugin.c
M src/plugins/SHA256Plugin/SHA256Plugin.c
M src/plugins/ScratchPlugin/ScratchPlugin.c
M src/plugins/SecurityPlugin/SecurityPlugin.c
M src/plugins/SerialPlugin/SerialPlugin.c
M src/plugins/SocketPlugin/SocketPlugin.c
M src/plugins/SoundCodecPrims/SoundCodecPrims.c
M src/plugins/SoundGenerationPlugin/SoundGenerationPlugin.c
M src/plugins/SoundPlugin/SoundPlugin.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/SqueakSSL/SqueakSSL.c
M src/plugins/StarSqueakPlugin/StarSqueakPlugin.c
M src/plugins/UUIDPlugin/UUIDPlugin.c
M src/plugins/UnicodePlugin/UnicodePlugin.c
M src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c
M src/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
M src/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
M src/plugins/WeDoPlugin/WeDoPlugin.c
M src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c
M src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
M src/plugins/ZipPlugin/ZipPlugin.c
M src/vm/cogit.h
M src/vm/cogitARMv5.c
M src/vm/cointerp.c
M src/vm/cointerp.h
M src/vm/cointerpmt.c
M src/vm/cointerpmt.h
M src/vm/gcc3x-cointerp.c
M src/vm/gcc3x-cointerpmt.c
M stacksrc/vm/gcc3x-interp.c
M stacksrc/vm/interp.c
Log Message:
-----------
CogVm source as per VMMaker.oscog-eem.2663
Implement 238 primitiveFloatArrayAt & 239 primitiveFloatArrayAtPut for Spur
WordArray and DoubleWordArray as higher performance versions of the
FloatArrayPlugin. No JIT implementation yet.
Add the integer arrays to the plugin API (classDoubleByteArray et al).
Reorganize vmProxyMajor/MinorVersion so that different object memories can
provide different versions (this API is only really useful in Spur).
Comment a non-obvious point with InterpreterPlugin>>setInterpreter:.
Remove some annoying Undefined Behavior.
When compiling the VM with Makefile.flags
CFLAGS,LDFLAGS,BFLAGS,DYFLAGS=
-fsanitize=undefined \
we then get annoying undefined behavior warning, like:
../../spursrc/vm/gcc3x-cointerp.c:52198:33: runtime error: signed integer overflow: -1197416510 * 16807 cannot be represented in type 'int'
../../src/plugins/BitBltPlugin/BitBltPlugin.c:4390:34: runtime error: shift exponent 32 is too large for 32-bit type 'usqInt' (aka 'unsigned int')
Since we should not rely on UB, let's remove UB.
For hash, we simply use unsigned arithmetic (with the final bitAnd: this is
strictly equivalent). For BitBlt, we must avoid shifting by 32 positions
(replace those trivial case of information fitting a single 32-bit word).
Cogit:
Fix another slip in CogARMCompiler>>concretizeLoadEffectiveAddressMwrR
More information about the Vm-dev
mailing list