[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] d69735: Unify Processor/OS detection a bit more, also a bi...

GitHub noreply at github.com
Wed Jul 27 22:08:25 UTC 2016


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: d6973532fab5abcabc6e6cd7853990b736931b36
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/d6973532fab5abcabc6e6cd7853990b736931b36
  Author: Tobias Pape <tobias at netshed.de>
  Date:   2016-07-27 (Wed, 27 Jul 2016)

  Changed paths:
    M platforms/Cross/plugins/IA32ABI/ia32abi.h
    M platforms/win32/vm/sqConfig.h
    M platforms/win32/vm/sqWin32.h

  Log Message:
  -----------
  Unify Processor/OS detection a bit more, also a bit more complete


  Commit: f6c3d89714ab5c8c74e5d5e14d8b04772168dbf2
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/f6c3d89714ab5c8c74e5d5e14d8b04772168dbf2
  Author: Tobias Pape <tobias at netshed.de>
  Date:   2016-07-27 (Wed, 27 Jul 2016)

  Changed paths:
    M platforms/Cross/vm/sqAtomicOps.h

  Log Message:
  -----------
  Allow bit-detection via limits.h macro


  Commit: ffc6dded843ba60de33bb968e36f7e3affc4e4bd
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/ffc6dded843ba60de33bb968e36f7e3affc4e4bd
  Author: Tobias Pape <tobias at netshed.de>
  Date:   2016-07-27 (Wed, 27 Jul 2016)

  Changed paths:
    M platforms/Cross/vm/sqAtomicOps.h

  Log Message:
  -----------
  Atomic 64bit get/set on 32 bit windows

Someone please review :)


  Commit: 51d8645674ba73e9957e7c8dfdc11845ba2be84b
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/51d8645674ba73e9957e7c8dfdc11845ba2be84b
  Author: Tobias Pape <tobias at netshed.de>
  Date:   2016-07-27 (Wed, 27 Jul 2016)

  Changed paths:
    M platforms/Cross/vm/sqMemoryFence.h

  Log Message:
  -----------
  Use 'lock add' based memfence for Windows

see https://shipilev.net/blog/2014/on-the-fence-with-dependencies


  Commit: 856b989904eb55eecd5454f1ef51f91d1d113d27
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/856b989904eb55eecd5454f1ef51f91d1d113d27
  Author: Tobias Pape <tobias at netshed.de>
  Date:   2016-07-27 (Wed, 27 Jul 2016)

  Changed paths:
    M platforms/Cross/vm/sqMemoryFence.h

  Log Message:
  -----------
  Use MemoryBarrier on Win64

We leave the 32 bit version, tho. The `MemoryBarrier` expands to a
`__faststorefence` on x86_64, which compiles to

    lock or DWORD PTR [rsp], ebp

The 32bit code we use is quite similar but avoids the ebp access:

    lock add [esp], 0

whereas the x86 `MemoryBarrier` is a more costly `xchg [...], eax`.


Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/7e603e74c7aa...856b989904eb


More information about the Vm-dev mailing list