[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 614fad: Make the pc offset longer in sqWin32Backtrace, jus...

GitHub noreply at github.com
Fri Aug 19 13:46:10 UTC 2016


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 614fadf2fdb1270428e0763ca6bc4fa1cc1dfc84
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/614fadf2fdb1270428e0763ca6bc4fa1cc1dfc84
  Author: Nicolas Cellier <nicolas.cellier at sirehna.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M platforms/win32/vm/sqWin32Backtrace.c
    M platforms/win32/vm/sqWin32Backtrace.h

  Log Message:
  -----------
  Make the pc offset longer in sqWin32Backtrace, just in case


  Commit: 57fa38ee5fde3dd87fb83c628f6b09c6b46d2957
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/57fa38ee5fde3dd87fb83c628f6b09c6b46d2957
  Author: Nicolas Cellier <nicolas.cellier at sirehna.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M platforms/win32/plugins/IA32ABI/Makefile
    M platforms/win32/plugins/IA32ABI/Makefile.plugin

  Log Message:
  -----------
  Don't hardcode the IA32 ABI on windows

(well, despite the directory name...)


  Commit: 546cd55c8f05e228973d1b0e7ee0513e979ba1b5
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/546cd55c8f05e228973d1b0e7ee0513e979ba1b5
  Author: Nicolas Cellier <nicolas.cellier at sirehna.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M build.win64x64/squeak.stack.spur/plugins.ext
    M build.win64x64/squeak.stack.spur/plugins.int
    A platforms/Cross/plugins/IA32ABI/dax64win64business.h
    M platforms/Cross/plugins/IA32ABI/ia32abi.h
    A platforms/Cross/plugins/IA32ABI/x64win64ia32abicc.c
    M platforms/Cross/plugins/IA32ABI/xabicc.c

  Log Message:
  -----------
  Attempt a first x64 win64 FFI plugin

Warning: MOSTLY UNTESTED

Implementation note:
do not use the loadFloatRegs(...) fake call for loading floating point registers xmm0...xmm3
Instead, simply and dumbly switch on the 16 possible combinations of int/float register parameters
The reasons for this choice are:
-1) I don't understand how loadFloatRegs would work with x64-win64 ABI
     I believe the caller should save/restore the registers before/after loadFloatRegs call
- 2) be more robust versus aggressive compiler optimizations
     and eventually link time optimizations (loadFloatRegs needs to be in a separate file, but LTO might spoil this)
- 3) it's simple enough to encode (even if a bit copy/paste error prone)

For thunkEntry, use few asm instructions
(REMINDER: have to replace asm with some intrinsics for MSVC - see https://software.intel.com/sites/landingpage/IntrinsicsGuide/#cats=Load&expand=3069,3073,3075,3080 )

Conflicts:
	src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c


  Commit: c2d0de1fe75adf823026a3643c2fe9f6012e59a3
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/c2d0de1fe75adf823026a3643c2fe9f6012e59a3
  Author: Nicolas Cellier <nicolas.cellier at sirehna.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M platforms/Cross/plugins/IA32ABI/x64win64ia32abicc.c

  Log Message:
  -----------
  Fix win64 x64 compilation

2 problems here:
- erroneous usage of asm directives
- it was necessary to republish SqueakFFIPrims for correction of WIN64 #ifdef


  Commit: 0af004c7a34df823f37ef178a37dcc07a4c7cdc9
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/0af004c7a34df823f37ef178a37dcc07a4c7cdc9
  Author: Nicolas Cellier <nicolas.cellier at sirehna.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M platforms/Cross/plugins/IA32ABI/arm32ia32abicc.c
    M platforms/Cross/plugins/IA32ABI/ia32abi.h
    M platforms/Cross/plugins/IA32ABI/ia32abicc.c
    M platforms/Cross/plugins/IA32ABI/ppc32abicc.c
    M platforms/Cross/plugins/IA32ABI/x64ia32abicc.c
    M platforms/Cross/plugins/IA32ABI/x64win64ia32abicc.c

  Log Message:
  -----------
  Make sure that the stack pointer points to large enough words in thunkEntry

This is a fix for LLP64 (x64 win64)
Words are large enough when == sizeof(void *)
Indeed, we want to skip other return address and things like that...


  Commit: 5f7a7505f6d14a77eed5788f2aa61baf119fa0e9
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/5f7a7505f6d14a77eed5788f2aa61baf119fa0e9
  Author: Nicolas Cellier <nicolas.cellier at sirehna.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M build.win64x64/squeak.stack.spur/plugins.ext

  Log Message:
  -----------
  Temporarily revert compilation of FFI for win64

Changes of sources generated by VMMaker.oscog are necessary for compilation to succeed.


Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/5160d1803ca8...5f7a7505f6d1


More information about the Vm-dev mailing list