]> gitweb.factorcode.org Git - factor.git/commit
VM: fix jit-signal-handler-prolog/epilog to account for the home space
authorBjörn Lindqvist <bjourne@gmail.com>
Wed, 26 Aug 2015 16:17:33 +0000 (18:17 +0200)
committerBjörn Lindqvist <bjourne@gmail.com>
Wed, 26 Aug 2015 18:23:25 +0000 (20:23 +0200)
commit663e5e2a09f0e2de852998b9cd188374e40e2ebf
tree7d858511412a5b23664b98cd4bbed5eeabc5a409
parent316b16f37793e74a618b34ef3305a1e08ea30ea8
VM: fix jit-signal-handler-prolog/epilog to account for the home space

Windows 64bit abi requires callers to reserve 32 bytes of home space in
the stack frame which the callee is free to clobber. Previous versions
of VS didn't compile code to take advantage of the home space so it
worked fined. VS2015 however, is using the home space which causes
registers and flags that were supposed to be saved to be
overwritten. The fix is to put a little extra empty space at the bottom
of the stack frame.
basis/bootstrap/assembler/x86.32.factor
basis/bootstrap/assembler/x86.64.unix.factor
basis/bootstrap/assembler/x86.64.windows.factor
basis/bootstrap/assembler/x86.factor
vm/cpu-x86.32.hpp
vm/cpu-x86.64.hpp
vm/os-linux-x86.64.hpp
vm/os-macosx-x86.64.hpp
vm/os-windows.64.hpp