[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] e39b20: CogVM source as per VMMaker.oscog-eem.2463

GitHub noreply at github.com
Fri Oct 19 03:07:03 UTC 2018


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: e39b2091ccae1c021ceefed68822d1634162610e
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/e39b2091ccae1c021ceefed68822d1634162610e
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2018-10-18 (Thu, 18 Oct 2018)

  Changed paths:
    M image/VM Simulation Workspace.text
    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 spurstacksrc/vm/gcc3x-interp.c
    M spurstacksrc/vm/interp.c
    M src/plugins/AioPlugin/AioPlugin.c
    M src/plugins/BitBltPlugin/BitBltPlugin.c
    M src/plugins/ImmX11Plugin/ImmX11Plugin.c
    M src/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c
    M src/plugins/Mpeg3Plugin/Mpeg3Plugin.c
    M src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c
    M src/plugins/SqueakFFIPrims/IA32FFIPlugin.c
    M src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c
    M src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c
    M src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c
    M src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c
    M src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.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.2463

Plugins:
BitBltSimulation
Fix a bug where the copyBits primitive read past the end of the source bitmap.
sourceSkewAndPointerInit would sometimes compute preload true and skew true
before then setting skew to -32.  There was a hack fix in copyLoop, but the real
bug in copyLoop was the inner loop special case for rule 3 (over, or STORE). It
must fall back to the loop beginning "thisWord := self srcLongAt: sourceIndex."
when preload is false, only using the loop beginning "self dstLongAt: destIndex
put: prevWord." when preload and: [hDr = 1] is true.

Simplify the preload calculation in sourceSkewAndPointerInit by computing a mask
similar to mask1 and comparing it against mask1 to see that no bits would be
lost (if the mask computed for source is larger than mask1 then a preload is
necessary).  Hence simplify the unskew and skewMask setup in copyLoop.

Improve the performance of primitiveDisplayString by pulling the lockSurfaces
and unlockSurfaces implicit in copyBits out of the loop and replacing copyBits
with copyBitsLockedAndClipped in the loop.

Fix primitivePixelValueAt so that it simulates correctly.

Other plugins:
Remove null implementations of initialiseModule and/or shutdownModule.  The
loader/unloader invokes these only if they exist, consequently null versions
are simply a waste of time and space.



      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the Vm-dev mailing list