[OpenSmalltalk/opensmalltalk-vm] 4d3f02: CogVM source as per VMMaker.oscog-eem.2222

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

[OpenSmalltalk/opensmalltalk-vm] 4d3f02: CogVM source as per VMMaker.oscog-eem.2222

Eliot Miranda-3
 
  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 4d3f02655d68964e1fe4ed2b533658fe38168936
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/4d3f02655d68964e1fe4ed2b533658fe38168936
  Author: Eliot Miranda <[hidden email]>
  Date:   2017-05-26 (Fri, 26 May 2017)

  Changed paths:
    M build.win64x64/common/Makefile.plugin
    M build.win64x64/common/Makefile.tools
    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 platforms/unix/vm/aio.c
    M platforms/win32/vm/sqConfig.h
    M platforms/win32/vm/sqWin32DnsInfo.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/gcc3x-cointerp.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/gcc3x-cointerp.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/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.2222

StackInterpreter:
Add time primitives to answer the UTC and local microsecond clocks as updated
by the heartbeat (as the Cog VM was originally before David changed the
primitives to access the time now).  This access is much faster (of the order
of 20 nsecs per invocartion vs 450 nsecs per invocatuon on a 2.3 GHz Mac Mini).
Terf demands very fast clock times but is not concerned with fine granularity.
The primitive numbers are 245 for UTC and 246 for local.

primitiveMakePoint should fail if its /argument/ is not a SmallInteger or
Float.  Since the primitive is on Number we know the receiver is valid, and
there is no point checking it.

Fix warnings for addIdleUsecs: on WIN32/64 (must not be marked exporrt to
avoid declspec being added).

Fix display pixel reversal (for debug).  Modern implementation of displayBits
is (void *).  We can't calculate an offset (dispalyBits + n) because we don't
know the size of void! At least it fails on MSVC compiler.  So it's necessary
to convert it to char *, int *, or just sqInt.  While at it, as calculated,
the range is a pixel range (assumed on the first display line) not a word
range, but this range will be rounded to a whole word boundary.

Cogit:
Modified with Sophie K the collectCogConstituents primitive to take a boolean
parameter "withDetails". If false or no parameter, the primitive does the same
thing as before. If true, the primitive maps each CogMethod that is frameful
to an array starting with the cogMethod address followed by a mapping between
the mcpc and the bcpc instead of just the cogMethod address.

Fix the method for getting the stack pointer in Win64 ABI.  The generated
ceCaptureCStackPointers must account for the 32 bytes reserved for saving
the 4 register parameters which are allocated whatever the real number of
parameters.

Minor fix in register in branchIfInstanceOf: in SistaCogit for Characters.

Plugins:
Fix slips in the SoundPlugin code.

Win64 build.  Do not define WIN32.  Fix the win32 sqConfig.h file to work around
the clang preprocessor's failure to default undefined identifiers to 0L.