diff options
author | Andy Wingo <wingo@igalia.com> | 2020-02-17 22:01:14 +0100 |
---|---|---|
committer | Andy Wingo <wingo@igalia.com> | 2020-02-17 22:01:14 +0100 |
commit | a96c0188f196acb46fdee3bd0c20575db6c945a9 (patch) | |
tree | e6648e904815e5eb080c2f3b40894a34779337ff | |
parent | 2db2b12e857a2694b5a70e108055e2c902051247 (diff) | |
download | guile-a96c0188f196acb46fdee3bd0c20575db6c945a9.tar.gz |
Ensure 32 bytes of stack are reserved on 64-bit Windows targets
* lightening/x86.c (reset_abi_arg_iterator): Reserve 32 stack bytes on
64-bit Windows systems, in accordance with ABI. Thanks a million to
Charles Stanhope for the patch and to Mike Gran for testing!
-rw-r--r-- | lightening/x86.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lightening/x86.c b/lightening/x86.c index 965191a4c..bdd26e14f 100644 --- a/lightening/x86.c +++ b/lightening/x86.c @@ -328,6 +328,10 @@ reset_abi_arg_iterator(struct abi_arg_iterator *iter, size_t argc, memset(iter, 0, sizeof *iter); iter->argc = argc; iter->args = args; +#if __CYGWIN__ && __X64 + // Reserve slots on the stack for 4 register parameters (8 bytes each). + iter->stack_size = 32; +#endif } static void |