[OpenSmalltalk/opensmalltalk-vm] fc26c6: CogVM source as per VMMaker.oscog-eem.2671

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

[OpenSmalltalk/opensmalltalk-vm] fc26c6: CogVM source as per VMMaker.oscog-eem.2671

Eliot Miranda-3
 
  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: fc26c6398750a0c72d5341cbd97b342d20bba718
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/fc26c6398750a0c72d5341cbd97b342d20bba718
  Author: Eliot Miranda <[hidden email]>
  Date:   2020-01-22 (Wed, 22 Jan 2020)

  Changed paths:
    M nsspur64src/vm/cogit.h
    M nsspur64src/vm/cogitX64SysV.c
    M nsspur64src/vm/cogitX64WIN64.c
    M nsspur64src/vm/cointerp.c
    M nsspur64src/vm/cointerp.h
    M nsspur64src/vm/gcc3x-cointerp.c
    M nsspursrc/vm/cogit.h
    M nsspursrc/vm/cogitARMv5.c
    M nsspursrc/vm/cogitIA32.c
    M nsspursrc/vm/cogitMIPSEL.c
    M nsspursrc/vm/cointerp.c
    M nsspursrc/vm/cointerp.h
    M nsspursrc/vm/gcc3x-cointerp.c
    M nsspurstack64src/vm/gcc3x-interp.c
    M nsspurstack64src/vm/interp.c
    M nsspurstacksrc/vm/gcc3x-interp.c
    M nsspurstacksrc/vm/interp.c
    M spur64src/vm/cogit.h
    M spur64src/vm/cogitX64SysV.c
    M spur64src/vm/cogitX64WIN64.c
    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 spurlowcode64src/vm/cogit.h
    M spurlowcode64src/vm/cogitX64SysV.c
    M spurlowcode64src/vm/cogitX64WIN64.c
    M spurlowcode64src/vm/cointerp.c
    M spurlowcode64src/vm/cointerp.h
    M spurlowcode64src/vm/gcc3x-cointerp.c
    M spurlowcodesrc/vm/cogit.h
    M spurlowcodesrc/vm/cogitARMv5.c
    M spurlowcodesrc/vm/cogitIA32.c
    M spurlowcodesrc/vm/cogitMIPSEL.c
    M spurlowcodesrc/vm/cointerp.c
    M spurlowcodesrc/vm/cointerp.h
    M spurlowcodesrc/vm/gcc3x-cointerp.c
    M spurlowcodestack64src/vm/gcc3x-interp.c
    M spurlowcodestack64src/vm/interp.c
    M spurlowcodestacksrc/vm/gcc3x-interp.c
    M spurlowcodestacksrc/vm/interp.c
    M spursista64src/vm/cogit.h
    M spursista64src/vm/cogitX64SysV.c
    M spursista64src/vm/cogitX64WIN64.c
    M spursista64src/vm/cointerp.c
    M spursista64src/vm/cointerp.h
    M spursista64src/vm/gcc3x-cointerp.c
    M spursistasrc/vm/cogit.h
    M spursistasrc/vm/cogitARMv5.c
    M spursistasrc/vm/cogitIA32.c
    M spursistasrc/vm/cogitMIPSEL.c
    M spursistasrc/vm/cointerp.c
    M spursistasrc/vm/cointerp.h
    M spursistasrc/vm/gcc3x-cointerp.c
    M spursrc/vm/cogit.h
    M spursrc/vm/cogitARMv5.c
    M spursrc/vm/cogitIA32.c
    M spursrc/vm/cogitMIPSEL.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 spurstack64src/vm/gcc3x-interp.c
    M spurstack64src/vm/interp.c
    M spurstack64src/vm/validImage.c
    M spurstacksrc/vm/gcc3x-interp.c
    M spurstacksrc/vm/interp.c
    M spurstacksrc/vm/validImage.c
    M src/vm/cogit.h
    M src/vm/cogitARMv5.c
    M src/vm/cogitIA32.c
    M src/vm/cogitMIPSEL.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.2671

Spur:
Succumb to temptation and avoid moving the value through the FPU in 64-bit
floatAt:[put:].  Rename the primitives to fit the house style
(primitiveSpurFoo, not primitiveFooSpur).
Refactor smallFloatObjectOf: to avoid duplication.

Cogit:
Refactor simulation of flushICacheFrom:to: so that it actually runs on
processors which we can and do choose to implement this in machine code.  The
implementation is now in the backEnd and defers to the simulator if required.

Compute numTrampolines more accurately, deferring to the backEnd class for
backEnd specific trampolines such as ceCheckFeatures.

Add AddCqRR (useful for ARMv8 cache flushing).

