[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 2c4ce3: CogVM source as per Name: VMMaker.oscog-eem.3022

Eliot Miranda noreply at github.com
Wed Aug 4 01:01:45 UTC 2021


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 2c4ce31b8d6edf3c906958a7bf59b92d7fe52428
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/2c4ce31b8d6edf3c906958a7bf59b92d7fe52428
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2021-08-03 (Tue, 03 Aug 2021)

  Changed paths:
    M image/BuildSqueakSpurTrunkVMMakerImage.st
    M platforms/Cross/vm/sq.h
    M platforms/Cross/vm/sqNamedPrims.c
    M platforms/iOS/vm/OSX/sqMacUnixExternalPrims.m
    M platforms/minheadless/common/sqExternalPrimitives.c
    M platforms/unix/vm/sqUnixExternalPrims.c
    M platforms/win32/vm/sqWin32ExternalPrims.c
    M spur64src/vm/cogit.h
    M spur64src/vm/cogitARMv8.c
    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/cogitARMv8.c
    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/cogitARMv8.c
    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/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
    M src/plugins/BitBltPlugin/BitBltPlugin.c
    M src/plugins/CroquetPlugin/CroquetPlugin.c
    M src/plugins/Squeak3D/Squeak3D.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/gcc3x-cointerp.c
    M stacksrc/vm/gcc3x-interp.c
    M stacksrc/vm/interp.c

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

Cogit: FastCPrimitiveCall.
Get the receiver and restore retpc correctly on CISCs.
Save a few bytes setting argumentCount after zeroing primFailCode in C primitive invocation.

Save and restore LinkReg and/or SPReg around the primitive and checkForAndFollowForwardedPrimitiveState calls.

Spur CoInterpreter: Improve checkForAndFollowForwardedPrimitiveState. Allow the method's first literal (if an FFI or named primitive) to be forwarded, unfollowing it *before* accessorDepth is fetched.  Follow it to the relevant depth.

Cog: use symbolic constants for Spur primitive metadata manipulation.
Refactor linkExternalCall:ifFail: into linkExternalCall:errInto: so it doesn't have to be inlined.
Fix mapToBytecodePCIfActivationOfExternalMethod: to asvoid an assert fail for an interpreter frame activation of an external method.
Use faster length accessors (numSlotsOf: numBytesOfBytes:) in a few places.

Reorder the storing of newMethod and the setting of stack pointers in compileOnStackExternalPrimitive:flags:, as well as making an invariant on VarBase clear.

Merge Ben Avison's minor changes that help support the improvements he made for the ARM64 bitblt

Have the CroquetPlugin primitives use the FastCPrimitiveFlag FastCPrimitiveAlignForFloatsFlag flags.  Use the methodReturnFoo: protocol.

Use symbolic constants for the Spur primitive metadata manipulation.

Don't pull in ClosedVMMaker when building a trunk VMMaker image.  ClosedVMMaker
is history.




More information about the Vm-dev mailing list