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

Eliot Miranda noreply at github.com
Wed Apr 1 22:16:32 UTC 2020


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: a9208a784aa3cae0b39d4c33bb912442e342b129
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/a9208a784aa3cae0b39d4c33bb912442e342b129
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2020-04-01 (Wed, 01 Apr 2020)

  Changed paths:
    M build.win32x86/common/Makefile
    M build.win32x86/newspeak.cog.spur/Makefile
    M build.win32x86/newspeak.stack.spur/Makefile
    M build.win32x86/pharo.cog.spur/Makefile
    M build.win32x86/pharo.sista.spur/Makefile
    M build.win32x86/pharo.stack.spur/Makefile
    M build.win32x86/squeak.cog.spur.lowcode/Makefile
    M build.win32x86/squeak.cog.spur/Makefile
    M build.win32x86/squeak.cog.v3/Makefile
    M build.win32x86/squeak.sista.spur/Makefile
    M build.win32x86/squeak.stack.spur/Makefile
    M build.win32x86/squeak.stack.v3/Makefile
    M build.win64x64/newspeak.cog.spur/Makefile
    M build.win64x64/newspeak.stack.spur/Makefile
    M build.win64x64/squeak.cog.spur/Makefile
    M build.win64x64/squeak.stack.spur/Makefile
    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 platforms/Cross/vm/sq.h
    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 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 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

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

CoInterpreter: Improve on the new simpler invoke interpreter scheme by including
the relevant return address so that the C stack looks properly connected after
reentering interpret.  This depends on getReturnAddress being defined in C.
Both MSVC and GCC (and those that support its builtins such as clang and ICC)
provide builtins/intrinsics for accessing the return address, so we don't bother
to implement it in the Cogit.

The implementation of getReturnAddress is in sq.h, not sqPlatformSpecific.h to
reduce duplication.  But if the current implementations in terms of MSVC or GCC
instrinsics don't apply, one may override in sqPlatformSpecific.h.

Windows builds:
Make most of the windows build makefiles switch hit between the cygwin/mingw
and the MSVC variants depending on a variable set by MSVC command prompts.
Hence to build using MSVC simply run make in an MSVC prompt.




More information about the Vm-dev mailing list