Clean up the definition of the optional trampolines for ZeroCount, low-level
locks, processor feature checks and cache flushing.


  Commit: 2aaf1b919b15e14e01ef083e260e3011150cb6fc
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/2aaf1b919b15e14e01ef083e260e3011150cb6fc
  Author: Eliot Miranda <[hidden email]>
  Date:   2020-01-23 (Thu, 23 Jan 2020)

  Changed paths:
    M nsspur64src/vm/cogit.h
    M nsspur64src/vm/cogitX64SysV.c
    M nsspur64src/vm/cogitX64WIN64.c
    M nsspur64src/vm/cointerp.c
    M nsspur64src/vm/cointerp.h
    M nsspur64src/vm/gcc3x-cointerp.c
    M nsspursrc/vm/cogit.h
    M nsspursrc/vm/cogitARMv5.c
    M nsspursrc/vm/cogitIA32.c
    M nsspursrc/vm/cogitMIPSEL.c
    M nsspursrc/vm/cointerp.c
    M nsspursrc/vm/cointerp.h
    M nsspursrc/vm/gcc3x-cointerp.c
    M nsspurstack64src/vm/gcc3x-interp.c
    M nsspurstack64src/vm/interp.c
    M nsspurstacksrc/vm/gcc3x-interp.c
    M nsspurstacksrc/vm/interp.c
    M spur64src/vm/cogit.h
    M spur64src/vm/cogitX64SysV.c
    M spur64src/vm/cogitX64WIN64.c
    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 spurlowcode64src/vm/cogit.h
    M spurlowcode64src/vm/cogitX64SysV.c
    M spurlowcode64src/vm/cogitX64WIN64.c
    M spurlowcode64src/vm/cointerp.c
    M spurlowcode64src/vm/cointerp.h
    M spurlowcode64src/vm/gcc3x-cointerp.c
    M spurlowcodesrc/vm/cogit.h
    M spurlowcodesrc/vm/cogitARMv5.c
    M spurlowcodesrc/vm/cogitIA32.c
    M spurlowcodesrc/vm/cogitMIPSEL.c
    M spurlowcodesrc/vm/cointerp.c
    M spurlowcodesrc/vm/cointerp.h
    M spurlowcodesrc/vm/gcc3x-cointerp.c
    M spurlowcodestack64src/vm/gcc3x-interp.c
    M spurlowcodestack64src/vm/interp.c
    M spurlowcodestacksrc/vm/gcc3x-interp.c
    M spurlowcodestacksrc/vm/interp.c
    M spursista64src/vm/cogit.h
    M spursista64src/vm/cogitX64SysV.c
    M spursista64src/vm/cogitX64WIN64.c
    M spursista64src/vm/cointerp.c
    M spursista64src/vm/cointerp.h
    M spursista64src/vm/gcc3x-cointerp.c
    M spursistasrc/vm/cogit.h
    M spursistasrc/vm/cogitARMv5.c
    M spursistasrc/vm/cogitIA32.c
    M spursistasrc/vm/cogitMIPSEL.c
    M spursistasrc/vm/cointerp.c
    M spursistasrc/vm/cointerp.h
    M spursistasrc/vm/gcc3x-cointerp.c
    M spursrc/vm/cogit.h
    M spursrc/vm/cogitARMv5.c
    M spursrc/vm/cogitIA32.c
    M spursrc/vm/cogitMIPSEL.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 spurstack64src/vm/gcc3x-interp.c
    M spurstack64src/vm/interp.c
    M spurstack64src/vm/validImage.c
    M spurstacksrc/vm/gcc3x-interp.c
    M spurstacksrc/vm/interp.c
    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/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/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/cogitIA32.c
    M src/vm/cogitMIPSEL.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.2672

Slang/Cogit:
Declare the ceTryLockVMOwner & ceUnlockVMOwner routines as conditional on
COGMTVM (as they should be).  Clean up the variable emission code to handle
this kind of (ugly) hack more cleanly.  Fixes a regression introduced by
VMMaker.oscog-eem.2671 where these variables would be mis-declared as sqInts
in COGMTVM=0 compiles.


  Commit: c21e41a649d95395ec721ef3d47d4031d16f0ffd
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/c21e41a649d95395ec721ef3d47d4031d16f0ffd
  Author: Eliot Miranda <[hidden email]>
  Date:   2020-01-23 (Thu, 23 Jan 2020)

  Changed paths:
    M spurlowcode64src/vm/exampleSqNamedPrims.h
    M spurlowcodesrc/vm/exampleSqNamedPrims.h
    M spurlowcodestack64src/vm/exampleSqNamedPrims.h
    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/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/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

  Log Message:
  -----------
  CogVM source as per VMMaker.oscog-eem.2673

Placate Slang by adding a macro for the internal vs external tag on the end of
the plugin moduleName, so that we keep the changes in VMMaker.oscog-eem.2671 &
VMMaker.oscog-eem.2672 for hack #if declarations, and don't have to add yet
another hack to handle the old style (and more verbose) moduleName declaration.
And move declareModuleName: to VMPluginCodeGenerator where it belongs.

Alas this means that we regenerate all plugins, but just this once.

Fix the unofficial exampleSqNamedPrims.h files in some lowcode dirs.


Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/ea1a65c66c48...c21e41a649d9