[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] c14b71: CogVM source as per Name: VMMaker.oscog-eem.2862

Eliot Miranda noreply at github.com
Thu Oct 29 21:49:13 UTC 2020


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

  Changed paths:
    M build.macos64x64/bochsx64/exploration/Makefile
    M nsspur64src/vm/cogit.h
    M nsspur64src/vm/cogitARMv8.c
    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 nsspur64src/vm/vmCallback.h
    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 nsspursrc/vm/vmCallback.h
    M nsspurstack64src/vm/gcc3x-interp.c
    M nsspurstack64src/vm/interp.c
    M nsspurstack64src/vm/vmCallback.h
    M nsspurstacksrc/vm/gcc3x-interp.c
    M nsspurstacksrc/vm/interp.c
    M nsspurstacksrc/vm/vmCallback.h
    M platforms/iOS/vm/OSX/sqPlatformSpecific.h
    M processors/IA32/bochs/explorationx64/printcpu.c
    M processors/IA32/bochs/explorationx64/printcpucr.c
    M processors/IA32/bochs/explorationx64/printcpuxmm.c
    M scripts/gitrevert
    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 spur64src/vm/vmCallback.h
    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 spurlowcode64src/vm/vmCallback.h
    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 spurlowcodesrc/vm/vmCallback.h
    M spurlowcodestack64src/vm/gcc3x-interp.c
    M spurlowcodestack64src/vm/interp.c
    M spurlowcodestack64src/vm/vmCallback.h
    M spurlowcodestacksrc/vm/gcc3x-interp.c
    M spurlowcodestacksrc/vm/interp.c
    M spurlowcodestacksrc/vm/vmCallback.h
    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 spursista64src/vm/vmCallback.h
    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 spursistasrc/vm/vmCallback.h
    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 spursrc/vm/vmCallback.h
    M spurstack64src/vm/gcc3x-interp.c
    M spurstack64src/vm/interp.c
    M spurstack64src/vm/validImage.c
    M spurstack64src/vm/vmCallback.h
    M spurstacksrc/vm/gcc3x-interp.c
    M spurstacksrc/vm/interp.c
    M spurstacksrc/vm/validImage.c
    M spurstacksrc/vm/vmCallback.h
    M src/plugins/B2DPlugin/B2DPlugin.c
    M src/plugins/FilePlugin/FilePlugin.c
    M src/plugins/SocketPlugin/SocketPlugin.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/UnixOSProcessPlugin/UnixOSProcessPlugin.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 src/vm/vmCallback.h
    M stacksrc/vm/gcc3x-interp.c
    M stacksrc/vm/interp.c
    M stacksrc/vm/vmCallback.h

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

Cogit: Revise deriving the varBaseAddress after finding on MacOS that the linker
may not "follow orders".  So take the minimum of several likely addresses,
secretly hoping the minimum is something like stackLimit, which likely has the
highest dynamic frequency (well done clang).

Eliminate ceEnterInterpreterOnReturnFromCogCode and have the
ceReturnToInterpreterTrampoline invoke interpret directly, using the same code
as ceInvokeInterpret.  Do this by moving the setMethod: send into interpret
from senders; setMethod: is key because it sets the bytecodeSetSelector to
enable multiple bytecode set support, but machine code is (and should remain)
ignorant of the details of bytecode set selection in compiled method headers.

cogitARMv8.c Add __ARM_ARCH >= 8 to cogit.c's ARMv8 identifying macros.

CoInterpreterMT: Get rid of vmOwnerLock; what a bogus idea.  Just use CAS on
vmOwner as God (DS) intended. Fix a bug in CoInterpreterMT>>wakeHighestPriority.
Refactor ABI callout marshalling on X64 to use the same CArg0Reg thru CArg3Reg
pattern as on ARMv8.  Make CPUID the first processor specific opcode on Intel.
Eliminate use of reenterInterpreter, this is StackInterpreter only now.

FilePlugin:
Add FilePlugin>>primitiveFileReadPinningAndDisowning, for file read in COGMTVM.
Use methodReturnInteger: rather than methodReturnValue: ... integerObjectOf::

Slang: generate neater code for pointer indirection.  Instead of indexing with
zero, dereference with *.  Eliminate a space in function type printing.




More information about the Vm-dev mailing list